The beacon (radio waves) is the default icon; the list glyph is the alternate, switchable in settings. Idle shows the plain template glyph. When sessions wait, one dot appears top-right at the highest urgency: red failed, then amber needs-you, then blue output updated. The dot counts only unacked, unhidden rows, so a dealt-with board goes quiet. The icon carries a dot only, no text count.
| Dot | State |
|---|---|
| none | idle, or everything dealt with |
| ● blue | output updated (look) |
| ● amber | needs your input (act) |
| ● red | a session failed (fix) |
One row per session in board order: status mark, agent glyph, name, age.
signalbox CLI not found - brew install dwmkerr/tools/signalbox (or set SIGNALBOX_BIN)).
Jump, hide and remove need the CLI.The mock above shows the bar and the open dropdown together.
A small window (~360×460, titled "Connect Phone") that pairs the
iPhone app with the hub, WhatsApp-Web style: show a QR, wait, then confirm.
On open it POSTs to the loopback hub's /pair/new to mint a one-time code, then:
signalbox://pair?url=<percent-encoded http://LAN-IP:PORT>&code=<code>
(the LAN IP comes from the response bind when concrete, otherwise this Mac's primary
Wi-Fi IPv4), renders it as a QR (CoreImage, upscaled nearest-neighbor so it stays crisp), and shows
"Scan with your iPhone camera" with the plain LAN URL beneath. It then polls
/pair/status every 2s: on redeemed it swaps to a green check and
"Phone paired" and auto-closes after ~2s; when the code expires (180s) it offers a "New code" button.hub.bind = "0.0.0.0" to ~/.config/signalbox/settings.json
(deep-merged, other keys preserved), restarts the hub so it re-reads the config and binds every
interface with an auto-generated token, waits for it to answer, then re-mints and shows the QR. A
note warns that anyone on the network with the code could pair. Network access turns on only from
this button or the Settings Hub checkbox.The QR carries only the one-time code and the LAN URL, and omits the hub token. The phone learns the token by redeeming the code against the hub over the LAN, so a photo of a used or expired QR grants no access.