[BUG] Server-gated 100k-token sub-agent budget (2.1.290+) makes delegated work impossible; enabled for one account × Fable 5.1 only

Status Open
Reported on v2.1.290
Maintainer reply None cached
Activity 0 comments · opened Oct 6, 2026

Summary

Since 2.1.290, a server-gated feature gives every sub-agent a <total_tokens> countdown that starts at 100,000 and adds "Each agent you launch has a budget of 100,000 tokens. The budget does not count the context the agent starts with: its system prompt, its tools, and your prompt to it." to the Agent tool description. It was switched on for one of my accounts (Fable 5.1 main session only; Opus and Sonnet main sessions on the same account did not get it, and Fable on my other account did not either). It made delegated work impossible: every sub-agent stopped itself at about 100k tokens of work and reported "ran out of context" or "budget exhausted", and the orchestrator kept respawning 100k-sized agents for hours. If this is an intended experiment, 100k is far below what real codebases need; if it is a rollout mistake, please check the gating.

Environment

  • Claude Code 2.1.290 and 2.1.291, Linux (WSL2), cli entrypoint, Max subscription
  • 2.1.289 has no trace of the feature in the binary; 2.1.290 and 2.1.291 do

What happened

  • Session resumed at 2026-10-06 08:26 UTC under account B, main model Fable 5.1. From that turn on, the prompt_snapshot of the Agent tool text carries the budget sentence (the earlier snapshots of the same session, under account A, do not).
  • The 14 sub-agents launched after that (implementer/opus, codebase-researcher/sonnet, general-purpose/fable) each got <total_tokens>99,8xx tokens left</total_tokens> as their first reminder and ended at 95k–131k tokens of context, unfinished. Example from a general-purpose agent asked to read nine files (1.3 MB): it read one file (4,749 lines, 4 Read calls), the counter went 99,874 → 64,675 → 39,867 → 18,954 → 1,930, and it replied "NOT COMPLETED. Budget exhausted after file 1 of 9."
  • Before that resume (same session, same project, account A, Fable 5.1) sub-agents started at ~14,990,000 and ran to 395k tokens of context without issue. A parallel Opus 5.5 session on account B at the same time had sub-agents at ~14,991,000 running to 244k. A Sonnet 5.5 session on account B ran a sub-agent to 640k.
  • One of this project's source files is 75k tokens, so a 100k working budget cannot read two files, let alone implement anything.

Mechanism (from the 2.1.291 binary)

  • The budget size comes from the remote feature tengu_rippling_tulip (env override CLAUDE_CODE_RIPPLING_TULIP), the sentence from tengu_streamed_bumblebee / tengu_streamed_bumblebee_text, the "on top of start context" wording from tengu_calm_mochi; the applied event is tengu_streamed_bumblebee_applied.
  • Remote features are cached per (main model, org) in clientDataCacheSlots, which matches the observed scoping: only Fable 5.1 × account B got it.

Reproduction (forced on)

CLAUDE_CODE_RIPPLING_TULIP=100000 CLAUDE_CODE_STREAMED_BUMBLEBEE=true claude -p "launch one general-purpose sub-agent that reads a file and reports any text it was shown about tokens left" --model sonnet

Result: the Agent tool text contains "Each fresh agent you launch has a budget of 100,000 tokens, counting the context it starts with." and the sub-agent reports <total_tokens>100000 tokens left</total_tokens> then 82081 after one Read.

Workaround

"CLAUDE_CODE_TOTAL_TOKENS_REMINDER": "infinite" in the env block of ~/.claude/settings.json. With that, the same forced-on command shows no budget sentence and main and sub-agent both get <total_tokens>Infinite tokens left</total_tokens>. Verified in a live Fable 5.1 session on account B afterwards.

Ask

Either turn the experiment off for cohorts where it is active, or raise the budget to something that fits real work (our average delegated lane is 400k+ tokens), and surface the budget in claude doctor / a settings key so it is not invisible when it appears mid-session after an account switch.

View original on GitHub ↗