The app's left sidebar, present on every route: brand, global navigation (New, Overview, Tickets, Projects), the recent-sessions rail, and the utility footer.

## TLDR

- "New" adapts to what exists: no projects prompts to add one, one project starts there, several open a picker; inside a project it starts another session there.
- The rail lists the selected project's sessions — or, on the Overview, every project's pooled newest-first, each row naming its project and jumping into it.
- A row says what its session is really doing: pulsing while the agent works, a still "waiting" when parked on you, "publishing…" while an ended run still pushes or opens its PR, "in cloud" for a web run continuing elsewhere — plus device/cloud glyphs and the agent's logo.
- Start seeds an optimistic "starting…" row that retires when the real run lands, whatever state it lands in, with a deadline so a start that produced nothing does not pretend forever.
- The Overview item carries the Human Queue count.

## Before writing SPEC.md files

Read https://raw.githubusercontent.com/brillout/sdd/refs/heads/main/sdd.md
