Skip to content

v0.58.2

Choose a tag to compare

@github-actions github-actions released this 01 Oct 17:30
· 5793 commits to main since this release

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), beside typescript-language-server for TypeScript 5 packages (docs).
  • Rust: aft_callgraph callers include calls made inside macro templates, and name macro mentions it could not analyze.
  • User config: opencode.server_url and opencode.server_password_env name the OpenCode 2 server for permission prompts (docs).
  • gh shim with a signed manifest: gh auth status answers 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_watch without timeoutMs and bash with wait: true block 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: true while bash.subagent_background is on, as on Pi.
  • bash parameters and the bash_status, bash_watch, bash_write and bash_kill tools appear only when their feature is on (docs).
  • Tool descriptions and hints no longer name tools turned off in disabled_tools.
  • Scoped aft_inspect has language servers analyze up to 200 scoped files, instead of reporting only what they had already published.
  • Changes made outside AFT, such as cargo update or a branch switch, reach language servers; Cargo.toml and Cargo.lock changes reload rust-analyzer.
  • read refuses an inverted line range, or a start past the end of the file, with invalid_range instead of returning nothing.
  • aft_zoom merges targets with path and symbols into one batch; an incomplete entry gets its own error line.
  • In a linked worktree, aft_callgraph says 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 bash or bash_watch, as on OpenCode 1 (#385, thanks @chrisolszewski).
  • Oxlint diagnostics start through oxlint --lsp, or a project's older oxc_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 serve and OpenChamber; AFT finds the server it runs in (#380, thanks @realAbitbol).
  • Corrected parameter help for write content on issue and PR comments, aft_safety checkpoint path, and Pi's appendContent (#382, thanks @Zireael).
  • AFT saves now trigger rust-analyzer's cargo check, and aft_inspect waits 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_modules keep diagnostics; TypeScript 7 failures now say why.
  • read and lsp_diagnostics no longer wait behind a scoped aft_inspect on a slow language server.
  • aft_callgraph no 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_status no 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_inspect returns 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.