fix(ci): isolate documentation preview ownership - #42
Merged
Merged
Conversation
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.
The promotion check in #41 failed because its static server could not bind shared port 4328. The unbounded wait-on then accepted another job’s listener and the browser audit lost that server midway through its run.
This gives each accessibility run an owned static server bound atomically to 127.0.0.1 on an ephemeral port. Readiness verifies a unique run identity and a digest of every built file with a bounded request. The existing audit receives only that origin; failures, cancellation and timeouts propagate, and cleanup closes only the owned server and child. The built digest is checked again after a successful audit.
All existing accessibility, overflow and layout checks remain enabled. Documentation content is unchanged.
Validation: all five new lifecycle tests and the full npm test gates pass; npm run build passes. Regression coverage includes concurrent previews, foreign identity/build rejection, occupied-port failure, readiness timeout, changed-build detection, nonzero audit results and child timeout/cancellation isolation. Exact-head CI will run the full browser audit.