Skip to content

fix(resume): drop the "Response" separator a replayed turn grew - #28

Merged
ericleepi314 merged 1 commit into
mainfrom
replay-shelf-block
Aug 19, 2026
Merged

fix(resume): drop the "Response" separator a replayed turn grew#28
ericleepi314 merged 1 commit into
mainfrom
replay-shelf-block

Conversation

@ericleepi314

Copy link
Copy Markdown
Collaborator

What

The same conversation rendered one way live and another way resumed.

live                                    resumed (before)
⏺ Read(src/domain/usage.ts)             ⏺ Read(src/domain/usage.ts)
  ⎿  Read 3 lines                         ⎿  Read 3 lines
⏺ probe done.                           └─ Response
                                        ⏺ probe done.

Live, a turn's tool shelf is its own block and the reply follows it directly. Resumed, the shelf was a field on the reply — which is what puts the └─ Response label between them. Claude Code shows no such separator, and it appeared only after a resume.

The transcript builder now emits the shelf as its own block, exactly as the live path does, so both paths produce the same shape.

Test

  • npm run typecheck, npm test — 150 files / 1953 passing
  • node scripts/verify-boundary.mjs
  • messages.test.ts pins the block shape (['user', …], ['system', ''], ['assistant', …] with kind: 'trail')
  • live: the two-pass resume probe, whose replayed trail now matches the live one exactly

🤖 Generated with Claude Code

The same conversation rendered one way live and another way resumed. Live,
a turn's tool shelf is its own block and the reply follows it directly.
Resumed, the shelf was a field on the reply, which is what puts a
`└─ Response` label between them — a separator the original never shows,
and that appeared only after a resume.

The transcript builder now emits the shelf as its own block, exactly as
the live path does, so the two paths produce the same shape.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@ericleepi314
ericleepi314 merged commit bd36b0d into main Aug 19, 2026
1 check passed
@ericleepi314
ericleepi314 deleted the replay-shelf-block branch August 19, 2026 15:10
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