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.