36f1cd6193
Cat 1 discovery treated every local/recipes/*\/source/Cargo.toml as an in-house crate, including git-fetched upstream sources like brush (git = github.com/reubeno/brush). Rewriting upstream crate versions to the branch version broke upstream-internal version requirements (brush-shell was forced to 0.3.1 while brush required ^0.4.0 — 'failed to select a version for the requirement brush-shell = ^0.4.0'). Guard: skip any crate whose Cargo.toml is not tracked by the parent repo. In-house crates are tracked trees (no independent .git); fetched sources are gitignored and untracked. Restores correct classification: 75 crates checked (12 fetched-source crates now excluded), drift 0, brush cooks successfully again.