Repository navigation
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_readsandbash.env(user config only) (docs). - The first call-graph update after upgrading rebuilds each project's cached call graph once.
New
read,aft_outlineandaft_zoomtake arefargument that reads a file at a git revision without touching your working tree; enable with"revision_reads": true(docs) (#602, thanks @iceteaSA).aft_safetypurgepermanently 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.envsets 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_searchwithpathcan search a plain folder that is not in Git or not indexed, honouring ignore files (#638, thanks @iceteaSA).
Changed
aft_zoomtakes its lookups asbatch: [{ 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
bashcall withrunonreplies 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;
editexplains not-found matches better;aft_zoomcall-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_inspectlists 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_safetynow 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
/workspaceis no longer refused as too broad, so watching, indexing and search work again (#670, thanks @OlegAndreych). globreturns 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_inspecton TypeScript 5 no longer reports a file clean before its type check finishes. aft_inspectstill 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 profilesymbolicates 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).