chore: bound target/ growth — incremental off, line-tables debug

target/ had reached 38 GB, dominated by a 16 GB incremental cache
(~28 compilation units × every historical config, never evicted) and
~25 separate integration-test binaries each statically embedding the
bundled engine + full debug info.

[profile.dev] (inherited by the test profile):
- incremental = false: the cache earns little in a full-suite workflow
  and never self-evicts; off, target/ stays bounded.
- debug = "line-tables-only": keeps file:line in panics/backtraces (we
  debug via tracing logs) at a fraction of debug=2's size.

Net: a clean full build dropped from 38 GB to ~1.6 GB. Document the
rationale plus the cargo-sweep workflow (the GC cargo lacks) under a
new CLAUDE.md "Build hygiene" section; also drop the now-shipped H1
from CLAUDE's deferred list (H1a remains).
This commit is contained in:
claude@clouddev1
2026-06-02 20:07:54 +00:00
parent be7b078878
commit 42f95533ac
2 changed files with 72 additions and 3 deletions
+15
View File
@@ -45,6 +45,21 @@ insta = { version = "1.47.2", features = ["yaml"] }
pretty_assertions = "1.4.1"
tempfile = "3.27.0"
# Dev/test build hygiene (see CLAUDE.md "Build hygiene"). `cargo test`
# links ~25 separate integration-test binaries, each statically
# embedding the bundled engine + every dependency; the `test` profile
# inherits these from `dev`.
# - incremental = false: the incremental cache reached 16 GB here for
# little benefit in a full-suite workflow; disabling it keeps target/
# bounded.
# - debug = "line-tables-only": full debug info (the default `debug = 2`)
# is ~85-90% of each test binary; line tables keep file:line in panics
# and backtraces (we debug via `tracing` logs, not a step-debugger) at
# a fraction of the size.
[profile.dev]
incremental = false
debug = "line-tables-only"
[lints.rust]
unsafe_code = "forbid"
unreachable_pub = "warn"