Skip to content

Fix macOS test failures on main - #1281

Merged
JacobStephens2 merged 4 commits into
mainfrom
fix-main-ci-macos
Oct 25, 2026
Merged

JacobStephens2 merged 4 commits into
mainfrom
fix-main-ci-macos

Conversation

@JacobStephens2

@JacobStephens2 JacobStephens2 commented Oct 24, 2026 •

Copy link
Copy Markdown
Owner

Fixes the macOS failures on main since #1122 (CI runs 40131162566, 40141759916, 40145328626). Linux was green throughout.

macOS shards stop at their first failure, so each fix uncovered the next. The full macOS suite (test:macos) now passes on all four shards.

  • tests/eval_arms.rs: the fixture now canonicalizes its temp root, since prepare-arms records canonical binary paths and macOS temp dirs sit behind /var -> /private/var.
  • tests/console/github.rs: after killing the Console, wait for fake gh calls to settle before snapshotting. A gh api graphql child spawned just before the kill was recording one extra call.
  • Trials whose Harness can't launch are void on macOS too (src/harness/interpretation.rs, src/trial.rs). macOS runs a file it can't execute through /bin/sh, which exits 127. Linux refuses the spawn instead. A Harness that exits 126 or 127 before any turn never ran, so its Trial is now void (session_unavailable) on both platforms, rather than failed against its Arm. The new test a_harness_the_shell_cannot_run_is_a_void_trial reproduces this on Linux.
  • src/sandbox.rs: tool_bin_dirs_names_only_bound_roots canonicalizes its temp root, since tools are matched by canonical path.

🤖 Generated with Claude Code

https://claude.ai/code/session_01M5VdjUGU154umHfxS3ZTBN
https://claude.ai/code/session_01LSAzXiA6BD9neiPgVQRMKD

JacobStephens2 and others added 2 commits October 24, 2026 18:20
eval_arms compared recorded binary paths against an uncanonicalized
temp dir, which macOS reaches through /var -> /private/var. The Console
GitHub tests snapshotted fake gh calls straight after killing the
Console, so a gh child it had already spawned could record afterwards.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01M5VdjUGU154umHfxS3ZTBN
@JacobStephens2 JacobStephens2 added the test:macos On a PR into main: run the full 4-shard macOS suite instead of the one-job macOS gate (#893) label Oct 25, 2026
JacobStephens2 and others added 2 commits October 24, 2026 21:05
On macOS, spawning a file that has execute permission but no valid
executable format falls back to /bin/sh, which exits 127. Linux refuses
the spawn instead. A Harness that exits 126 or 127 before any turn never
ran, so its Trial is void (session_unavailable) on both platforms, not
failed against its Arm.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LSAzXiA6BD9neiPgVQRMKD
tool_bin_dirs_on matches tools by canonical path, and macOS temp dirs
sit behind /var -> /private/var.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LSAzXiA6BD9neiPgVQRMKD
@JacobStephens2
JacobStephens2 merged commit ec63a72 into main Oct 25, 2026
21 checks passed
@JacobStephens2
JacobStephens2 deleted the fix-main-ci-macos branch October 25, 2026 04:26
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

test:macos On a PR into main: run the full 4-shard macOS suite instead of the one-job macOS gate (#893)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant