← back to ZenZX

ZenZX — known limits and dormant guards

Version: 0.6.7 Last reviewed: 2026-08-17

Intentional limits, invariant boundaries, and recorded decisions. Defects and gaps that are meant to be fixed belong in TRACKING.md, not here.

Limits

CI and cross-platform builds

.github/workflows/ci.yml and .github/workflows/release.yml, modelled on github.com/ha1tch/zenimate's CI. The split between platforms is a consequence of the pinned dependency versions, not a design choice:

Net effect: darwin (amd64/arm64) and windows (amd64/arm64) GUI binaries are built cgo-free, cross-compiled from a single Linux runner, in both CI and the release workflow. Linux (amd64 and arm64) always needs a native cgo build with libasound2-dev, libgl1-mesa-dev, and the X11/Wayland dev headers installed on the runner; arm64 uses GitHub's ubuntu-24.04-arm hosted runner (GA, free on public repositories — see GitHub's runner documentation for private-repository terms). See T-08: a future raylib-go or oto version bump should re-verify this split before assuming it still holds.

Dormant guards

Verification that does not run in the default go test -tags headless invocation. A guard's existence is not evidence; only its execution record is. repoman/guards.py stale lists guards not exercised since the previous release; each is run, handed off (guards.py handoff), or its skip is recorded in the release's changelog entry.

G-02. FDC read against a real DSK image (fdc_read_test.go)