#139 finds a nested Cargo.toml when there is no root one, but stops after the first. A repo with several independent crate roots (not workspace members of each other) reports only one in manifests[], so the bridge tools and dependencies from the others are missed.
$ brief --json https://github.com/huggingface/tokenizers | jq '[.manifests[]|select(.ecosystem=="cargo")|.path]'
["tokenizers/Cargo.toml"]
$ git -C tokenizers ls-files -- '**/Cargo.toml'
bindings/node/Cargo.toml
bindings/python/Cargo.toml
bindings/python/tools/stub-gen/Cargo.toml
tokenizers/Cargo.toml
bindings/python/Cargo.toml has pyo3 and bindings/node/Cargo.toml has napi, so tools.native_extension stays empty and dependencies[] misses both.
Repos where git ls-files -- '**/Cargo.toml' finds a root that is not under any directory brief listed:
Separately, https://github.com/eventual-inc/daft has a root Cargo.toml (workspace, 70+ members) that brief does not list; manifests[] contains the root Cargo.lock and three member crates but not the root Cargo.toml:
$ brief --json https://github.com/eventual-inc/daft | jq '[.manifests[]|select(.ecosystem=="cargo")|.path]'
["Cargo.lock","src/daft-ext/Cargo.toml","src/daft-ext-macros/Cargo.toml","src/daft-functions-json/Cargo.toml"]
A root manifest should always appear regardless of the nested-detection path.
The current walk seems to seed from the first .rs hit and stop once it reaches a Cargo.toml. Collecting every Cargo.toml reachable within -scan-depth and then pruning those that are workspace members of an already-found root would cover these without also listing every member manifest.
#139 finds a nested
Cargo.tomlwhen there is no root one, but stops after the first. A repo with several independent crate roots (not workspace members of each other) reports only one inmanifests[], so the bridge tools and dependencies from the others are missed.bindings/python/Cargo.tomlhaspyo3andbindings/node/Cargo.tomlhasnapi, sotools.native_extensionstays empty anddependencies[]misses both.Repos where
git ls-files -- '**/Cargo.toml'finds a root that is not under any directory brief listed:tokenizers/bindings/python/(pyo3),bindings/node/(napi)safetensors/bindings/python/(pyo3)libs/parquet-rs/native/x-pack/plugin/esql-datasource-parquet-rs/native/src/native/src/native_heap_gotter/parquet-rust-wrapper/experimental/rust-sdk/,xpu/watchman/cli/watchman/rust/serde_bser/,watchman/rust/watchman_client/tools/api/rust/crates/(workspace)rust/flatbuffers/rust/flexbuffers/,rust/reflection/Separately, https://github.com/eventual-inc/daft has a root
Cargo.toml(workspace, 70+ members) that brief does not list;manifests[]contains the rootCargo.lockand three member crates but not the rootCargo.toml:A root manifest should always appear regardless of the nested-detection path.
The current walk seems to seed from the first
.rshit and stop once it reaches aCargo.toml. Collecting everyCargo.tomlreachable within-scan-depthand then pruning those that are workspace members of an already-found root would cover these without also listing every member manifest.