fix(host): compile punktfunk-host on macOS #456

Merged
enricobuehler merged 3 commits from fix/macos-host-compile-holes into main 2026-08-30 23:34:48 +00:00
3 Commits
Author SHA1 Message Date
enricobuehler b07e0c2d68 Merge branch 'main' into fix/macos-host-compile-holes
macos-host / check (pull_request) Successful in 1m4s
android / android (pull_request) Successful in 8m27s
ci / bun-nix (pull_request) Successful in 1m35s
ci / docs-drift (pull_request) Successful in 26s
ci / rust-arm64 (pull_request) Successful in 4m10s
ci / docs-site (pull_request) Successful in 3m4s
ci / web (pull_request) Failing after 10m34s
ci / rust (pull_request) Canceled after 12m0s
2026-08-30 22:44:06 +00:00
enricobuehler c5b554ffb9 ci: check that punktfunk-host still compiles on macOS
ci / docs-drift (pull_request) Successful in 35s
ci / bun-nix (pull_request) Successful in 27s
ci / web (pull_request) Successful in 52s
ci / docs-site (pull_request) Successful in 1m9s
macos-host / check (pull_request) Successful in 1m27s
ci / rust-arm64 (pull_request) Successful in 2m16s
ci / rust (pull_request) Failing after 6m47s
android / android (pull_request) Successful in 9m23s
The third-platform seam has no gate, which is why it rotted: the
unguarded call sites went from 9 to 11 in the four weeks after they were
first counted, and each one was only found by someone running the check
by hand.

Its own workflow rather than a job in apple.yml, for two reasons. That
file's paths filter is deliberately narrow — punktfunk-core and the
Apple client — because the mac mini is shared and an xcframework build
is heavy, so a host-crate edit would never have fired it. And its
`distribute` job is `needs: swift`, where anything that later grows the
same dependency can block a TestFlight upload over a host compile hole
the client has no part in.

`cargo check`, not clippy, and no `-D warnings`: the graph carries code
that is dead on macOS, and failing on that would only teach people to
ignore the gate. It asks one question.

Refs #299
2026-08-30 23:13:11 +02:00
enricobuehler 18fec75d68 fix(host): compile punktfunk-host on macOS
`cargo check -p punktfunk-host` failed on macOS with 11 errors across
six files. Not one was missing functionality: every one was a call site
or a dependency that assumed Linux-or-Windows without saying so, and the
count had grown from 9 to 11 in four weeks with nobody working on macOS.

`opus` and `libc` were declared only for the platforms with a capture
backend, though the code reaching for them is portable — the mic pump
just decodes, and both `hooks.rs` helpers are already `#[cfg(unix)]`.
`pf-vdisplay` re-exported `try_recover_session` and
`cancel_pending_tv_restore` behind a Linux gate even though both already
carry off-Linux arms. `cursor_blend_for` split on Windows rather than on
Linux, so a third platform fell into the arm holding the VAAPI/CUDA
terms that exist only there. `gamelease` reached past `procscan`'s own
platform-neutral wrappers to `Scanner::system()`, which the module's
documented boundary says it must not.

That last one now goes through a new `procscan::alive`, which builds a
scanner per call exactly as the `names` and `resolve` wrappers beside it
do — two syscalls on Linux, a unit struct on Windows.

Linux and Windows behaviour is unchanged.

Refs #299
2026-08-30 23:13:01 +02:00