Skip to content

Stop the release script hanging on its own safety check - #16

Merged
stoatworks-labs merged 2 commits into
mainfrom
worktree-canvas-drag
Sep 3, 2026
Merged

Stop the release script hanging on its own safety check#16
stoatworks-labs merged 2 commits into
mainfrom
worktree-canvas-drag

Conversation

@stoatworks-labs

Copy link
Copy Markdown
Owner

release-local.sh proves the bundle holds the GUI rather than the CLI by running Contents/MacOS/UnMapper --help and checking the output is not clap's. But the GUI took any argument as a stage file to open — so --help opened a window and the script waited for it for ever, having printed nothing. It looks exactly like a slow build.

Worse, the first run appeared to succeed: removing the build worktree out from under the check killed the window, the pipeline completed, and the script exited 0. A safety net that hangs, and then passes when something unrelated kills it, is worse than no check.

  • The GUI now answers --help and --version and exits — handled before the event loop, the GPU or NDI, so it holds on a machine with none of them.
  • The check runs under a perl alarm, and a timeout is a failure, not a pass.

Verified by running scripts/release-local.sh --fast end to end with nothing intervening: exit 0, and it reaches the lines past the check that the hanging version never printed.

🤖 Generated with Claude Code

stoatworks-labs and others added 2 commits September 4, 2026 00:19
Dragging a panel about the emulation canvas did nothing: the grab landed on
empty canvas and the drag became a pan. `zoom` is target *pixels* per canvas
pixel — what the vertex shader multiplies by — while a pointer arrives from
egui in *points*, and at 2x those differ by two. Hit-testing without the
conversion halved every click's distance from the top-left corner, so a panel
drawn on the right of the view was tested for near the middle.

The other half of the same problem: the grab was taken from where the pointer
was when egui decided the press had become a drag, by which time a quick flick
has left the panel it was aimed at. It now comes from press_origin, as the
previz handles already do.

The regression test drives the real widgets headlessly at
set_pixels_per_point(2.0) — at 1x the bug does not exist, which is why the
existing harness could not see it. Grab-and-drag, panning on empty canvas, and
zoom-about-the-cursor are all covered now.

Found by dragging panels in the app, which is the first time anyone had.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
`release-local.sh` proves the bundle holds the GUI rather than the CLI by
running `Contents/MacOS/UnMapper --help` and checking the output is not clap's.
But the GUI took any argument as a stage file to open, so `--help` opened a
window and the script waited for it for ever, having printed nothing. It looks
exactly like a slow build.

Worse, the first run of it appeared to succeed: removing the worktree out from
under the check killed the window, the pipeline completed, and the script exited
0. A safety net that hangs, and then passes when something unrelated kills it,
is worse than no check.

So the GUI answers `--help` and `--version` and exits — before the event loop,
the GPU or NDI, so it holds on a machine with none of them — and the check runs
under a `perl alarm` where a timeout is a failure, not a pass.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@stoatworks-labs
stoatworks-labs merged commit 0550634 into main Sep 3, 2026
1 check passed
@stoatworks-labs
stoatworks-labs deleted the worktree-canvas-drag branch September 3, 2026 23:23
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