30a0461dcb
Compression (#1286 — the real root causes, two independent bugs): - exec path prefixed EVERY command with the zsh preamble (setopt nonomatch noequals;) BEFORE classification, so no starts_with-based pattern matcher (ls, find, curl, ...) ever fired on macOS/zsh — pattern compression silently degraded to the generic terse fallback. The preamble now applies at spawn time only. Measured: ls -la 6% -> 71% saved, entries preserved. - the terse stage displaced a smaller pattern result on quality_passed alone; it now only wins when actually smaller. Regression test added. - side effect: git log --oneline is now correctly owned by the VCS compressor (full history verbatim) instead of the lossy generic pass. Hooks/steering: - #1288: UserPromptSubmit emits a one-line tool-precedence additionalContext (config prompt_reinject = auto|on|off; auto = only under shadow_mode), so the ctx_* mandate always post-dates session-level harness instructions. - #1285: rewrite-hook passthrough now writes a native_shell_passthrough metering entry (synchronous append — hooks have no Tokio reactor), making native-tool leakage visible in the per-tool dashboard table. - #1289: legacy versioned-marker rule files (rules-v9 era) are recognized as lean-ctx-owned by rules dedup when wholly lean-ctx-written; user-extended copies keep the report-only treatment. Test added. Metric honesty: - #1284: stats headline scoped to "of metered lean-ctx volume". - #1287: the "re-reads ~13 tokens" claim is scoped to unchanged full/auto re-reads across all rule templates (RULES_VERSION 8 -> 9; artifacts regenerated); signatures/map variant stubs remain open by design. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>