Stop hook error: "TabManager not available" still occurs in v2.1.133 CLI mode
Re-filing per stale-bot's invitation on #35592 — the bug is still present in v2.1.133.
Description
Stop hooks consistently emit a non-blocking error in plain CLI mode (no IDE attached):
Ran 3 stop hooks (ctrl+o to expand)
Stop hook error: Failed with non-blocking status code: Error: unavailable: TabManager not available
This is the same error described in #35592 (closed 2026-05-04 by stale-bot, not_planned, no Anthropic response). Re-filing because (a) the closing bot comment explicitly invites it and (b) the bug still reproduces on the latest CLI build.
Environment
- Claude Code v2.1.133
- macOS Darwin 25.3.0
- Plain terminal (no VS Code / JetBrains / Cursor / Antigravity)
- Configured Stop hooks (3 total):
entire hooks claude-code stop(Entire.io session-tracking integration, project-level)node $CLAUDE_PLUGIN_ROOT/scripts/stop-review-gate-hook.mjs(Codex plugin v1.0.1)- (third hook is presumably built-in/system — unidentified from user-side config)
The Codex plugin script does not reference TabManager anywhere. Grepping all plugin caches returns zero matches. The reference appears to be inside Claude Code's own hook execution / result-reporting layer.
Reproduce
- Run Claude Code v2.1.x in a plain terminal (no IDE).
- Have at least one Stop hook configured (any plugin works — Codex, Entire, etc.).
- End the assistant turn.
- The "Ran N stop hooks" UI shows the TabManager error even though the hook scripts themselves succeed.
Expected
CLI mode should not emit IDE-only errors. The hook result-reporting path should either skip TabManager when running headless, or downgrade the message to debug-level.
Impact
Cosmetic but persistent — fires on every turn that has a Stop hook, which means every turn for users with Entire, Codex, cmux, etc. installed. It also looks alarming to new users who reasonably assume something is broken.
Notes
non-blockingso no functional impact — confirmed hook scripts run and write data correctly.- Closing #35592 by stale-bot without engagement looks like a process gap, not a "won't fix" decision. The bot's own message asked re-filers to reference the original — done.
- Suspect a missing
if (TabManager) { ... }guard or equivalent in the hook result-reporting path.
References: #35592, #37316 (cmux-specific, separate root cause).
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗