Same move as Timers 1.7.0 (PR #37). The capture tool existed only where the macOS app build had compiled it, with the module trying swiftc on the booth as a fallback — NA has been logging spawn spl-capture ENOENT since its catalog install, and since shell 1.10.0 every fresh install is a catalog install. The module guide's rule (PR #35): a native helper ships prebuilt, and nothing is ever built on the machine running ProdDash.
What
bin/spl-capture-macos-arm64 and bin/spl-capture-macos-x86_64, committed (164 KB and 140 KB), signed with the Waters Church Developer ID — hardened runtime plus the audio-input entitlement. Built from native/spl-capture.swift by native/build.sh; native/helper.entitlements beside it.
captureTool(moduleDir) picks the binary by platform and architecture. Where there is none — Windows, until a Windows implementation exists — measurement reports itself off: The module ships no sound level capture tool for Windows x64 (bin/spl-capture-win-x64.exe is missing) — measurement is off on this machine in the health line and the device picker's error, with the module still mounted.
Gone: the runtime swiftc build with its "Building the capture tool — this takes a minute or two" state, the health line's re-check of the old path, and the source's .gitignore line. The old top-level spl-capture on AB is simply no longer used.
SPL Meter 0.5.0.
Verified
Both binaries: right architecture, codesign --verify --strict passes, entitlements show com.apple.security.device.audio-input, runtime flag set.
bin/spl-capture-macos-arm64 --list on this Mac returns the JSON device list.
captureTool() returns the arm64 binary here, the x86_64 one for darwin/x64, and the off-message for win32/x64.
On a scratch ProdDash, GET /api/modules/spl-meter/devices returns the machine's six input devices through the new tool, and the health line reads the usual "measurement is off — turn it on in settings" rather than a tool error.
Not tested here: live measurement. AB keeps measuring through its compiled copy until this lands; on update the shipped arm64 binary takes over. NA's SPL module, off and without a tool until now, gains one.
## Why
Same move as Timers 1.7.0 (PR #37). The capture tool existed only where the macOS app build had compiled it, with the module trying `swiftc` on the booth as a fallback — NA has been logging `spawn spl-capture ENOENT` since its catalog install, and since shell 1.10.0 every fresh install is a catalog install. The module guide's rule (PR #35): a native helper ships prebuilt, and nothing is ever built on the machine running ProdDash.
## What
- **`bin/spl-capture-macos-arm64` and `bin/spl-capture-macos-x86_64`**, committed (164 KB and 140 KB), signed with the Waters Church Developer ID — hardened runtime plus the audio-input entitlement. Built from `native/spl-capture.swift` by `native/build.sh`; `native/helper.entitlements` beside it.
- **`captureTool(moduleDir)`** picks the binary by platform and architecture. Where there is none — Windows, until a Windows implementation exists — measurement reports itself off: `The module ships no sound level capture tool for Windows x64 (bin/spl-capture-win-x64.exe is missing) — measurement is off on this machine` in the health line and the device picker's error, with the module still mounted.
- **Gone:** the runtime `swiftc` build with its "Building the capture tool — this takes a minute or two" state, the health line's re-check of the old path, and the source's `.gitignore` line. The old top-level `spl-capture` on AB is simply no longer used.
- SPL Meter **0.5.0**.
## Verified
- Both binaries: right architecture, `codesign --verify --strict` passes, entitlements show `com.apple.security.device.audio-input`, runtime flag set.
- `bin/spl-capture-macos-arm64 --list` on this Mac returns the JSON device list.
- `captureTool()` returns the arm64 binary here, the x86_64 one for `darwin/x64`, and the off-message for `win32/x64`.
- On a scratch ProdDash, `GET /api/modules/spl-meter/devices` returns the machine's six input devices through the new tool, and the health line reads the usual "measurement is off — turn it on in settings" rather than a tool error.
Not tested here: live measurement. AB keeps measuring through its compiled copy until this lands; on update the shipped arm64 binary takes over. NA's SPL module, off and without a tool until now, gains one.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Same move as Timers 1.7.0. The capture tool existed only where the macOS
app build had compiled it, with the module trying swiftc on the booth as a
fallback — NA has been logging "spawn spl-capture ENOENT" since its
catalog install. Under the module guide's rule it now ships built:
bin/spl-capture-macos-arm64 and bin/spl-capture-macos-x86_64, signed with
the Developer ID (hardened runtime, audio-input entitlement), from
native/spl-capture.swift via native/build.sh. captureTool() picks the
binary for this platform; where there is none — Windows, until a Windows
implementation exists — measurement reports itself off in the health line
and the device picker while the module stays mounted. The runtime build
and its "building…" state are gone, and the old top-level binary is no
longer gitignored.
Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
michael
merged commit 2307770ce9 into main2026-09-30 14:20:49 -04:00
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Why
Same move as Timers 1.7.0 (PR #37). The capture tool existed only where the macOS app build had compiled it, with the module trying
swiftcon the booth as a fallback — NA has been loggingspawn spl-capture ENOENTsince its catalog install, and since shell 1.10.0 every fresh install is a catalog install. The module guide's rule (PR #35): a native helper ships prebuilt, and nothing is ever built on the machine running ProdDash.What
bin/spl-capture-macos-arm64andbin/spl-capture-macos-x86_64, committed (164 KB and 140 KB), signed with the Waters Church Developer ID — hardened runtime plus the audio-input entitlement. Built fromnative/spl-capture.swiftbynative/build.sh;native/helper.entitlementsbeside it.captureTool(moduleDir)picks the binary by platform and architecture. Where there is none — Windows, until a Windows implementation exists — measurement reports itself off:The module ships no sound level capture tool for Windows x64 (bin/spl-capture-win-x64.exe is missing) — measurement is off on this machinein the health line and the device picker's error, with the module still mounted.swiftcbuild with its "Building the capture tool — this takes a minute or two" state, the health line's re-check of the old path, and the source's.gitignoreline. The old top-levelspl-captureon AB is simply no longer used.Verified
codesign --verify --strictpasses, entitlements showcom.apple.security.device.audio-input, runtime flag set.bin/spl-capture-macos-arm64 --liston this Mac returns the JSON device list.captureTool()returns the arm64 binary here, the x86_64 one fordarwin/x64, and the off-message forwin32/x64.GET /api/modules/spl-meter/devicesreturns the machine's six input devices through the new tool, and the health line reads the usual "measurement is off — turn it on in settings" rather than a tool error.Not tested here: live measurement. AB keeps measuring through its compiled copy until this lands; on update the shipped arm64 binary takes over. NA's SPL module, off and without a tool until now, gains one.
🤖 Generated with Claude Code