Repository navigation
app: undo and redo show a document's transport - #472
Merged
Merged
Conversation
Undo and redo now show a bar of glass at the bottom of the document's pane: its history as a line with a tick per step and a knob where the document is, undo and redo either side, and the step's title with how far along it is (`app.HistoryTransport`). A press on the line goes to the step under it, a drag follows the pointer (one `historyGoTo` a frame at most), and the buttons step. The bar stays while the pointer is on it and goes 3 s after, with one timer wake while it shows and none once it has gone. An undo or redo held down goes one step a press for six presses, then two, four, up to thirty-two, in one jump each. The activity feed stays above the bar. Over any owner with `historyLine` and `historyGoTo`, so text has it now. The rules (when it shows, how far a held key goes, which step a point is) are std-only (`app/history_transport.zig`). The bar publishes `fizzy.history.line`, `.back` and `.forward` anchors for tapes. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
foxnne
force-pushed
the
app/history-transport
branch
from
October 16, 2026 21:46
23231ec to
5374435
Compare
foxnne
marked this pull request as ready for review
October 16, 2026 21:46
foxnne
enabled auto-merge (squash)
October 16, 2026 21:54
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.
Part of
plans/RECORDING_PLAN.md(fizzyedit/plans#17), step 5, first half: the transport. The hot zone and pixi's history line follow.What changes
Undo and redo show a document's transport (
app.HistoryTransport): a bar of glass at the bottom centre of that document's own pane.core.dialogs.glassBubbles), as the demo player's transport is.historyGoToa frame, so a drag across a thousand steps costs a jump a frame. A press on the title does nothing. A drag lasts only while the bar holds the mouse: if the bar stopped drawing mid-drag (a claim came), the drag is over. The bubbles step one at a time.undo/redocommand, so anything an owner does around an undo still happens. The bar doesn't show on a claimed document, or when there's nothing to undo or redo.place), so they don't overlap even on its first frame. A first version used the bar's rect from the frame before, and they overlapped on the frame it came in.history.line:<path>(itsxis that fraction of the history),history.back:<path>andhistory.forward:<path>, unprefixed likeapp/'s others (region:,picker:), for tapes and tests. Documented indocs/AUTOMATION.md.For any owner with
historyLineandhistoryGoTo, so text has it now. Pixi needs both (it has step ids since fizzyedit/pixi#45). That's in the next half, with the hot zone: the pointer near a view's bottom centre, no button held, a short dwell, bringing the bar up.The rules are std-only and tested on their own (
app/history_transport.zig,fizzy-history-transport-tests): when the bar shows and for how long, how far a held key goes, and which step a point on the line is.Not built yet:
HISTORY_TIMELINE_PLAN.mdstep 4) is what keeps it on the line.SHARED_HISTORY_PLAN's step 2; times are in the tracks already.SDK impact
sdk/src/version.zig,sdk_versionuntouched, PR labelledsdksdk_version, lists thesdkPRs since the lastsdk-v*tagVerified
scripts/check-fmt.sh,zig build,zig build check-web,zig build test-sdk-versionandzig build check-tests-reachedpass.zig build test: 572/573 (1 skipped), including the transport rules.zig build test-integration: 53/53 steps, 542/542 tests.check-webbuilds. Not seen there yet.Follow-ups
historyLine/historyGoTofor pixi (the second half of step 5).HistoryLine.versioncan't save that, because reading the version means building the line. AhistoryVersionhook (one number, no allocation) is the seam, for when long histories make it show up in the profiler.🤖 Generated with Claude Code