Regression (~v2.1.207–2.1.211): --permission-mode plan sessions no longer show the plan-approval dialog — ExitPlanMode degrades to a bare yes/no tool prompt and the session drops to manual mode
Draft upstream issue — anthropics/claude-code
Title: Regression (~v2.1.207–2.1.211): --permission-mode plan sessions no longer show the plan-approval dialog — ExitPlanMode degrades to a bare yes/no tool prompt, session drops to manual mode
Description
Sessions launched with claude --permission-mode plan "<prompt>" used to present the full
plan-approval dialog when the model called ExitPlanMode — the four options ("Yes, and use
auto mode" / "Yes, manually approve edits" / "No, refine with Ultraplan…" / "No, keep
planning"), with the plan saved to ~/.claude/plans/ and the chosen option setting the
post-plan permission mode.
After upgrading v2.1.206 → v2.1.211, the same launch path now renders only a minimal
tool-permission prompt — "Claude wants to exit plan mode" with bare yes/no. Approving:
- selects no post-plan mode → the session drops to manual (default) mode,
- saves no plan file to
~/.claude/plans/.
This breaks the plan-gated dispatch pattern (launch in plan mode → review plan → approve
straight into auto mode): the operator must now Shift+Tab every session back to auto after
every approval, and the "use auto mode" choice is simply unavailable at the moment it matters.
Evidence (transcript-level, same dispatch script both days)
- v2.1.206 (2026-07-18) — ExitPlanMode tool_result:
"User has approved your plan. You can now start coding. … Your plan has been saved to: ~/.claude/plans/implement-….md"
- v2.1.211 (2026-07-19) — ExitPlanMode tool_result:
"User has approved exiting plan mode. You can now proceed."
Both sessions were launched by the identical wrapper:cd <worktree> && claude --permission-mode plan -n <name> "$(cat kickoff.md)"
Repro
claude --permission-mode plan "plan a trivial change to README, then exit plan mode"- Let the model present its plan and call ExitPlanMode.
- Observe: bare "Claude wants to exit plan mode" yes/no instead of the plan-approval dialog;
approve → session is in default (manual) mode; no file in ~/.claude/plans/.
Environment
- Claude Code v2.1.211, macOS (darwin 25.5), iTerm2 panes, Max subscription.
- Auto mode available and default (
permissions.defaultMode: "auto"in ~/.claude/settings.json);
models opusplan (Opus 4.8 / Sonnet 5) — auto-mode-eligible.
- Last-known-good: v2.1.206. Suspect window includes the v2.1.207 auto-mode
availability-detection change (removal of CLAUDE_CODE_ENABLE_AUTO_MODE).
Expected
--permission-mode plan sessions present the full plan-approval dialog with post-plan mode
options (as on ≤2.1.206), or at minimum an equivalent way to select the post-plan permission
mode at approval time.
Prior-art search (2026-07-19)
No existing open or recently-closed issue matches this regression. Nearest related (all
different failure modes): #75783 (VS Code: "Yes, and auto-accept edits" enters acceptEdits
instead of Auto — option-mapping mismatch, options still present), #74256 (PermissionRequest
hook "allow" for ExitPlanMode ignored since v2.1.199 — hook bypass, dialog intact), #77007
(VS Code hides assistant text on plan-approval card), #66330 (auto+plan interaction UX,
closed 2026-07-15).
Suspect changelog entries (v2.1.207, verbatim)
- "Changed auto mode to no longer read
autoModefrom.claude/settings.local.json
(repo-resident); use ~/.claude/settings.json instead"
- "Auto mode is now available without
CLAUDE_CODE_ENABLE_AUTO_MODEopt-in on Bedrock,
Vertex AI, and Foundry; disable via disableAutoMode in settings"
If the plan-approval dialog's "use auto mode" option renders conditionally on auto-mode
availability detection, and that detection's settings-scoping changed here, the dialog would
degrade silently with no dialog-specific changelog entry — matching what we observe. (In this
environment auto mode is configured in the correct scope: permissions.defaultMode: "auto"
in ~/.claude/settings.json; sessions do start in auto mode, so plain availability is not
absent — the degradation is specific to the plan-approval surface.)
This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗