Specification: signalbox menu bar

The status item: an icon with a status dot, and a dropdown listing every session.
Note: the mockups below are the living specification for the signalbox menu bar item (hover a dropdown row to see selection).
Tue 7 Jul  21:42

Icon

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.

DotState
noneidle, or everything dealt with
blueoutput updated (look)
amberneeds your input (act)
reda session failed (fix)

Dropdown

One row per session in board order: status mark, agent glyph, name, age. Clicking any session row jumps to that session. The first 10 sessions appear inline; any beyond the first 10 move into a Show More (N) submenu in the same order, placed before the separator - N is the number of overflow sessions, not the total. With 10 or fewer visible sessions there is no Show More row at all.

Tags appear as dim lowercase text after the name and before the age, the same quiet signal as the jumplist pill in the form a menu can carry.

The mock above shows the bar and the open dropdown together.

Connect Phone

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 reads the loopback hub's /healthz. A state-owning hub then receives a POST /pair/new to mint a one-time code:

The QR carries only the one-time code and the hub URL - the LAN address, or the upstream origin when this Mac forwards - and omits the hub token. The phone learns the token by redeeming the code against that hub, so a photo of a used or expired QR grants no access.

Notifications