fix: bridge smoke liveness probe -- Signal(nil) declared every launch dead - #232
Merged
Conversation
… dead Process.Signal's Unix implementation type-asserts its argument to syscall.Signal; a nil interface fails that assertion and returns an error for a perfectly alive process, so waitForBridge's early-exit branch fired on the first poll of every launch -- the identical 'connection refused' failure on CI hosted runners and locally. syscall.Signal(0) is the real kill(2) liveness probe. Regression test pins a live child probing false and a reaped child probing true. testing.md's parity verdict rewritten: the headless-windowing lead was never tested (the harness failed first); remaining work is registry calibration against Mill's real multi-window shape, tracked as a goal. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FW5GkkAG8du7tNdYLk2zSd
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.
Every "app process exited before the MCP bridge became reachable" failure — CI hosted runners and local runs alike — was the harness's own liveness probe:
Process.Signal(nil)fails the Unix implementation'ssyscall.Signaltype assertion and errors for a perfectly alive process, so the early-exit branch fired on the first poll of every launch. The headless-runner windowing theory was never actually tested; the harness failed before the app could boot.With
syscall.Signal(0)the local smoke connects and drives the real registry — the click-model and selection-ring checks have passed against the real WKWebView. Remaining before the CI job means anything: the check registry was written blind against a single-window assumption (Mill opens main + the Quick Panel), so window-count/badge/click-targeting calibration is tracked as goal 0107. Regression test pins the probe both ways; testing.md's parity verdict rewritten honestly.🤖 Generated with Claude Code
https://claude.ai/code/session_01FW5GkkAG8du7tNdYLk2zSd