Skip to content

v0.36.1

Latest

Choose a tag to compare

@github-actions github-actions released this 08 Jun 15:23
· 35 commits to main since this release

v0.36.1: Honest edits, compact inspect output, and safer pipes

A correctness-focused patch. Failed edits and patches now report failure instead of a misleading success, aft_inspect returns a compact text summary instead of a JSON dump, and the bash pipe handling added in v0.36.0 is now careful about commands where stripping a pipe would change what you asked for.

Edits and patches report failure honestly

A failed edit (no match, ambiguous match, syntax rollback) or a failed apply_patch hunk could come back looking like it succeeded — edit returned Edited (+0/-0) and apply_patch reported the file as written. Both now surface the underlying error. For apply_patch specifically, a move hunk now confirms the destination write succeeded before removing the source, so a failed write can never delete the original, and a partially-applied patch is reported as "Partially applied (N of M)" listing only the hunks that actually landed.

edit with replaceAll now refuses to run when its matches overlap (which could happen on repeating multi-line patterns), instead of applying them and corrupting the file.

Compact aft_inspect output

aft_inspect returned a full JSON payload that the agent had to parse. It now returns a compact, line-oriented summary of the actionable findings — duplicates, dead code, unused exports, todos, and diagnostics — cutting the per-call output roughly in half. When a category's background scan is stale, the last-known counts are shown (flagged stale) instead of being dropped, so the summary stays consistent with the status bar.

Safer bash pipe handling

v0.36.0 started running a test/build runner without its trailing filter (so bun test | grep fail doesn't hide failures). This release makes that careful: it no longer strips when doing so would lose a redirected file (... | grep FAIL > out.txt), change backgrounding, or misread a subshell or command substitution, and it only applies to read-only test/build invocations — never a stateful command like make deploy test. It now also recognizes more runners (gradle, maven, dotnet, rspec, phpunit, swift, deno, and others), and tells you on every path when a pipe was dropped.

Fixes

  • move_symbol no longer scans or rewrites build artifacts: the consumer search now honors .gitignore/.aftignore and skips node_modules, target, dist, build, .venv, and the like, so it won't rewrite imports inside compiled output or crawl huge irrelevant trees.
  • Multi-name Java static imports generate one valid import static Class.member; per name instead of a single invalid statement that dropped the members.
  • Glob edit reports its real counts (Edited N files (M replacements)) instead of a misleading +0/-0.
  • Edit diffs render reliably in the UI again after a metadata-handling change (#96).
  • The status sidebar reconnects more reliably and no longer briefly shows another project's data in multi-window setups.
  • Leaner output: grep result footers and bun test banners are trimmed of low-value noise.

Join our Discord