diff --git a/CLAUDE.md b/CLAUDE.md index 0052207..ffe1b77 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -202,6 +202,12 @@ session was stopped. So: until the change is done; the whole workspace's once, at the end. * Builds and test binaries live under `target/`, a link to `/mnt/fast`; linking through `/mnt/user` (FUSE) once took the load to 248 on its own. +* **Memory is the tighter limit.** Tower has 31 GB, no swap, and the containers leave about 4-7 + GB. A build past that stalls everything on page faults: load 160 with the CPU idle and the + disks quiet, many processes blocked (`node_procs_blocked`, `node_vmstat_pgmajfault`). On + 2026-10-18 linking a 431 MB test binary did it for 54 minutes. So `[profile.dev]` keeps only + line tables and dependencies no debug info; keep it that way, and look at `MemAvailable` beside + the load. The Rust is formatted by rustfmt (`rustfmt.toml`) and kept free of clippy's warnings. A clone turns on the hook once: `git config core.hooksPath .githooks`; and `git config blame.ignoreRevsFile diff --git a/Cargo.toml b/Cargo.toml index 83d7843..6dac8e4 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -42,3 +42,12 @@ tracing = "0.1.44" tracing-opentelemetry = { version = "0.34", default-features = false } tracing-subscriber = { version = "0.3.23", features = ["env-filter", "json"] } url = "2.5.8" + +# Backtraces keep file and line; the full debug info made a 431 MB test binary whose link ran +# Tower, which has no swap, out of memory and stalled it for most of an hour (2026-10-18). +[profile.dev] +debug = "line-tables-only" + +# Nobody steps through dependencies. +[profile.dev.package."*"] +debug = false