githubnext/chopinPublic

Let's compose rich plans together

Point Chat decision prompts to the card and keep reopening copy truthful

Chat's prompt was a second Save surface beside the card, ignored open
objections and was labelled "Open in plan". It is now one quiet line,
"Ready to settle: <option> · 1 objection · Open card", and its retired
states keep the same Open card link. The card's "from chat" sub-label is
now an inline "Suggested in Chat" hint.

A reopening message only proposes a pending candidate; a card-linked
thread reopens from the card. The result line now says "Suggested
reopening <title>" for a pending candidate and keeps "Reopened" for a
confirmed one.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
C5MAMaggie Appleton and Claude Opus 5.5 authored
f0df1acPatch
Parent2363e47
17 files changed+186-150
StackedSplit
apps/web/src/chat/decision-entry.test.tsx+40 −13
apps/web/src/chat/decision-entry.tsx+46 −59
apps/web/src/chat/transcript-decisions.test.tsx+4 −3
apps/web/src/chat/transcript.tsx+3 −0
apps/web/src/conversation-plan/links.test.ts+1 −1
apps/web/src/conversation-plan/links.ts+3 −1
apps/web/src/conversation-plan/outcome.test.ts+2 −0
apps/web/src/conversation-plan/outcome.ts+10 −1
e2e/conversation-plan-prompts.e2e.ts+21 −25
e2e/conversation-plan-stress.e2e.ts+16 −16
e2e/conversation-plan-ui.e2e.ts+6 −6
e2e/sidecar-option-contracts.e2e.ts+1 −1
e2e/source/question-terminal-origin.native.ts+5 −5
e2e/source/question-view-contracts.native.ts+12 −7
packages/question/src/react/question-view-retained-contracts.test.ts+2 −2
packages/question/src/react/question-view-terminal-origin.test.ts+9 −7
packages/question/src/react/question-view.tsx+5 −3