Skip to content

ci: expand build matrix to Linux x86_64 / Linux aarch64 / macOS arm64#2

Merged
SMC17 merged 1 commit into
mainfrom
ci/cross-platform-matrix
May 15, 2026
Merged

ci: expand build matrix to Linux x86_64 / Linux aarch64 / macOS arm64#2
SMC17 merged 1 commit into
mainfrom
ci/cross-platform-matrix

Conversation

@SMC17
Copy link
Copy Markdown
Owner

@SMC17 SMC17 commented May 14, 2026

Summary

Expands CI from a single ubuntu-latest (x86_64) job to a three-runner native matrix plus a four-target cross-compile sanity job:

  • ubuntu-latest (x86_64, native) — current default
  • ubuntu-24.04-arm (aarch64, native) — new
  • macos-14 (Apple Silicon aarch64, native) — new
  • cross-compile sanity (aarch64-linux-gnu, aarch64-macos, x86_64-linux-gnu, x86_64-macos) from the x86_64 host

Why

Raises the tide on the hardware-verified evidence level defined in AGENT_HARNESS.md. The frame protocol's wire format is explicitly little-endian; arm64 native runners exercise the same byte-order code path on an ISA where little-endian is also native, but the test is the cross-runner consistency: same fixture bytes, same CRC, on x86_64 + aarch64-linux + Apple Silicon.

Local verification

  • zig build test on Linux x86_64 → PASS (21 unit + 100k random-wire fuzz + ~11k CRC bit-flip)
  • zig build -Dtarget=aarch64-linux-gnu on Linux x86_64 → PASS
  • zig build -Dtarget=aarch64-macos on Linux x86_64 → PASS
  • zig fmt --check src/ build.zig → PASS

Caveats

  • This crate depends on zig-cobs. If the upstream zig-cobs CI matrix expansion exposes a regression on aarch64, it surfaces here too. That is the right shape: substrate failures cascade up.
  • macOS runners use native Apple toolchain. The cross-compile sanity job exercises the LLD-on-Linux path independently.

Type-I / Type-II audit

  • Type I (false positive risk): matrix labels describe runner architecture only. No benchmark claims.
  • Type II (missed risk): without native arm64 coverage, an alignment bug in the 20-byte header decode (u32 / u64 reads from []const u8) could land silently on x86_64 because unaligned access is cheap there. arm64 native runner is where this surfaces.

Test plan

  • All matrix legs green on CI
  • No regression on existing fmt / build / test steps
  • Confirm zig-cobs dep resolves identically on all three runner shapes

Adds native-runner coverage on three platforms (ubuntu-latest x86_64,
ubuntu-24.04-arm aarch64, macos-14 aarch64) plus a cross-compile sanity
job that exercises four targets from the x86_64 host. Closes the
hardware-class gap on the AGENT_HARNESS evidence ladder: the
`hardware-verified` proof level can now reference real arm64 silicon for
this substrate library.

Type-I lens: matrix labels (`Linux aarch64`, `macOS arm64`) are accurate
to the runner architecture GitHub provides; we are not claiming Apple M-
series performance characteristics, only that the same Zig 0.16.0 build
+ test invocations run green on those native runners.

Type-II lens: cross-compile sanity job catches platform regressions
even if a native runner is offline or queued.
SMC17 added a commit to SMC17/SMC17 that referenced this pull request May 14, 2026
…Zig repos

zig-cobs / zig-frame-protocol / zig-graph / zig-h3 / sentinel-sbom each
expanded from a single ubuntu-latest job to 3 native runners
(Linux x86_64, Linux aarch64, macOS Apple Silicon) plus a 4-target
cross-compile sanity job. The `hardware-verified` evidence level is
no longer dormant.

zig-h3's macOS-from-Linux cross-compile is restricted to Linux targets
only — documented as a Zig 0.16.0 LLD-on-mach-o gap, not as a missing
test. sentinel-sbom's macOS path also swaps `sha256sum` → `shasum -a 256`.

Per-repo PRs:
- zig-cobs           SMC17/zig-cobs#2
- zig-frame-protocol SMC17/zig-frame-protocol#2
- zig-graph          SMC17/zig-graph#2
- zig-h3             SMC17/zig-h3#2
- sentinel-sbom      SMC17/sentinel-sbom#2

Honest incident: agent ran `git checkout README.md` while branching
zig-cobs and discarded an uncommitted WIP. Reported instead of hidden.
Matches the blast-radius-protection-is-substrate-primitive doctrine.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@SMC17 SMC17 force-pushed the ci/cross-platform-matrix branch from eeac901 to dd42e14 Compare May 14, 2026 20:35
SMC17 added a commit to SMC17/SMC17 that referenced this pull request May 14, 2026
…Zig repos

zig-cobs / zig-frame-protocol / zig-graph / zig-h3 / sentinel-sbom each
expanded from a single ubuntu-latest job to 3 native runners
(Linux x86_64, Linux aarch64, macOS Apple Silicon) plus a 4-target
cross-compile sanity job. The `hardware-verified` evidence level is
no longer dormant.

zig-h3's macOS-from-Linux cross-compile is restricted to Linux targets
only — documented as a Zig 0.16.0 LLD-on-mach-o gap, not as a missing
test. sentinel-sbom's macOS path also swaps `sha256sum` → `shasum -a 256`.

Per-repo PRs:
- zig-cobs           SMC17/zig-cobs#2
- zig-frame-protocol SMC17/zig-frame-protocol#2
- zig-graph          SMC17/zig-graph#2
- zig-h3             SMC17/zig-h3#2
- sentinel-sbom      SMC17/sentinel-sbom#2

Honest incident: agent ran `git checkout README.md` while branching
zig-cobs and discarded an uncommitted WIP. Reported instead of hidden.
Matches the blast-radius-protection-is-substrate-primitive doctrine.
@SMC17 SMC17 force-pushed the ci/cross-platform-matrix branch from dd42e14 to 6409d08 Compare May 14, 2026 21:04
SMC17 pushed a commit to SMC17/SMC17 that referenced this pull request May 14, 2026
…Zig repos

zig-cobs / zig-frame-protocol / zig-graph / zig-h3 / sentinel-sbom each
expanded from a single ubuntu-latest job to 3 native runners
(Linux x86_64, Linux aarch64, macOS Apple Silicon) plus a 4-target
cross-compile sanity job. The `hardware-verified` evidence level is
no longer dormant.

zig-h3's macOS-from-Linux cross-compile is restricted to Linux targets
only — documented as a Zig 0.16.0 LLD-on-mach-o gap, not as a missing
test. sentinel-sbom's macOS path also swaps `sha256sum` → `shasum -a 256`.

Per-repo PRs:
- zig-cobs           SMC17/zig-cobs#2
- zig-frame-protocol SMC17/zig-frame-protocol#2
- zig-graph          SMC17/zig-graph#2
- zig-h3             SMC17/zig-h3#2
- sentinel-sbom      https://github.com/SMC17/sentinel-sbom/pull/2

Honest incident: agent ran `git checkout README.md` while branching
zig-cobs and discarded an uncommitted WIP. Reported instead of hidden.
Matches the blast-radius-protection-is-substrate-primitive doctrine.
@SMC17 SMC17 merged commit aa7aa4b into main May 15, 2026
14 checks passed
@SMC17 SMC17 deleted the ci/cross-platform-matrix branch May 15, 2026 13:55
SMC17 added a commit to SMC17/SMC17 that referenced this pull request May 15, 2026
…Zig repos

zig-cobs / zig-frame-protocol / zig-graph / zig-h3 / sentinel-sbom each
expanded from a single ubuntu-latest job to 3 native runners
(Linux x86_64, Linux aarch64, macOS Apple Silicon) plus a 4-target
cross-compile sanity job. The `hardware-verified` evidence level is
no longer dormant.

zig-h3's macOS-from-Linux cross-compile is restricted to Linux targets
only — documented as a Zig 0.16.0 LLD-on-mach-o gap, not as a missing
test. sentinel-sbom's macOS path also swaps `sha256sum` → `shasum -a 256`.

Per-repo PRs:
- zig-cobs           SMC17/zig-cobs#2
- zig-frame-protocol SMC17/zig-frame-protocol#2
- zig-graph          SMC17/zig-graph#2
- zig-h3             SMC17/zig-h3#2
- sentinel-sbom      SMC17/sentinel-sbom#2

Honest incident: agent ran `git checkout README.md` while branching
zig-cobs and discarded an uncommitted WIP. Reported instead of hidden.
Matches the blast-radius-protection-is-substrate-primitive doctrine.
SMC17 added a commit that referenced this pull request May 15, 2026
…#2)

Adds native-runner coverage on three platforms (ubuntu-latest x86_64,
ubuntu-24.04-arm aarch64, macos-14 aarch64) plus a cross-compile sanity
job that exercises four targets from the x86_64 host. Closes the
hardware-class gap on the AGENT_HARNESS evidence ladder: the
`hardware-verified` proof level can now reference real arm64 silicon for
this substrate library.

Type-I lens: matrix labels (`Linux aarch64`, `macOS arm64`) are accurate
to the runner architecture GitHub provides; we are not claiming Apple M-
series performance characteristics, only that the same Zig 0.16.0 build
+ test invocations run green on those native runners.

Type-II lens: cross-compile sanity job catches platform regressions
even if a native runner is offline or queued.

Co-authored-by: Sean Collins <sean@sunlitmoon.online>
SMC17 added a commit that referenced this pull request May 15, 2026
…#2)

Adds native-runner coverage on three platforms (ubuntu-latest x86_64,
ubuntu-24.04-arm aarch64, macos-14 aarch64) plus a cross-compile sanity
job that exercises four targets from the x86_64 host. Closes the
hardware-class gap on the AGENT_HARNESS evidence ladder: the
`hardware-verified` proof level can now reference real arm64 silicon for
this substrate library.

Type-I lens: matrix labels (`Linux aarch64`, `macOS arm64`) are accurate
to the runner architecture GitHub provides; we are not claiming Apple M-
series performance characteristics, only that the same Zig 0.16.0 build
+ test invocations run green on those native runners.

Type-II lens: cross-compile sanity job catches platform regressions
even if a native runner is offline or queued.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant