Skip to content

history: every step is reported, so fizzy knows who made it - #57

Merged
foxnne merged 2 commits into
mainfrom
history/report-every-step
Oct 19, 2026
Merged

foxnne merged 2 commits into
mainfrom
history/report-every-step

Conversation

@foxnne

@foxnne foxnne commented Oct 18, 2026

Copy link
Copy Markdown
Contributor

Part of fizzyedit/plans#14 — plans/SHARED_HISTORY_PLAN.md step 3, pixi's half, which #49 left short: "text and pixi report every step".

What changes

History.record called Host.recordStep only while the sprite was being recorded. So fizzy never kept who made a pixi step (Host.stepAuthor works from the steps owners report):

Now every step is reported, as text's are:

  • added, undone and redone carry their id and the step on top after them (Step.top, from History.top()).
  • restarted is reported whether or not anything records.
  • The step's effect (the encoded pixels) is still made only while recording, so the cost when nothing records is one call into the host per step.

Unchanged: while recording, a change pixi cannot encode (a layer, an animation) still reports restarted, so the track starts over rather than drifting. That also clears the authors fizzy kept for the sprite, as any restart does.

Verified

On macOS, in a sandbox fizzy built from main (past 0.2.29; built with --fork): an MCP client named claude-code drew a rect with pixi.draw, then called fizzy.undo .{ .path }, which answered .by = "Claude". Before this change the same sequence answered .by = "the person".

zig build, zig fmt --check.

🤖 Generated with Claude Code

foxnne and others added 2 commits October 18, 2026 12:06
pixi called `Host.recordStep` only while something recorded the sprite, so
fizzy never kept who made a pixi step: undo couldn't name an agent's draw,
and `fizzy.undo` answered "the person" for it. Every step is now reported,
with the step on top (`Step.top`); its effect is still encoded only while
recording. Text already works this way.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keeps main's `motionOf` and its position-keyed, timed encode, and this
branch's report of every step with the step on top.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@foxnne
foxnne merged commit 5f9a93e into main Oct 19, 2026
5 of 6 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