Skip to content

Fleet ## Parent #8

Description

@Jhazy33

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

  • Sidebar Machines section: rows with name/dot/busy count; collapsed summary; expandable
  • Offline row: greyed, taps into info sheet with last seen, last error, retry — never inert
  • Zero-machine and all-offline states render explanation + retry/add
  • Machine sheet: rename with validation + round-trip states; CLI list with live lights and busy counts; use/rename/unpair actions
  • Unpair online: token rotated (machine stops accepting the key); unpair offline: explicit warning before local-only removal
  • Unpair active machine: promotes most-recently-seen online machine, else opens sidebar; last machine → pairing screen
  • Single unpair affordance (global Forget rescoped/removed)
  • Add a machine: pairing screen in add-mode; push token registered with the new daemon on success
  • New-chat sheet labels "CLI · machine" when >1 machine paired
  • UI copy uses "CLI", never "agent" (per glossary)
  • Machine sheet and sidebar section have harness suites; reduced-motion path renders statically

Blocked by

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions