feat(chat,langgraph): nav v2 — thread drawer + checkpoint marker primitives#241
Merged
Conversation
Renders a 10px dot in a 14px gutter slot, with a hover/focus pill exposing Rewind + Fork actions. Replaces the right-side timeline slider as the primary time-travel surface for inline use in chat-message gutters.
Slide-in container at left viewport edge, hosting projected content (typically chat-thread-list). Two modes: push (no scrim; host page reflows by setting padding-left on its main column) and overlay (scrim closes on click). Escape key closes.
…lative time Extends the Thread type with an optional updatedAt epoch-ms field. When present, the default item template renders a second line with a relative-time label (just now / 5 min ago / 2 hr ago / 3 day ago). Existing templateRef projection still wins when provided, so back-compat is preserved.
New optional [checkpointId] input mounts a chat-checkpoint-marker in a left gutter (14px). Bubbles replayRequested + forkRequested as message-level outputs so consumers can wire to time-travel handlers. Gutter collapses to zero width when checkpointId is unset — back-compat preserved for non-time-travel consumers.
Reactive ReadonlyMap<messageId, checkpointId> computed from history(). Each AIMessage pairs with the most recent checkpoint where it is the tail message. Consumed by chat-message gutter markers to anchor inline time-travel actions on each assistant turn.
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
3 tasks
Three lint errors flagged by CI on PR #241: - chat-thread-drawer scrim was a <div> with a (click) and no key handler / focus support. Change to <button type="button" aria-label="Close conversations"> so the close action is keyboard- reachable and screen-reader announced. - chat-thread-list default item template used \`!= null\`; the lib's Angular template lint config enforces \`!==\`. Switch to \`!== undefined\` since updatedAt is typed \`number | undefined\` (never null). - agent-with-history.ts had an unused <S = unknown> generic that triggered no-unused-vars. The neighboring Agent doesn't take a generic parameter — drop S.
11 tasks
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.
Summary
chat-thread-drawer(slide-in left-edge container with push/overlay modes + scrim) andchat-checkpoint-marker(10px gutter dot with hover/focus Rewind/Fork pill).chat-thread-listdefault item template with optionalupdatedAt→ relative-time line.chat-messagewith optional[checkpointId]input mounting a marker in a 14px left gutter; replay/fork outputs bubble.agent.messageCheckpoints()to the LangGraph adapter —ReadonlyMap<messageId, checkpointId>computed from history.Together these primitives enable the threads + checkpoints nav v2 design. They are independently usable; follow-up PR will wire them into the canonical chat demo.
Test plan
nx test chatgreen for new specs (chat-checkpoint-marker, chat-thread-drawer, chat-thread-list extensions, chat-message gutter)nx test langgraphgreen for new computeMessageCheckpoints testsnx build chat+nx build langgraphgreenGenerated with Claude Code