Comment on the plan from the sidecar
One list rather than two tabs: an accepted comment is a decision in the same sense a questionnaire's answer is, and would otherwise have to pick a side. Outstanding items first in document order, resolved behind a disclosure, and a dismissed thread not shown at all — the transcript is where it left its trace. The composer is a card in the sidecar, not a popover at the selection: the bubble prevents mousedown precisely so it never takes focus, and every script-positioned overlay in this repo has cost a bug. The passage is captured inside the click that opens the draft, because focusing the composer destroys the selection that summoned it. comment:start no longer sends block digests. A client cannot compute a canonical block digest without re-serialising the document, and finding the quote is the better check anyway — it tests whether the sentence somebody selected is still there. Driving the real socket showed it refusing stale indices exactly as intended. Also from driving it: Chat.instruct opened an agent session under AGENT=off, where chat:send is gated but a button press was not. The decision is still recorded; only the turn is skipped, and the transcript says so.
Parent31f0def
16 files changed+997-87
StackedSplit