Type: Tracking / audit. Source: systematic sweep of the v0.35.3 CHANGELOG for workarounds Untether ships against upstream Claude Code / Anthropic-API defects.
Goal
Catalog every Claude Code upstream-bug workaround shipped in v0.35.3, map each to its root cause + real upstream status + existing tracker, and drive each toward a proper fix so the workaround can be retired (or codified as permanent where upstream declined to fix).
Audit (every v0.35.3 Claude Code workaround → root cause → tracker)
Upstream states checked 2026-05-29.
| Workaround (v0.35.3) |
Root cause |
Upstream status |
Tracker |
Verdict |
| Auto-continue / auto-resume (#551; lineage #167, #322) |
Claude exits after tool_result without processing the turn; ResultMessage sometimes never emitted |
claude-code#34142 COMPLETED (fixed); #30333 NOT_PLANNED |
— |
GAP → #568 |
| Post-result idle watchdog + subcountdown + SIGTERM (#333, #470) & stuck-after-tool_result detector (#322) |
stream-json hangs — process stops emitting and never exits |
claude-code#39700 NOT_PLANNED |
#527 (partial) |
GAP → #569 (keep + escalate) |
| ExitPlanMode progressive cooldown / rapid-retry auto-deny (#126 lineage) |
Claude re-issues control_request immediately after denial (v2.1.72–2.1.74 loop) |
memory says fixed — UNVERIFIED |
— |
GAP → #570 |
| Stall-suppression matrix (#481), post-result stall noise (#470), approval-pending demotion (#526), cpu_active/approval-aware copy (#494) |
Claude emits no progress during legitimate long waits |
n/a (Untether-side detection) |
#527 |
tracked |
| ScheduleWakeup dead-wakeup shortcut (#507/#544); loop ownership (#289) |
ScheduleWakeup is a no-op outside /loop dynamic; --resume doesn't restore session-scoped scheduled tasks |
n/a (CLI limitation) |
#289 + #374 |
tracked |
| Background-handle clear-on-first-tool_result (#544/#507) |
non-terminal tool_result semantics per primitive |
n/a |
#374 |
tracked |
MCP catalog proactive refresh notify_catalog_refresh + debounce (#365/#497) |
Claude MCP catalog goes stale / servers disconnect mid-session |
cosmetic upstream |
#372 + #268 |
tracked |
| Stream-idle timeout configurable + Type-A/B classification (#438) |
Anthropic API SSE stalls on long opus runs |
upstream Anthropic API |
#438 (closed) |
keep-it mitigation; auto-retry = separate deferred enhancement (upstream-blocked) |
| Bash interim-delta streaming proxy (#481) |
Claude Bash tool_result has no interim stdout deltas |
upstream feature request |
#482 |
tracked |
config.loaded N-reparse demote (#498) |
Untether-internal (not a Claude bug) |
n/a |
#506 |
tracked (internal) |
| ExitPlanMode plan-body re-emit / verbosity tuning (#508/#515/#510) |
plan body disappears after approval (ExitPlanMode UX); concurrent-stream race |
partly upstream ExitPlanMode |
#510, #515 |
tracked (mostly Untether-side) |
Genuine gaps — new investigation issues
Already tracked (no new issue needed)
#527 (unified stall detector — supersedes the whole stall/post-result/wakeup whack-a-mole family), #289 (full /loop), #374 (bg-handle lifecycle), #372 + #268 (MCP catalog/disconnect), #482 (Bash interim deltas), #506 (settings caching), #510/#515 (ExitPlanMode verbosity/race).
Not retire-able (keep)
Type: Tracking / audit. Source: systematic sweep of the v0.35.3 CHANGELOG for workarounds Untether ships against upstream Claude Code / Anthropic-API defects.
Goal
Catalog every Claude Code upstream-bug workaround shipped in v0.35.3, map each to its root cause + real upstream status + existing tracker, and drive each toward a proper fix so the workaround can be retired (or codified as permanent where upstream declined to fix).
Audit (every v0.35.3 Claude Code workaround → root cause → tracker)
Upstream states checked 2026-05-29.
tool_resultwithout processing the turn;ResultMessagesometimes never emittedcontrol_requestimmediately after denial (v2.1.72–2.1.74 loop)ScheduleWakeupis a no-op outside/loop dynamic;--resumedoesn't restore session-scoped scheduled taskstool_resultsemantics per primitivenotify_catalog_refresh+ debounce (#365/#497)tool_resulthas no interim stdout deltasconfig.loadedN-reparse demote (#498)Genuine gaps — new investigation issues
Already tracked (no new issue needed)
#527 (unified stall detector — supersedes the whole stall/post-result/wakeup whack-a-mole family), #289 (full /loop), #374 (bg-handle lifecycle), #372 + #268 (MCP catalog/disconnect), #482 (Bash interim deltas), #506 (settings caching), #510/#515 (ExitPlanMode verbosity/race).
Not retire-able (keep)