Parent
#1 (fleet spec)
What to build
The hamburger sidebar becomes a fleet browser. A Machines section at the top lists every machine (name, status dot, busy count), collapsed to an active-machine summary and expandable; offline rows are greyed but tap into an info sheet (last seen, last error, retry) — never inert; an all-offline/zero-machine state explains itself with retry/add affordances. A new machine sheet shows editable name (hostname pre-filled, validated, round-trip pending/failed states), status line, this machine's CLI list (icon, name, light, busy count / unavailable reason), and actions: use this machine, rename, unpair. Unpair rotates the token when reachable and warns explicitly when not; unpairing the active machine promotes the most-recently-seen online machine; the last one lands on the pairing screen; the old global "Forget" footer is rescoped away. "Add a machine" reuses the pairing screen in add-mode and registers the push token with the new daemon on success. New-chat labels read "CLI · machine" when >1 machine is paired. Demoable: the full fleet UX works on a harness/simulator against two daemons.
Acceptance criteria
Blocked by
Parent
#1 (fleet spec)
What to build
The hamburger sidebar becomes a fleet browser. A Machines section at the top lists every machine (name, status dot, busy count), collapsed to an active-machine summary and expandable; offline rows are greyed but tap into an info sheet (last seen, last error, retry) — never inert; an all-offline/zero-machine state explains itself with retry/add affordances. A new machine sheet shows editable name (hostname pre-filled, validated, round-trip pending/failed states), status line, this machine's CLI list (icon, name, light, busy count / unavailable reason), and actions: use this machine, rename, unpair. Unpair rotates the token when reachable and warns explicitly when not; unpairing the active machine promotes the most-recently-seen online machine; the last one lands on the pairing screen; the old global "Forget" footer is rescoped away. "Add a machine" reuses the pairing screen in add-mode and registers the push token with the new daemon on success. New-chat labels read "CLI · machine" when >1 machine is paired. Demoable: the full fleet UX works on a harness/simulator against two daemons.
Acceptance criteria
Blocked by