Plan side panel renders stale plan from a previous conversation after /clear (persists across refresh)
Environment
- Claude Code 2.1.220
- claude.ai/code web UI session attached to a Linux host (plan mode / brainstorming workflow)
Summary
The "Plan" side panel (and the "Open plan" link on the plan-approval dialog) renders the plan document from a previous conversation in the same session window (written ~2.5 weeks earlier, before a /clear), instead of the plan file the current conversation actually wrote. The approval dialog therefore shows the wrong plan, causing the user to repeatedly reject a correct plan.
Steps to reproduce
- In a session window, complete a plan-mode task; a plan file (call it plan A) is written to
~/.claude/plans/plan-a.md. /clearthe conversation in the same window.- Start a new plan-mode task. The harness correctly instructs the model to write to a new file, plan B (
~/.claude/plans/plan-b.md), and the model writes it. - Model calls
ExitPlanMode→ approval dialog appears. - Click Open plan (or open the Plan side panel).
Actual behavior
The panel renders plan A (the pre-/clear plan from weeks earlier). Persists after refreshing the browser tab and reopening the session.
Expected behavior
The panel should render the current conversation's active plan file (plan B); /clear should reset any plan-panel association.
Verification done host-side
- On-disk
~/.claude/plans/plan-b.mdcontent is correct. - The session transcript
.jsonlreferences plan B (plan A only appears in older sessions' transcripts). - No stale pointer file to plan A found under
~/.claude/. - Rendering plan B via a file-send tool shows the correct content, so the file itself is fine — only the Plan panel resolves to the stale document.
Impact
User cannot trust the approval dialog: Accept would execute plan B while the UI displays plan A. User rejected a correct plan multiple times before the mismatch was diagnosed.