Skip to content

Replay for Quarto Hub#46

Merged
cscheid merged 17 commits intomainfrom
feat-replay
Mar 16, 2026
Merged

Replay for Quarto Hub#46
cscheid merged 17 commits intomainfrom
feat-replay

Conversation

@shikokuchuo
Copy link
Collaborator

@shikokuchuo shikokuchuo commented Mar 16, 2026

This PR adds replay to Quarto Hub collaborative editor.

This allows you to explore and step through the full document history, and provides an interface to automerge-native versioning / undo.

Adds a Replay button along the bottom edge of the editor. Clicking it opens a drawer and enters Replay mode. Replay mode is a personal exploration space - it doesn't affect other collaborators. Syncs continue in the background, and exiting replay returns you to the live collaborative document.

The drawer contains playback controls to play through the document's history like a video, or scrub back and forth along the timeline. The timeline scrubber shows a visual "waveform" - coloured bars representing different authors, so you can see at a glance when different collaborators contributed.

At any point during replay, hit the Restore button to revert the document to that moment in time - this adds a new change to the document. To undo this, simply go back into replay mode, step back one frame, and click Restore again.

There are keyboard shortcuts (spacebar, arrow keys, Home/End, Escape) to navigate without clicking.

video.webm

@shikokuchuo shikokuchuo marked this pull request as ready for review March 16, 2026 12:23
@cscheid
Copy link
Contributor

cscheid commented Mar 16, 2026

This is excellent.

It would be really useful to have corresponding replay APIs for quarto-sync-client, I think. We should merge this right away for us to play with it and showcase at the i&s workshop, but I wonder if we could refactor hub-client/src/hooks/useReplayMode.ts into something that's usable directly via quarto-sync-client.

Another useful thing would be a way for this mode to work on changes to the index document. There, the UI gets a bit more complicated. Users never see the "content" of the index automerge document and don't know the representation, and so it's not trivial to show the equivalent of the editor and preview. The main thing we want to allow is for people to undelete files, but there are more complicated scenarios, like the fact that someone might have deleted a file from the project, then recreated a new file with the same name (but different automerge id)

@cscheid cscheid self-requested a review March 16, 2026 14:49
@cscheid cscheid merged commit 57c53da into main Mar 16, 2026
4 checks passed
@shikokuchuo shikokuchuo deleted the feat-replay branch March 16, 2026 15:03
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.

2 participants