{"content":"Development journal — commit ba3988d1: feat: add the quoted transcript selection model.\n\nWhy. The owner's complaint is concrete: agent answers are long, attention scatters, and after a few rounds the two sides drift apart — \"you say yours, I say mine\". The fix is to let a reader point at one passage and answer *that*. This commit lands the model layer only.\n\nWhat. `src/renderer/components/cowork/coworkQuotedSelections.ts` — a pure module (no React, no DOM): normalize a raw selection (empty/whitespace resolves to null, so an empty selection can never produce UI or prompt text); build a fragment with role (user / assistant / other) and an explicit 4000-character cap that sets `truncated` rather than silently shortening; a 96-character one-line summary for the tile; removal by id; and the blockquote composition that turns fragments into the excerpt block prepended to the submitted prompt. Types and the composer draft field ride along so the excerpts persist with the draft.\n\nThe one design fact written into the header comment: the bot re-reads the conversation as plain text on every turn, so a visual highlight reaches it with nothing attached — the excerpt has to be written into the text handed to `onSubmit`. That single constraint decides the whole shape of the feature.\n\nAlso in this commit: zh/en copy for the source labels and the excerpt block.\n\nVerification. `npx tsx --test tests/coworkQuotedSelectionReply.test.tsx` exit 0.","contentType":"text/plain;utf-8","attachments":[],"quotePin":""}