[BUG] Task management tools silently unavailable on Opus 4.8 / Sonnet 5 / Fable 5 (tengu_vellum_ash model gate)
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
On Opus 4.8 (claude-opus-4-8[1m]), the task-management toolsTaskCreate, TaskGet, TaskList, TaskUpdate — and the legacyTodoWrite — are completely unavailable (not listed, not even
ToolSearch-loadable as deferred tools), even thoughCLAUDE_CODE_ENABLE_TASKS=1 is set.
Root cause (from inspecting the 2.1.205 binary): every one of these
tools gates on a shared !VY() check:
// Task* tools
isEnabled(){ return JI() && !VY() }
// TodoWrite
isEnabled(){ return !JI() && !VY() }
JI() (the CLAUDE_CODE_ENABLE_TASKS gate) is satisfied:
function Wc(e){ if(e===void 0)return false; if(typeof e==="boolean")return !e;
return ["0","false","no","off"].includes(String(e).toLowerCase().trim()); }
function JI(){ if(Wc(process.env.CLAUDE_CODE_ENABLE_TASKS)) return false; return true
// ENABLE_TASKS="1" -> Wc()=false -> JI()=true (not the cause)
The blocker is VY(), which reads a remote Statsig gate keyed on the
model id:
function VY(){
let e = Ze("tengu_vellum_ash", []);
if(!Array.isArray(e) || e.length===0) return false;
let t = Pi(); // current model id
return e.some(r => r.length>0 && t.includes(r));
}
Cached gate value (~/.claude.json):
"tengu_vellum_ash": ["claude-opus-4-8", "claude-sonnet-5", "claude-fable-5"]
Since the current model id claude-opus-4-8[1m] containsclaude-opus-4-8, VY() returns true, so isEnabled() is false
for all Task* tools and TodoWrite. This is independent ofCLAUDE_CODE_ENABLE_TASKS, CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS,
remote control, and restarts — the gate is a per-model kill-list applied
server-side. TaskStop/TaskOutput stay available (they belong to the
background-agent subsystem and gate differently).
What Should Happen?
With CLAUDE_CODE_ENABLE_TASKS=1, TaskCreate/TaskGet/TaskList/TaskUpdate
should be available (as deferred tools) regardless of model — or, if the
disabling is intentional on these models, the TodoWrite description
("Set CLAUDE_CODE_ENABLE_TASKS=0 to re-enable") and docs should reflect
that a model gate overrides the flag.
Error Messages/Logs
No error is surfaced — the tools are silently absent. Verified via the
binary's `isEnabled()` logic and the cached `tengu_vellum_ash` gate value
shown above.
Steps to Reproduce
- Run Claude Code 2.1.205 in a terminal with
CLAUDE_CODE_ENABLE_TASKS=1. - Select model Opus 4.8 (
claude-opus-4-8[1m]) — also reproduces on
Sonnet 5 and Fable 5.
- Observe that
TaskCreate/TaskGet/TaskList/TaskUpdateandTodoWrite
are unavailable.
- Switch to a model not matched by
tengu_vellum_ash(e.g. Opus 4.7 or
claude-haiku-4-5-*) → the tools reappear. This confirms the model gate.
Claude Model
Opus
Is this a regression?
I don't know
Last Working Version
_No response_
Claude Code Version
2.1.205 (Claude Code)
Platform
Anthropic API
Operating System
Ubuntu/Debian Linux
Terminal/Shell
Other
Additional Information
CLAUDE_CODE_ENABLE_TASKS=1is correctly set insettings.json; the
model gate tengu_vellum_ash overrides it.
- Suggested question for maintainers: is disabling task tools on Opus 4.8
/ Sonnet 5 / Fable 5 intentional (staged rollout / temporary pause)? If
so, is there a supported local opt-in or an ETA for removal from the gate?
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗