Repository navigation
feat(screenshot-change): add shoot runner and fix stale verbs - #238
Closed
moritzwilksch wants to merge 2 commits into
Closed
moritzwilksch wants to merge 2 commits into
moritzwilksch wants to merge 2 commits into
Conversation
The per-file verbs looked for the viewer's default [data-title] header, which diffle replaced with its own slotted FileHeader, so header, viewed, collapsed, setViewed, toggleCollapse and selectLines all timed out. Two further failures surfaced once they resolved: the app's tooltip lifts `title` off a hovered control, and a press on the cursor's selected line toggles it off. The verbs now park the pointer, and selectLines presses Escape first.
moritzwilksch
force-pushed
the
mw/fix-screenshot-harness
branch
from
September 30, 2026 19:15
3de2ab6 to
eb56d50
Compare
A scenario now exports a demo repo and one interaction function; the runner owns the server, browser, before/after runs, and cleanup, and prints only output paths plus a labelled compare image. - demoRepo builds throwaway repos with explicit -C and inline identity. - --before runs a cached git-archive checkout of the base revision with its own server and client, so dist/client is never swapped. - Builds and ffmpeg are silent unless they fail; the client rebuilds only when its sources change. - selftest.mjs exercises every verb; lookups name the likely cause. BREAKING CHANGE: withBaseClient, installClient, CLIENT_DIR and scenario.template.mjs are gone; write scenarios for shoot.mjs.
Owner
Author
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.
Makes the screenshot skill cheap for agents to use. It also fixes the per-file verbs, which had timed out on main.
Runner
A scenario is a small module in the agent's scratch directory:
node .agents/skills/screenshot-change/scripts/shoot.mjs scenario.mjs --before origin/mainruns it and prints only this:demoRepocreates them in the temp dir with an explicit-Cand inline identity, so nothing can touch the checkout or its config.--beforeruns agit archivecopy of the base revision with its own server and client. It's cached per commit, so re-runs take about 4 s, and it never swapsdist/clientor registers a worktree.failure-<side>.png; exit status 1.scripts/selftest.mjsexercises every verb, and lookup errors name the likely cause.💥 Breaking:
withBaseClient,installClient,CLIENT_DIRandscenario.template.mjsare removed. Write scenarios forshoot.mjs, or callbaseCheckout(rev)andstartDiffle({ root })directly.Stale verbs (first commit)
header,viewed,collapsed,setViewed,toggleCollapseandselectLinesall timed out on main:fileItemlooked for the viewer's default[data-title]header, which diffle has replaced with its own slottedFileHeader. It now matches the path span'stitlethere.TooltipHostremovestitlefrom the hovered control, so the verbs now move the pointer to the top-left corner first.selectLinespresses Escape first. fix(review): comment on the cursor's line when its number is pressed #239 fixes the app side.Verified
selftest.mjs: all verbs pass, including a comment stored ona.pyline 2.c9dc8d2506shows the ligature bug fixed by fix(client): disable font ligatures #237 (image above).revs,setupseeding threads, and an uncommitted demo repo.npm testpass.