Skip to content

v0.62.0

Latest

Choose a tag to compare

@github-actions github-actions released this 21 Oct 18:45
· 2888 commits to main since this release
9b432b4

v0.62.0

AFT 0.62.0 makes Linux dev containers work again: a project opened at a bind-mount target such as /workspace is no longer refused. It also adds opt-in reads at a git revision, a way to purge a secret from undo history, and a simpler aft_zoom, and fixes many reported issues.

Upgrading

  • No action is needed and no existing default changed. Two new settings are off until you set them: revision_reads and bash.env (user config only) (docs).
  • The first call-graph update after upgrading rebuilds each project's cached call graph once.

New

  • read, aft_outline and aft_zoom take a ref argument that reads a file at a git revision without touching your working tree; enable with "revision_reads": true (docs) (#602, thanks @iceteaSA).
  • aft_safety purge permanently deletes this session's undo backups and checkpoint copies of a file or folder, so a secret written by mistake can be removed (#603, thanks @iceteaSA).
  • bash.env sets fixed variables for every shell command, and bash warns when the same command is already running in that folder (docs) (#607, #610, thanks @iceteaSA).
  • aft_search with path can search a plain folder that is not in Git or not indexed, honouring ignore files (#638, thanks @iceteaSA).

Changed

  • aft_zoom takes its lookups as batch: [{ target, symbols }], mixing files and URLs in one call; https:// targets are fetched as URLs. Older argument spellings still work (#410, thanks @Qiiks).
  • OpenCode shows the diff for edits to files over 5,000 lines; only very large rewrites are summarized.
  • When the connection to AFT drops mid-call, or a request hits its deadline, the error says whether the call may have run and must not be repeated, or never ran and is safe to retry.
  • A foreground bash call with runon replies within the usual wait window when the build server is slow to accept the job, with the task id to follow instead of a timeout.
  • Cargo test output adds pass, fail and ignored totals; edit explains not-found matches better; aft_zoom call-graph annotations are capped at 15 (#605, thanks @iceteaSA).
  • Bash names the startup step that ran out of time, and refuses watches of another session's commands and oversized input up front.
  • aft_inspect lists the causes for the sections you asked for first when a result is partial.
  • Call graphs keep symbol identities when code moves within a file, and after an edit they recompute only callers of methods that were added, removed, renamed or moved, so updates do much less work.
  • Lighter background work: disk-limit checks, task cleanup, file watching, filesystem probes, semantic indexing, call-graph saves and parallel checkout setup do less disk and CPU work.
  • aft_safety now states that named checkpoints are kept on disk for 14 days and may contain secrets.
  • AFT is tested with OpenCode 2.1.0; 2.0.29 remains the minimum.
  • CortexKit daemon: worker path refusals suggest the matching file in the worker's own checkout, and root-wide searches fail straight away with guidance.

Fixed

  • Linux dev containers: a project at a bind-mount target such as /workspace is no longer refused as too broad, so watching, indexing and search work again (#670, thanks @OlegAndreych).
  • glob returns the matches it found, marked incomplete, when its directory scan runs out of time (#636, thanks @iceteaSA).
  • A session folder holding several Git repositories no longer floods the file watcher or rebuilds the search index repeatedly, and tool calls stop waiting on it (#645, thanks @null-axiom).
  • OpenCode 2 with the CortexKit daemon: idle sessions wake again when a background command finishes or a watched pattern appears, including after a reload (#658, thanks @chrisolszewski).
  • Language servers stop as soon as their project folder is deleted instead of running until the idle timeout (#631, thanks @chrisolszewski).
  • Scoped aft_inspect on TypeScript 5 no longer reports a file clean before its type check finishes.
  • aft_inspect still reports dead code and unused exports when a few files fail to parse, naming them, and no longer reports a false cache-lock timeout.
  • Windows: saving a file no longer makes it briefly disappear for other programs reading it.
  • Hashline edits keep file permissions and no longer follow a symlink planted at their temporary file.
  • A new Swift file is no longer reported as a syntax error when the Swift compiler could not finish checking it.
  • Background commands: acknowledged completions stay delivered, promoted commands still wake the agent after a restart, and records missing from the database are recovered.
  • A long background command history no longer exhausts the daemon's open-file limit.
  • A blocking bash call that reaches the wait limit always replies with the wait-limit guidance.
  • aft profile symbolicates with the running binary and says when the file on disk was replaced.
  • A terminal (PTY) session that fails to start no longer hangs on macOS while cleaning up.
  • CortexKit daemon: busy projects no longer overflow the daemon connection with status updates.
  • CortexKit daemon: revived workers keep their launch-time folder access, and sessions recheck their head's access after a reconnect instead of staying downgraded.
  • CortexKit daemon: fleet status stops retrying a refused route every 5 seconds and shows it in health.

Security

  • Sandboxed macOS worker shells can no longer read the keychain, and the native sandbox's credential-file protection now also covers Git credential stores and Kubernetes config (docs).