Skip to content

Feat/chat share fork replay - #342

Merged
kiwi0401 merged 2 commits into
mainfrom
feat/chat-share-fork-replay
Sep 8, 2026
Merged

Feat/chat share fork replay#342
kiwi0401 merged 2 commits into
mainfrom
feat/chat-share-fork-replay

Conversation

@kiwi0401

@kiwi0401 kiwi0401 commented Sep 8, 2026

Copy link
Copy Markdown
Member

No description provided.

kiwi0401 and others added 2 commits September 8, 2026 09:58
Replace the per-message Replay action with one conversation-level replay:
every turn plays on a single compressed clock, user messages appear at
their moment, each run re-streams its steps and inline artifact cards, and
the artifacts panel pops open on the first file that becomes ready while
playing. Speed is selectable (2x/5x/10x, default 5x) and switching keeps
the viewer at the same point in the original run.

Fixes two replay bugs: artifact cards for a run used to appear at t=0 as
trailing cards because the card derivation saw the full file manifest,
and text kept streaming after a scrub to the end because the smoothing
hook drained deltas on its own clock. Cards now follow the frame and text
renders instantly whenever the replay is paused or scrubbed.

The "Replay chat" button is gated behind a browser-local "Enable replay"
switch in Chat settings, off by default, since replay is mainly a demo
feature. The message module is split into assistant-message,
chat-message-timing and chat-replay-view to stay under the file limit.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
The shared chat page is now the real chat page, read only: the same
message tree, tool timeline, inline artifact cards and artifacts panel
(files and queries), all read through share-token routes. The share
endpoint returns the full snapshot (messages with metadata, run events,
file manifest) and hides everything that belongs to an in-flight run; new
shared routes serve the SQL trace and paged query-result rows.

Forking is one click. The preview endpoint, the budget inputs, the cost
notice and the confirm step are gone; budgets come from the forking user's
saved defaults through the helper bootstrap already uses. The fork copies
the whole chat: conversation, runs, messages, run events, files,
structured query results and governed executions. One id map plus a
recursive JSON walker rewrites every reference inside copied payloads so
tool cards and artifact cards resolve in the copy; file origin is remapped
to the new run so inline cards derive.

Sharing opens a centered dialog with the link, a copy action, a loader
while the link is minted, and a plain statement that only signed-in
members of the organization can ever open it. Forking shows a full-screen
progress overlay until the copy is ready. The sharing and forking feature
flags are passed through docker-compose so the local staging stack can
exercise both.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
@vercel

vercel Bot commented Sep 8, 2026

Copy link
Copy Markdown

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

Project Deployment Actions Updated
signal-pilot Ready Ready Preview Sep 8, 2026 5:04pm UTC
signal-pilot-docs Error Error Sep 8, 2026 5:04pm UTC

Request Review

@kiwi0401
kiwi0401 merged commit 70e8252 into main Sep 8, 2026
9 of 12 checks passed
@kiwi0401
kiwi0401 deleted the feat/chat-share-fork-replay branch September 8, 2026 17:04
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