Tabbed living canvas: additive ledgers + model extraction with mechanical receipts#830
Merged
Conversation
…h mechanical receipts The canvas becomes fixed-shape tabs (Crux, Concept cloud, Story) over persisted additive ledgers on agent_loop (quotes, concepts, crux history, host items, story slides). Each content-bearing tick runs one structured MULTI_MODAL_FAST extraction carrying the judgment-layer checklists from docs/plans/canvas-ux-handoff.md; code then enforces the receipts mechanically: a quote is accepted only if it appears verbatim in the gathered transcript, a concept only if its phrase lives inside an accepted quote, and slide trace markup only for accepted ids. Caps (3 XL / ~20 tiles) and crux update-not-append are enforced in code. Model failure no_ops the tick with previous state intact. Rendering is a deterministic sanitized fragment: CSS-only tab bar and trace expansion (sanitizer round-trip tested), brand kit v2 per the handoff. addToCanvas/removeFromCanvas agent verbs store exact host text into a target tab and enqueue a manual tick immediately. Idempotent migration adds the ledger JSON fields. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements the tab model from the 2026-07-08 owner conversations plus Oren's design handoff (distilled to
docs/plans/canvas-ux-handoff.md).agent_loop: quotes, concepts, crux + history, host items, story slides — ticks append, nothing rebuilds, unchanged tabs render unchangedaddToCanvas/removeFromCanvasagent verbs: host-made items stored exactly, routed to a tab, manual tick fires immediately ("put Cesare's reflection on the wall")Gates: server ruff + 36 canvas tests, agent 97 tests. Reports:
wave28-REPORT.md,wave28b-REPORT.md(28b restored model-driven extraction after the first pass went fully deterministic).🤖 Generated with Claude Code