Skip to content

v0.53.0

Choose a tag to compare

@github-actions github-actions released this 27 Aug 07:29
· 1111 commits to main since this release

v0.53.0

Standing indexed roots (index.roots)

Directories can now stay indexed without an open session. Configure standing roots in ~/.config/cortexkit/aft.jsonc:

{
  "index": {
    "roots": [
      { "path": "~/Work/notes", "indexes": ["search", "semantic"] },
      { "path": "~/Work/libs/shared", "indexes": ["search", "callgraph"] }
    ]
  }
}
  • Per-entry index selection (search, semantic, callgraph) with no default ladder — you get exactly what you list.
  • Standing maintenance yields to live sessions: binding a session to a standing root suspends standing work and hands the artifacts over; unbinding hands them back.
  • Subtree roots get their own isolated artifact identity (scoped-v1), so a standing subtree never collides with or pre-warms the repository's session indexes.
  • npx @cortexkit/aft index builds all configured entries once and exits — a finite snapshot operation with per-entry disclosure rows and honest aggregate exit codes. Later daemonless queries that detect drift serve the last usable snapshot and say so, naming the rerun command.
  • Health, doctor, and memory surfaces report standing roots in the existing per-root tables (standing: true), including breaker suspensions.

Pi: host-native tools can win (hoist_builtin_tools)

hoist_builtin_tools is now shared vocabulary across OpenCode and Pi (previously OpenCode-only). With hoist_builtin_tools: false, the Pi adapter registers aft_read / aft_write / aft_edit / aft_grep / aft_bash alongside the host's native tools instead of replacing them — built for Pi forks that ship their own file tools. The bash companion family (bash_status / bash_watch / bash_write / bash_kill) registers independently of hoisted bash. The key is project-safe, and harness-specific keys now warn when ignored instead of vanishing silently.

Fixes

  • Pi rendering: edit diffs no longer render as blank blocks on Windows (CRLF carriage returns overprinted the diff lines; rendered text is now CR-normalized at the shared renderer seam).
  • Home-root callgraph fuse: callgraph_store now auto-disables on home-directory roots exactly like search_index and semantic_search — no more GB-scale callgraph builds when an editor session opens $HOME. Callgraph-dependent surfaces report a terminal "disabled for home root" state instead of retrying.
  • gh shim: flags-only invocations (gh --version, gh --help) pass through on governed repos; provably-GET gh api calls and actions-read verbs (run view, run list) classify as mechanical reads; upstream GitHub API failures now propagate as nonzero exits instead of printing an error and exiting 0.
  • Background tasks: a daemon restart can no longer silently orphan running background tasks — on first bind after a restart, dead or unknown tasks are terminalized as fate_unknown with an exactly-once completion notice naming the retained output path; live detached children keep running. GC and quarantine refuse to touch bundles whose recorded process is still alive.
  • Storage: AFT_STORAGE_DIR environment override is honored identically at every entry point (plugins, binary fallback, warmup CLI) with a committed resolution order — for NFS-homed machines that need SQLite and indexes on local disk. Explicitly configured storage paths keep their exact spelling.
  • Locks: filesystem lease liveness is now PID + process-start-time identity (plus boot id on Linux), so PID-namespaced sandboxes (bubblewrap) no longer deadlock on recycled PIDs while genuinely suspended owners still block conservatively.
  • Pi expand/collapse: all custom tool renderers honor Ctrl+O (collapsed summaries per tool, full output expanded), matching native tool behavior.