Workspace root `Cargo.toml` (fix forward)
Workspace root Cargo.toml (fix forward)
Section titled “Workspace root Cargo.toml (fix forward)”There is no reliance on git restore or old commits to recover this file. The root Cargo.toml is the single source of truth for:
[workspace]—members,exclude,default-members[workspace.package]— sharedversion,edition,license,repository,rust-version, etc. (member crates use*.workspace = truewhere applicable)[workspace.dependencies]— every dependency referenced as{ workspace = true }in a member crate must appear here with either apath = "crates/…"(internal) or a crates.ioversion/features(external)
When Cargo errors with “not found in workspace.dependencies”
Section titled “When Cargo errors with “not found in workspace.dependencies””- Open the member
crates/<crate>/Cargo.tomland note the dependency key (e.g.vox-oratio,turso). - Add to root
[workspace.dependencies]:- Internal:
vox-oratio = { path = "crates/vox-oratio" }(and add the crate tomembersif it is new — usually covered bymembers = ["crates/*"]plusexcludefor exceptions). - External:
some-crate = { version = "x.y", features = [...] }— align versions with sibling deps in the same table when possible.
- Internal:
- If you changed versions, update
Cargo.lock:cargo update -p <crate>or a fullcargo check --workspaceon a machine with disk space. - Verify resolution without a full compile:
vox ci manifest(CI runscargo run -p vox-cli --quiet -- ci manifest). Doc drift:vox ci check-docs-ssot(inventory + stale-ref scan).
Optional: internal deps as path in a member
Section titled “Optional: internal deps as path in a member”Some crates use vox-foo = { path = "../vox-foo" } instead of workspace = true. That is valid and does not require an entry in [workspace.dependencies]. Prefer one style per crate for consistency (most Vox crates use workspace = true for shared versions).
exclude vs members
Section titled “exclude vs members”With members = ["crates/*"], every crates/<name>/ with a Cargo.toml becomes a member unless listed under [workspace].exclude (e.g. experimental or broken-out trees). Keep exclude in sync when adding such directories.
Root Vox.toml [workspace] (not Cargo)
Section titled “Root Vox.toml [workspace] (not Cargo)”The committed Vox.toml at the repo root is the manifest for Vox package / deploy / orchestrator settings. Its optional [workspace].members is used only by vox-package::VoxWorkspace to discover per-crate crates/<name>/Vox.toml files via a glob (see the comment block in root Vox.toml). It does not define the Rust workspace graph — that remains Cargo.toml above.
Related
Section titled “Related”- Runner contract — self-hosted CI labels; canonical
vox cinarrative; optional CUDA compile gate. - Workflow enumeration — where
verify_workspace_manifestruns.