[Bug] Plan mode: Assistant chat text not displayed when ExitPlanMode called with plan rejection
Bug Description
Title: Plan mode (VS Code): assistant chat text is never displayed when the same turn ends with ExitPlanMode and the plan is rejected
Environment: Claude Code VS Code native extension v2.1.202, macOS (Darwin 25.1.0), plan mode active. Session used Opus 4.8, later switched to Fable 5 via /model.
Summary:
When the assistant answers a user question with chat text and then calls ExitPlanMode in the same turn, rejecting the plan ("No, keep planning") causes the preceding chat text to never appear in the chat log. The text IS recorded in the session transcript (~/.claude/projects/<project>/<session>.jsonl) — it is only the rendering that drops it.
Steps to reproduce:
1. Enter plan mode in the VS Code extension.
2. Ask the assistant a clarifying question mid-planning.
3. Assistant responds with a text answer and ends the turn with an ExitPlanMode call (plan-approval prompt appears).
4. Choose "No, keep planning."
Expected: The assistant's text answer is visible in the chat log; only the approval prompt is dismissed.
Actual: The chat log shows the plan-approval prompt and the rejection/interruption, but none of the assistant's text from that turn. Tool calls from the turn still show, so the user sees the assistant "churning" with no answer. Happened 3× in one session before diagnosed.
Evidence: Phrases unique to the invisible messages are present verbatim (with timestamps) in the session JSONL; the user text-searched the visible log and plan document and could not find them anywhere.
Impact: User-facing answers silently disappear, so users repeatedly reject plans and re-ask questions; erodes trust in the planning flow. Workaround: assistant must answer in a standalone turn and raise ExitPlanMode in a separate turn.
Environment Info
- Platform: darwin
- Terminal: vscode
- Version: 2.1.193
- Feedback ID: 060de0fe-fe43-4b47-8941-7c01812dc010
Errors
[]