SPL Meter 0.5.0: the capture tool ships prebuilt, for Apple silicon and Intel #38

Merged
michael merged 1 commits from claude/spl-prebuilt-helper into main 2026-09-30 14:20:49 -04:00
Owner

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

## 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)
michael added 1 commit 2026-09-30 10:13:04 -04:00
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 main 2026-09-30 14:20:49 -04:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: michael/ProdDash#38