Agent cursor speed: a slider from 1× to 5× with Instant at the far right. Instant no longer breaks: the command runs at once (as with the cursor off) and the pointer jumps to where it acted, with a click ripple. ui.agent_cursor speed takes 1–5 or "instant"; saved "slow" and "normal" read as 1×. Scenario covers 1×, 3× and Instant against the cursor-off result

Fixes #79

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01RjGw4gA5ZvKrU8MQP6sBgT
This commit is contained in:
bherbruckandClaude Opus 5.5 committed 2026-10-10 16:56:30 +00:00
1 parent 5ec6d3562e
commit c90070c497
7 files changed
+128 -34

No files matched your search

@@ -1,17 +1,32 @@
[
{"note": "#35: with the agent cursor on, an agent's commands are acted out (the reply waits for the pointer) and give the same result as with it off"},
{"call": "ui.agent_cursor", "params": {"show": true, "speed": "normal", "follow_camera": true}},
{"note": "#35, #79: with the agent cursor on, an agent's commands are acted out (the reply waits for the pointer) at 1x and 3x; at Instant they run at once. Each speed builds the same body as the cursor being off."},
{"call": "ui.agent_cursor", "params": {"show": true, "speed": 1, "follow_camera": true}},
{"queued": "engine.execute", "params": {"command": "sketch.create", "params": {"plane": "XY"}}, "min_frames": 30},
{"queued": "engine.execute", "params": {"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [40, 25]}}, "min_frames": 45},
{"queued": "engine.execute", "params": {"command": "sketch.finish", "params": {}}, "min_frames": 30},
{"queued": "engine.execute", "params": {"command": "solid.extrude", "params": {"distance": 10, "operation": "new"}}, "min_frames": 30},
{"expect": {"errors": 0, "bodies": 1, "volume": [10000, 1e-6]}},
{"note": "3x: still acted out, about three times as fast"},
{"call": "ui.agent_cursor", "params": {"speed": 3}},
{"queued": "engine.execute", "params": {"command": "sketch.create", "params": {"plane": "XY"}}, "min_frames": 8, "max_frames": 45},
{"queued": "engine.execute", "params": {"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [40, 25]}}, "min_frames": 8},
{"queued": "engine.execute", "params": {"command": "sketch.finish", "params": {}}, "min_frames": 8},
{"queued": "engine.execute", "params": {"command": "solid.extrude", "params": {"distance": 10, "operation": "new"}}, "min_frames": 8},
{"expect": {"errors": 0, "bodies": 2, "volume": [20000, 1e-6]}},
{"note": "Instant: answered on the next frame, no animation"},
{"call": "ui.agent_cursor", "params": {"speed": "instant"}},
{"queued": "engine.execute", "params": {"command": "sketch.create", "params": {"plane": "XY"}}, "max_frames": 2},
{"queued": "engine.execute", "params": {"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [40, 25]}}, "max_frames": 2},
{"queued": "engine.execute", "params": {"command": "sketch.finish", "params": {}}, "max_frames": 2},
{"queued": "engine.execute", "params": {"command": "solid.extrude", "params": {"distance": 10, "operation": "new"}}, "max_frames": 2},
{"expect": {"errors": 0, "bodies": 3, "volume": [30000, 1e-6]}},
{"note": "A call with animate: false runs at once"},
{"queued": "engine.execute", "params": {"command": "sketch.create", "params": {"plane": "XY"}, "animate": false}},
{"call": "ui.agent_cursor", "params": {"speed": 1}},
{"queued": "engine.execute", "params": {"command": "sketch.create", "params": {"plane": "XY"}, "animate": false}, "max_frames": 2},
{"call": "ui.agent_cursor", "params": {"show": false}},
{"note": "The same steps with the cursor off: a second, identical body"},
{"note": "The same steps with the cursor off: a fourth, identical body"},
{"queued": "engine.execute", "params": {"command": "sketch.rectangle.two_point", "params": {"p0": [0, 0], "p1": [40, 25]}}},
{"queued": "engine.execute", "params": {"command": "sketch.finish", "params": {}}},
{"queued": "engine.execute", "params": {"command": "solid.extrude", "params": {"distance": 10, "operation": "new"}}},
{"expect": {"errors": 0, "bodies": 2, "volume": [20000, 1e-6]}}
{"expect": {"errors": 0, "bodies": 4, "volume": [40000, 1e-6]}}
]