v0.4.0
Added
agyswap ctxsubsystem: AST-based Repo Map (ctx map), lightweight working-state snapshots (ctx state), and real-time compression benchmarking (ctx bench [--json|-md])agyswap ctx bench --golden: multi-language oracle regression suite (Python, TypeScript/TSX, Go, Rust, Java, C, C++, Shell) enforcing 100% symbol recall on every release- Java, C, C++, and header-file (
.h) support in the AST Repo Mapper (regex extractors with control-flow keyword guards) - Interactive Context Playground & ROI Calculator on the GitHub Pages docs, with a 9-language full-source-vs-repo-map split viewer
Fixed
ctx bench --jsonno longer leaks the full untrimmed repo map into its outputTokenBudgeter.trim_to_budgetno longer overshoots the requested token budget when appending its truncation banner- AST signature extraction now includes positional-only, keyword-only,
*args, and**kwargsparameters (previously silently dropped) - Decorator extraction is no longer limited to a hardcoded allowlist —
@x.setter,@app.route(...), and other real-world decorators are now preserved - Tuple-unpacking constant assignments (e.g.
A, B = 1, 2) are now extracted ctx bench --goldennow honors--dir/--budgetinstead of silently ignoring them.agents/memory/*files and directories are now created with secure permissions atomically, removing a brief world-readable TOCTOU window- Git status parsing now correctly handles quoted/spaced filenames and renames (
git status --porcelain -z) --budgetrejects zero/negative values with a clear usage error instead of silently producing broken output- Golden benchmark symbol-recall check no longer reports false positives when a symbol is renamed to something that merely starts with the old name
- ASCII benchmark report box borders now render aligned regardless of emoji width or digit count
Full Changelog: https://github.com/g1mn/agyswap/blob/main/CHANGELOG.md#040--2026-08-28