Repository navigation
Fix the three macOS CI failures on main - #1
Merged
Merged
Conversation
The toolchain phase script runs inside a Linux container and wraps each phase in timeout. Two tests run it on the host's /bin/sh, and GitHub's macOS image has no timeout. Each phase exited 127 there. A host without one now gets a pass-through shim on PATH, and a host with one still uses it. With timeout off PATH the old test fails 2 and the new one passes 33 of 33.
The catalogue-age probe named /opt/homebrew/Library/Taps/homebrew/ homebrew-core outright. No override could move it, and GitHub's macOS runner has that tap clone. "An unlocatable catalogue is UNKNOWN age" found a month-old catalogue there and failed. The prefix now comes from CW_BREW_PREFIX, which update-vulns already reads, then brew's own HOMEBREW_PREFIX (an Intel Mac's /usr/local), then /opt/homebrew. The test points it at a path that does not exist. docs/REFERENCE.md is regenerated for the new reader.
This was referenced Oct 11, 2026
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.
Fixes the three macOS test failures in CI run 37767425796 on
main(aa4ee769). Both macOS jobs (Node 22 and Node 24) failed on the same three tests. The Ubuntu and Windows jobs passed.Failures and fixes
bin/test/build-health-parse.test.mjs: the twosh -cround-trip tests. The toolchain phase script wraps each phase intimeout, because it normally runs inside a Linux container. These two tests run it on the host's/bin/shinstead, and GitHub's macOS image has notimeout, so every phase exited 127. On a host withouttimeout, the tests now put a pass-through shim on PATH. Hosts that havetimeoutstill use it.monitor/test/package-inventory.test.mjs: "an unlocatable catalogue is UNKNOWN age".brewState()hard-coded/opt/homebrew/Library/Taps/homebrew/homebrew-core, and no override could move it. The macOS runner has that tap clone, so the test found a month-old catalogue where it expected none. The prefix is now resolved fromCW_BREW_PREFIX(whichmonitor/update-vulns.mjsalready reads), thenHOMEBREW_PREFIX, then/opt/homebrew. The test pointsCW_BREW_PREFIXat a path that does not exist.docs/REFERENCE.mdis regenerated, becauseCW_BREW_PREFIXnow has a second reader.Verification (macOS, Node 26)
timeoutremoved from PATH (PATH=/usr/bin:/bin), the round-trip tests fail 2 onmainand pass 33/33 on this branch.CW_BREW_PREFIXpointing at a temporary tap directory givescatalogueAgeDays: 0. Pointing it at a missing path givesnulland the UNKNOWN note.node bin/reference.mjs --checkexits 0.npm testrun had 6 failures across 7 files, none in a file this branch touches. Rerun alone onmainand on this branch, those files gave identical results:get-focused-hook,history-guardsD1 andbrand-marks. Their results depend on the local checkout's branch layout and on a sibling site checkout.homebrew-coretap clone, so the original brew failure could not be reproduced locally. This PR's macOS CI jobs are the check for that fix.