Skip to content

Canvas cold-start backfill + empty-over-full guard#831

Merged
spashii merged 1 commit into
mainfrom
sameer/tabbed-canvas-28c
Jul 9, 2026
Merged

Canvas cold-start backfill + empty-over-full guard#831
spashii merged 1 commit into
mainfrom
sameer/tabbed-canvas-28c

Conversation

@spashii

@spashii spashii commented Jul 8, 2026

Copy link
Copy Markdown
Member

Fixes the live regression found while verifying #830 on echo-next: a manual tick on the existing 13th-week retro canvas replaced the wall with an empty tabbed skeleton, because ledgers start empty and extraction only reads transcript newer than the last tick.

  • Cold-start backfill: empty quotes ledger → gather full history, one extraction call per conversation (fits the model window), backfill: N conversations recorded on the run; subsequent ticks return to delta
  • Empty-over-full guard: extraction yielding no quotes/concepts/host items over a prior contentful generation → no_op with reason, previous wall stays newest; genuinely new canvases still render the skeleton

Gates: server ruff + 40 canvas tests. Report: wave28c-REPORT.md

🤖 Generated with Claude Code

First tabbed tick on a loop with an empty quotes ledger gathers the
full transcript history and extracts per conversation (sequential
calls), so existing canvases inherit their room's material instead of
going blank; later ticks return to delta gathering. An extraction that
leaves no quotes, concepts, or host items can no longer overwrite a
contentful wall — the tick no_ops with the reason recorded. Found live
on echo-next: a manual tick replaced the 13th-week retro wall with the
empty skeleton (generation 3f987bfc).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@spashii spashii merged commit 3d997f9 into main Jul 9, 2026
11 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant