Environment
- Claude Code: 2.1.217, then auto-updated to 2.1.218 (npm install, macOS arm64, Darwin 25.5.0)
- Model:
claude-fable-5[1m] - Terminal: cmux 0.64.15 (ghostty-based). Ruled out as the cause — it only injects hook config via
--settings, and the issue reproduced with tools that had already been loaded successfully in the same session.
Summary
Since the TodoWrite → Task tools migration, the deferred built-in Task tools are sometimes not registered at all (ToolSearch returns no matches), and in one session they were withdrawn mid-session minutes after working. When that happens there is no user-visible explanation, and the real-time task checklist display is silently unavailable.
Timeline (JST, 2026-07-22/23)
- Jul 22 ~07:37: auto-update to 2.1.217.
- Jul 22 evening – Jul 23 early morning (2.1.217): in multiple sessions,
ToolSearchforTaskList, TaskCreate, TaskUpdate, TaskGetreturned an empty matches array while 189 other deferred tools were available. TodoWrite was also absent. No task display possible. - Jul 23 08:33: auto-update to 2.1.218.
- Jul 23 09:56 (2.1.218): new session. All six Task tools present in the deferred tools list; loaded via ToolSearch;
TaskCreate/TaskUpdateworked and the live task list rendered correctly. - Jul 23 ~10:15, same session: a system notice reported
TaskCreate, TaskGet, TaskList, TaskUpdateas no longer available ("their MCP server disconnected"), whileTaskStop/TaskOutputremained. This coincided with a separate transient failure: the auto permission-mode classifier reported "claude-sonnet-5[1m] is temporarily unavailable". The four tools did not come back for the rest of the session.
Investigation done
- Extracted the 2.1.217 binary from the npm cache and compared with 2.1.218: the Task tool gating code is identical in both (enabled unless
CLAUDE_CODE_ENABLE_TASKS === false, and not disabled by the remote model-matched kill-switch flagtengu_vellum_ash). So the outage does not track the client version. - Local state showed nothing that disables tasks:
CLAUDE_CODE_ENABLE_TASKSunset, and the cachedtengu_vellum_ashvalue in~/.claude.jsonwas[]at the refresh timestamps around the mid-session drop. - The dropped subset (exactly the four tools sharing the tasks-enabled gate, with
TaskStop/TaskOutputuntouched) points at server-side flag/registry flapping rather than anything local.
Expected
- If tasks are remotely disabled (kill-switch or registry issue), show a visible notice instead of the tools silently disappearing.
- Deferred Task tools should re-register when the transient condition clears, without requiring a session restart.
Actual
Tools vanish with no user-facing explanation; the model can no longer create or update tasks; users lose the live task checklist for hours and have no way to tell whether the cause is local or remote.