Repository navigation
v0.58.2
v0.58.2
AFT 0.58.2 is a patch release. It fixes the OpenCode 2 issues reported against 0.58.1: message detach, linked worktrees, background completions across project folders, and permission prompts under opencode serve. Rust diagnostics now wait for rust-analyzer's own cargo check, TypeScript 7 projects get the native language server, and subagents wait on long commands without polling.
New
- TypeScript 7 projects use the compiler's native language server (
tsc --lsp), besidetypescript-language-serverfor TypeScript 5 packages (docs). - Rust:
aft_callgraphcallers include calls made inside macro templates, and name macro mentions it could not analyze. - User config:
opencode.server_urlandopencode.server_password_envname the OpenCode 2 server for permission prompts (docs). - gh shim with a signed manifest:
gh auth statusanswers locally with the bot identity, manifest version and routing readiness for governed writes. - gh shim: bots can open same-repository pull requests with
gh pr create, for v16 manifests (docs).
Changed
- Subagents:
bash_watchwithouttimeoutMsandbashwithwait: trueblock until the command finishes, instead of returning for another poll. - Subagents are no longer told to end the turn or promised a completion reminder; main sessions keep their wording.
- OpenCode subagents can use
pty: truewhilebash.subagent_backgroundis on, as on Pi. bashparameters and thebash_status,bash_watch,bash_writeandbash_killtools appear only when their feature is on (docs).- Tool descriptions and hints no longer name tools turned off in
disabled_tools. - Scoped
aft_inspecthas language servers analyze up to 200 scoped files, instead of reporting only what they had already published. - Changes made outside AFT, such as
cargo updateor a branch switch, reach language servers;Cargo.tomlandCargo.lockchanges reload rust-analyzer. readrefuses an inverted line range, or a start past the end of the file, withinvalid_rangeinstead of returning nothing.aft_zoommergestargetswithpathandsymbolsinto one batch; an incomplete entry gets its own error line.- In a linked worktree,
aft_callgraphsays when its answer comes from another checkout whose commit or files differ. - After a downgrade, AFT refuses indexes, its database and history written by the newer version, by name, and leaves them untouched.
- With the experimental
views.enabled, semantic search runs on per-checkout views; it stays off by default.
Fixed
- OpenCode 2: a new message detaches a waiting
bashorbash_watch, as on OpenCode 1 (#385, thanks @chrisolszewski). - Oxlint diagnostics start through
oxlint --lsp, or a project's olderoxc_language_server(docs) (#386, thanks @chrisolszewski). - OpenCode 2: sessions in a linked worktree read, run commands and show status in the worktree, not the main checkout (#387, thanks @chrisolszewski).
- OpenCode 2: background completions reach sessions in every project folder served by one OpenCode server (#388, thanks @chrisolszewski).
- OpenCode 2: permission prompts work under
opencode serveand OpenChamber; AFT finds the server it runs in (#380, thanks @realAbitbol). - Corrected parameter help for
writecontent on issue and PR comments,aft_safetycheckpointpath, and Pi'sappendContent(#382, thanks @Zireael). - AFT saves now trigger rust-analyzer's
cargo check, andaft_inspectwaits for it or reports a check still running as unknown. - Language servers that ignore SIGTERM are force-killed at shutdown, so none outlive AFT.
- The auto-installed TypeScript SDK stays on 5.x, so checkouts without
node_moduleskeep diagnostics; TypeScript 7 failures now say why. readandlsp_diagnosticsno longer wait behind a scopedaft_inspecton a slow language server.aft_callgraphno longer answers "building" for seconds after a refresh or while another process writes the graph.- After a restart with many projects, each project's database opens at once instead of staying "initializing" for minutes.
- Undo history survives an AFT restart when several harnesses share a project, and
bash_statusno longer claims a lost task was never promoted. - The bridge reconnects after the AFT daemon rotates its key, instead of failing authentication.
- gh shim: a governed write with an unreadable reply exits 87 (outcome undetermined) and is never resent; Plexus's direct replies are read correctly.
- Subconscious clients:
aft_inspectreturns its rendered report instead of raw JSON.
Security
- ONNX Runtime loads only when its sha256 matches the pinned 1.24.4 build, or from a path you set in
ORT_DYLIB_PATH.