Skip to content

v0.4.0

Choose a tag to compare

@g1mn g1mn released this 28 Aug 17:26
· 14 commits to main since this release

Added

  • agyswap ctx subsystem: 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 --json no longer leaks the full untrimmed repo map into its output
  • TokenBudgeter.trim_to_budget no longer overshoots the requested token budget when appending its truncation banner
  • AST signature extraction now includes positional-only, keyword-only, *args, and **kwargs parameters (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 --golden now honors --dir / --budget instead 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)
  • --budget rejects 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