A mental model for turning the desktop app into an HTML‑first coding harness: one living canvas of beautiful documents per session — plans, live status, final report — steered by chat, working for any repo that has Claude in it.
Today the left pane shows exactly one thing and overwrites it — the plan vanishes the moment execution starts, terminal sessions get no canvas at all, and there's nowhere to attach a screenshot or pick permissions. The fix isn't more panels. It's realising the deliverable was never singular: a session produces several documents over its life, and you want to move between them without losing any.
The crucial move: artifacts are derived, then pinned. A Status doc is regenerated from live session state every time it changes. A Plan doc is a real file that gets frozen the instant it's approved — execution edits a fresh copy or the code, never the approved plan. That's how you keep the original plan artifact while still watching progress.
A session can hold many plans + one running status. Solve it with the tab stack, and synthesise the Status doc from the transcript so it works with zero hooks.
Chat becomes the harness: attach screenshots, converse freely; the canvas shows plan → status → summary report after the diff.
Execution never overwrites the approved plan. The Plan tab is frozen; a separate live Status tab shows the latest — both visible at once.
Model, permission mode, and dangerously‑skip‑permissions chosen per session and switchable live — surfaced as pills on the composer.