Skip to content

tools: an agent's commands and tapes are credited to its connection - #22

Merged
foxnne merged 2 commits into
mainfrom
sdk/repin-0.2.29
Oct 19, 2026
Merged

foxnne merged 2 commits into
mainfrom
sdk/repin-0.2.29

Conversation

@foxnne

@foxnne foxnne commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Update 2026-10-18: main moved to Zig 0.17 and SDK 0.2.30 (#23), and that is merged in here; the repin below is now main's. What this PR adds is crediting the agent's steps.

Part of fizzyedit/plans#8

What changes

fizzy_act and fizzy_run gain a stroke step, so an agent can draw through a plugin's own tools (press, carry, release) and look at the result before its next mark:

{"stroke": {"tag": "pixi.canvas:/p/a.pixi", "ms": 60, "points": [
  {"fx": 0.39, "fy": 0.20}, {"fx": 0.33, "fy": 0.20, "ms": 70}]}}
  • tag on the stroke is every point's that names none; each point's ms is the pen's time from the last.
  • Any point (click, move, stroke) can now be given as fractions of its tagged widget, fx/fy, then nudged by x/y. With pixi's pixi.canvas:<path> anchor (the whole image's rect), pixel (x, y) of a w×h sprite is ((x + .5) / w, (y + .5) / h).
  • The bridge's tool descriptions say so.

Needs fizzyedit/fizzy#431 (Script.stroke), so this builds only with --fork=<fizzy>/sdk until the next SDK release. Draft until then.

Verified

  • macOS: built with --fork against that change into a sandbox profile; drew a 32×32 sprite in pixi with strokes (outline, box-select-and-delete, bucket fills, shading), checking each pass with pixi.read and fizzy_capture. zig fmt --check.

Found on the way (not fixed here)

  • pixi.setTool {"tool": "pencil"} fails with "expected enum literal" even through fizzy_call.

🤖 Generated with Claude Code

Each command an agent runs, and each tape it plays, now records its steps as
that connection's (`sdk.Author`, fizzy#474/#475): `agentCall` acts as the
connection around `callCommand`, and `tape.play` and a run's tape go through
`playAs`. The bridge says the MCP client's name with `hello`, so the person
reads "Claude" beside its steps rather than "An agent".

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@foxnne

foxnne commented Oct 17, 2026

Copy link
Copy Markdown
Contributor Author

Seen live on macOS: fizzy main (0.2.29) under a sandbox profile, with this branch's agent, chat (fizzyedit/chat#15) and pixi (fizzyedit/pixi#48) installed. An MCP client that named itself claude-code in initialize called text.write through the bridge on an open note.txt; the pane's activity bubble read "Claude · Write Text", so the client's name reached hello and the step was the connection's.

Takes main's pins (SDK 0.2.30, version 0.1.1) and its 0.17 spellings
(dupeSentinel, @backingInt), keeping this branch's authors: the session
label from the client's name, and tapes played as the connection.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@foxnne foxnne changed the title sdk: repin to fizzy SDK 0.2.29, steps credited to the agent tools: an agent's commands and tapes are credited to its connection Oct 18, 2026
@foxnne
foxnne merged commit 7a351fa into main Oct 19, 2026
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