PRD: macOS Container backend - Part III (integration coverage) #232

Merged
didericis merged 3 commits from feat/macos-container-integration-tests into feat/macos-container-launch 2026-06-10 21:32:03 -04:00
Collaborator

Stacked on PR #231.

Closes out the remaining PRD work after the launch-step PR:

  • adds a real Apple Container launch integration smoke, guarded by macOS + container availability
  • verifies exec, proxy env stamping, allowlisted egress through the sidecar, direct-egress bypass failure, and non-allowlisted proxy blocking
  • preflights Apple Container BuildKit DNS before running the launch smoke, because image builds must be able to resolve package mirrors
  • fixes the BuildKit RUN-step resolver issue by probing the running builder and only restarting it when resolution fails, or when BOT_BOTTLE_MACOS_CONTAINER_DNS explicitly requests a different DNS
  • prefers a directly reachable IPv4 resolver from host scutil --dns, falling back to 1.1.1.1 only when no host resolver is discoverable
  • updates the PRD to describe the implemented launch topology and explicitly defer git-gate for macOS Container until safe key delivery exists

Verification:

  • python3 -m compileall -q bot_bottle tests/unit/test_macos_container_util.py tests/unit/test_macos_container_launch.py tests/integration/test_macos_container_launch.py
  • python3 -m unittest discover tests/unit
  • python3 -m unittest tests.integration.test_macos_container_launch
  • python3 -m unittest tests.unit.test_macos_container_util tests.unit.test_macos_container_launch
  • npx pyright .
  • git diff --check

The Apple Container integration smoke passes on this host with the tightened builder DNS behavior.

Stacked on PR #231. Closes out the remaining PRD work after the launch-step PR: - adds a real Apple Container launch integration smoke, guarded by macOS + `container` availability - verifies exec, proxy env stamping, allowlisted egress through the sidecar, direct-egress bypass failure, and non-allowlisted proxy blocking - preflights Apple Container BuildKit DNS before running the launch smoke, because image builds must be able to resolve package mirrors - fixes the BuildKit RUN-step resolver issue by probing the running builder and only restarting it when resolution fails, or when `BOT_BOTTLE_MACOS_CONTAINER_DNS` explicitly requests a different DNS - prefers a directly reachable IPv4 resolver from host `scutil --dns`, falling back to `1.1.1.1` only when no host resolver is discoverable - updates the PRD to describe the implemented launch topology and explicitly defer git-gate for macOS Container until safe key delivery exists Verification: - `python3 -m compileall -q bot_bottle tests/unit/test_macos_container_util.py tests/unit/test_macos_container_launch.py tests/integration/test_macos_container_launch.py` - `python3 -m unittest discover tests/unit` - `python3 -m unittest tests.integration.test_macos_container_launch` - `python3 -m unittest tests.unit.test_macos_container_util tests.unit.test_macos_container_launch` - `npx pyright .` - `git diff --check` The Apple Container integration smoke passes on this host with the tightened builder DNS behavior.
didericis-codex added 1 commit 2026-06-10 20:01:36 -04:00
test(macos-container): add launch integration smoke
lint / lint (push) Successful in 1m44s
test / unit (pull_request) Successful in 37s
test / integration (pull_request) Successful in 20s
f7f9892b53
didericis added 1 commit 2026-06-10 20:12:54 -04:00
fix(macos-container): start builder with dns
lint / lint (push) Successful in 1m45s
test / unit (pull_request) Successful in 37s
test / integration (pull_request) Successful in 19s
d123b99347
didericis added 1 commit 2026-06-10 20:33:36 -04:00
fix(macos-container): preserve working builder dns
lint / lint (push) Successful in 1m33s
test / unit (pull_request) Successful in 30s
test / integration (pull_request) Successful in 16s
2e467d236a
didericis merged commit 2e467d236a into feat/macos-container-launch 2026-06-10 21:32:03 -04:00
didericis deleted branch feat/macos-container-integration-tests 2026-06-10 21:32:04 -04:00
Sign in to join this conversation.