Skip to content

feat(rendering): slice 16 — corpus triage: 121 divergences resolved, second real bug fixed - #445

Merged
Juliusolsson05 merged 1 commit into
integration/rendering-pipelinefrom
feat/rendering-slice16-triage
Jul 7, 2026
Merged

Juliusolsson05 merged 1 commit into
integration/rendering-pipelinefrom
feat/rendering-slice16-triage

Conversation

@Juliusolsson05

Copy link
Copy Markdown
Owner

Burns down the corpus triage debt from 130 → 9 and fixes the corpus's second real pipeline catch.

Real bug fixed: Claude writes the compaction marker as type:'system', subtype:'compact_boundary' — the committed collector only knew first-class compact types and dropped the row as not-conversation, which would have deleted the compaction marker from the feed at cutover. Caught by the 2026-06-22 c973322e bundles ("did we not have custom rendering UI for the compaction?").

Systematic triage (scripts/triage-rendering-fixtures.mjs — verdicts as a reviewable, replayable script):

  • equivalent-content (81): same visible content painted via different planes across the ingestion boundary — legacy painted the semantic turn because the committed rows weren't ingested yet; the pipeline, given those rows, paints committed and suppresses the turn. Claude's message.id === turnId makes the pairing mechanical; the burst's tool_result rows pair via parentUuid.
  • skew-ingestion-lag (31): rows whose producer timestamps precede the recorded moment but that the JSONL drain hadn't delivered yet — legacy couldn't paint what it hadn't seen.
  • extraction-gap:history-window (8): the runtime caps semantic history at 20 turns; recorded rows older than the surviving window.
  • Scaffolding-echo rows (<environment_context>, <command-name>, <local-command-stdout>) triaged legacy-bug: legacy painting them as user prompts is the exact complaint in the bundle notes; the Claude local-command and synthetic transcript rows render as user prompt rows #338 filter hiding them is the fix working.

Also removes a stowaway test file that rode into #444 from a parallel session's worktree leftovers.

Corpus state: 15/46 fully clean · 9 untriaged remain (3 current-turn-suppression cases, 1 order-mismatch, 5 singles) · 129 pipeline tests, green. tsc gate clean.

🤖 Generated with Claude Code

…second real bug fixed

Second real pipeline bug from the corpus, fixed here: Claude writes the
compaction marker as type:'system' subtype:'compact_boundary' — the
committed collector only knew first-class compact types and dropped the
row as not-conversation, deleting the compaction marker from the feed
(2026-06-22 c973322e bundles, "did we not have custom rendering UI for
the compaction?").

scripts/triage-rendering-fixtures.mjs encodes the systematic verdicts as
a reviewable, replayable script (re-extraction can replay the whole
triage): equivalent-content (81 — same content painted via different
planes across the ingestion boundary; claude message.id === turnId makes
the pairing mechanical, tool_result rows pair via parentUuid),
skew-ingestion-lag (31 — producer timestamp precedes visible_rows but
JSONL drain hadn't ingested), extraction-gap:history-window (8 — runtime
caps semantic history at 20 turns).

Also removes a stowaway from a parallel session's worktree leftovers that
rode into the slice-15 commit (corpus.test.ts, a self-skipping variant
superseded by the in-repo fixture corpus).

Corpus state: 15/46 fully clean, 9 untriaged remain (3 current-turn
suppression cases, 1 order-mismatch, 5 singles). 129 pipeline tests.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@Juliusolsson05
Juliusolsson05 merged commit 0a37a0a into integration/rendering-pipeline Jul 7, 2026
@Juliusolsson05
Juliusolsson05 deleted the feat/rendering-slice16-triage branch July 7, 2026 21:51
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