Stacked on ci/gitbay; merge that first, then retarget this to main.
Replaces the system_hw_tick stub with collectors::hardware: signald spawns macos-collector as a child (--collector <path>, or found on PATH) and reads its stdout with the same wire::read_frame the socket uses, publishing each frame into the hub. The five hardware signals now reach the history store and every subscriber. Without the binary signald logs that and runs without them.
Self-attestation reports the collector path, or why it is disabled.
tests/hardware_ingest.rs feeds canned frames through the ingest path and checks a subscriber's snapshot, and that a frame breaking the tag rule is rejected at the boundary. Verified live on this Mac: all nine metrics on the socket, hardware rows in history, collector exits when signald does.
Closes #1
retargeted from ci/gitbay to main: !1 merged
2026-09-04 04:50 UTC