Repository navigation
ToolAhead 0.6.1
Fixes from two adversarial review rounds over 0.6.0. Every item was reproduced
before it was fixed and has a regression test; the suite grows from 50 to 95.
Upgrade note: if you ever ran toolahead init --strict, upgrade to 0.6.1
before re-running init without --strict. On 0.6.0 that combination removed
the ToolAhead file tools while leaving Claude's native ones denied.
Fixed
- Strict rollback. Re-running
initwithout--strictafter a strict
install left native file tools denied and the Codex strict marker in place
while removing the MCP tools that replaced them. The rollback now also only
removespermissions.denyentries ToolAhead itself added — your own policy
rules stay untouched. - Route learning. A URL only becomes a warm target if a command actually
fetched it with an HTTP client (directly or in an executed script). Printing,
commenting or merely reading a URL no longer schedules a later GET. Learning
is quoting- and multi-line-aware and ignores commands that failed. - Nothing in a repository steers execution. Learned routes are session
memory, and the transition table moved to~/.toolahead/tables/. A cloned
repository can no longer ship a file that makes ToolAhead run or request
something. Override withPREFETCH_TABLE. - Workspace binding.
--urlreaches the installed hooks, and readiness,
lifecycle and lookup requests carry their workspace, so a daemon serving
another project refuses them instead of answering for the wrong checkout.
Subdirectories still count as the same workspace. - Readiness guarantee holds. Hook process timeouts, the client budget and
the server wait agree, and a declared[commands]script matches however the
agent spells the call (sh e2e.sh,bash ./e2e.sh,./e2e.sh). - Google Antigravity.
PreToolUsereturns the required decision instead of
an empty object,Stopis installed as a flat handler list, and the call's
working directory is preferred over the first workspace path. - Also:
warm_routes = ["auto"]works for services rooted in a subdirectory,
warm requests never overlap,derive_routeshandles absolute paths,
removing the managed MCP block no longer truncates.codex/config.toml, and
doctorno longer fails a correct hooks-only install.
Faster
The Claude hook uses http.client instead of urllib, cutting about 19 ms of
interpreter startup from every hooked tool call (measured 60 ms → 41 ms).
Install: uvx toolahead · pip install toolahead
Full changelog: https://github.com/michael-ra/toolahead/blob/main/CHANGELOG.md