[BUG] Task management tools silently unavailable on Opus 4.8 / Sonnet 5 / Fable 5 (tengu_vellum_ash model gate)

Open 💬 1 comment Opened Jul 9, 2026 by AdrienGras

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 tools
TaskCreate, TaskGet, TaskList, TaskUpdate — and the legacy
TodoWrite — are completely unavailable (not listed, not even
ToolSearch-loadable as deferred tools), even though
CLAUDE_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] contains
claude-opus-4-8, VY() returns true, so isEnabled() is false
for all Task* tools and TodoWrite. This is independent of
CLAUDE_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

  1. Run Claude Code 2.1.205 in a terminal with CLAUDE_CODE_ENABLE_TASKS=1.
  2. Select model Opus 4.8 (claude-opus-4-8[1m]) — also reproduces on

Sonnet 5 and Fable 5.

  1. Observe that TaskCreate/TaskGet/TaskList/TaskUpdate and TodoWrite

are unavailable.

  1. 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=1 is correctly set in settings.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?

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗