mirror of
https://github.com/block/buzz.git
synced 2026-10-30 05:51:46 +00:00
Address three review findings on the draft entryKind classification: - Keep isValidDraftState a pure structural predicate; move the migration-era defaulting (mentionRefs, status, entryKind) into normalizeStoredDraft, applied in readStore's single read funnel. - Skip the implicit agent-mention prefix strip in the unmount persist cleanup when the entry is an agent-prefill: a pure prefill IS the prefix, so stripping persisted "" and cleared the record on every in-app SPA navigation. Storage-boundary normalization still demotes anything that is not mention-only, and agent-prefill records remain excluded from Inbox draft rows and counts. - Bind the fix in tests: unit coverage now exercises the cleanup with a real getImplicitAgentMentionPrefix getter (durable pure prefill, authored drafts still stripped, no Inbox pollution), and the e2e spec adds an in-app navigation leg so the composer-unmount persist path is exercised and the stored classification is asserted to survive it. Collateral fixes surfaced by verification: - Migrate the two prefill e2e tests to thread scope: since #7144 made automatic mentions thread-only, the channel-composer variants were broken on rebase (they fail on the unmodified base commit too). - Preserve trailing spaces in useRichTextEditor's setContent: the markdown re-parse drops them, but a restored prefill's separator ("@Name ") must survive so the caret lands past it and the next keystroke does not fuse into the mention. Verified with the full desktop unit suite (6067 passing) and the persistent-agent-audience Playwright suite (37 passing); both new guards were falsified against the reverted fix. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Signed-off-by: Matt Toohey <contact@matttoohey.com>