Skip to content

feat(chat)!: remove per-message checkpoint marker; flatten chat-message rendering#471

Merged
blove merged 2 commits into
mainfrom
claude/remove-checkpoint-marker-ui
May 19, 2026
Merged

feat(chat)!: remove per-message checkpoint marker; flatten chat-message rendering#471
blove merged 2 commits into
mainfrom
claude/remove-checkpoint-marker-ui

Conversation

@blove
Copy link
Copy Markdown
Contributor

@blove blove commented May 19, 2026

Summary

Removes the per-assistant-message checkpoint UI (gutter dot + rewind/fork pill) from the chat library. Refresh (in the existing message actions bar) covers the universal "redo this turn" intent every chat UI exposes; the bare gutter dot was undiscoverable, the rewind-vs-refresh distinction was invisible to most users, and the LangGraph-specific concept was leaking into the UI for a feature only power users used.

Removed

  • `chat-checkpoint-marker` primitive (component + spec + `public-api` export)
  • `chat-message` inputs: `checkpointId`, `checkpointActive`
  • `chat-message` outputs: `replayRequested`, `forkRequested`
  • `chat-message` gutter/layout/main wrapper DOM + CSS — template is now flat (bubble + citations + controls)
  • `replayRequested`/`forkRequested` outputs on ``, ``, ``, `` and their event forwarding
  • demo-shell `onTimelineReplay`/`onTimelineFork` handlers + bindings in embed/popup/sidebar modes

Kept (deliberately)

  • `AgentWithHistory` contract + `agent.history` Signal — adapter authors can still expose checkpoint state
  • `agent.replayFromCheckpoint` / `forkFromCheckpoint` runtime methods — consumers can build their own time-travel UI
  • `ChatTimelineSliderComponent` standalone primitive — explicit opt-in surface for consumers who want a time-travel UI

Side benefits

  • `chat-message` rendering significantly simpler — no more flex row with 14px gutter + main; messages are flat block containers
  • Fixes long-standing alignment glitch where the gutter dot floated ~16px above the first line of bubble text (verified in chrome: bubble.left == message.left)

@ngaf/* 0.0.43. Breaking removal of outputs + inputs flagged with `!` in the commit subject.

Test plan

  • `pnpm nx test chat` — 750 tests pass
  • `pnpm nx test examples-chat-angular` — 21 tests pass
  • Local chrome-mcp verify: no `chat-checkpoint-marker` in DOM, no `.chat-message__gutter`/`__layout`/`__main` wrappers, refresh button still present in actions ("Regenerate response"), bubble aligns at message left
  • Canonical demo redeploys on demo.threadplane.ai

🤖 Generated with Claude Code

…ge rendering

The chat library no longer ships a built-in time-travel UI on individual
assistant messages. The bare gutter dot was undiscoverable, the
rewind-vs-refresh distinction was invisible to most users, and the
LangGraph-specific concept leaked into the UI for a feature only power
users used. Refresh (in the actions bar) covers the universal 'redo
this turn' intent that every chat UI exposes.

Removals:
- chat-checkpoint-marker primitive (component + spec + public-api export)
- chat-message inputs: checkpointId, checkpointActive
- chat-message outputs: replayRequested, forkRequested
- chat-message gutter/layout/main wrapper DOM and CSS — template is
  now flat (bubble + citations + controls)
- replayRequested/forkRequested outputs on chat, chat-sidebar,
  chat-popup compositions and their forwarding
- demo-shell onTimelineReplay/onTimelineFork handlers + the bindings
  in embed-mode/popup-mode/sidebar-mode

Kept:
- AgentWithHistory contract + agent.history Signal — adapter authors
  can still expose checkpoint state
- agent.replayFromCheckpoint / forkFromCheckpoint methods on the
  runtime contract — consumers can build their own time-travel UI
- ChatTimelineSliderComponent standalone primitive — explicit opt-in
  surface for consumers who want a time-travel UI

Side benefit: the chat-message layout flattens significantly. No more
flex row with gutter (14px) + main; messages are simple block-level
containers. Fixes the long-standing alignment glitch where the gutter
dot floated ~16px above the first line of bubble text.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@vercel
Copy link
Copy Markdown

vercel Bot commented May 19, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
threadplane Ready Ready Preview, Comment May 19, 2026 7:49pm

Request Review

@blove blove merged commit e6cc086 into main May 19, 2026
1 of 2 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