Markdown card — a new card type for rich notes and code. Authored in GFM
(headings, lists, tables, task lists, fenced code blocks); double-click to edit the
raw source, blur to render. Width-resizable; added to the bottom toolbar. The AI reads
its content as board context. New components/cards/MarkdownCard.tsx (uses the existing
react-markdown + remark-gfm), scoped .cs-md styles.
Personalize assistant now also lives in Settings → Clip AI (opens the same
personality wizard), not only in the AI panel.
Changed
Live-sharing indicator now lives in one corner. The guest's "Live in …'s board"
state moved out of a floating top-center banner and into the bottom-left peers dock,
as a pill matching the host's "Sharing your board with …" pill. Both connected states
now sit in the same place (components/LocalPeersDock.tsx); the page no longer renders
a separate banner.
Clip AI metering is now token-based, not per-message. The shared host-key allowance
is measured in tokens consumed (input + output) per window — a truer reflection of cost —
with the Settings meter showing "X of Y tokens". New record_ai_tokens RPC
(migration 20260722000100); default allowance 200k tokens / 3h (AI_CREDIT_LIMIT).
Own-key users stay unmetered.
Fixed
A board with only drawings is no longer treated as empty. The onboarding
landing overlay keyed off card count alone, so a freehand scribble on a blank
canvas still showed the "empty board" state. Emptiness now also accounts for
drawn strokes (components/Canvas.tsx), and the overlay hides while draw mode
is active.
Draw mode has no "Done" button. Reaching for any other tool now exits draw
mode (Esc still works too); the redundant Done button is gone from the draw
toolbar (components/DrawLayer.tsx, app/page.tsx).
Backspace / Delete now removes the selected card. Nodes were flagged
deletable: false, which made React Flow ignore the delete keys entirely.
Resizing works for all cards (images, stickies, links, …). The width handles used
NodeResizeControl's default corner-handle variant, which ignores edge positions and
rendered nothing grabbable; they now use the line variant.