Skip to content

Labs: icon rail and breadcrumb - #39

Closed
sean-brydon wants to merge 4 commits into
mainfrom
labs-rail
Closed

sean-brydon wants to merge 4 commits into
mainfrom
labs-rail

Conversation

@sean-brydon

Copy link
Copy Markdown
Collaborator

Explores a different way to get around Shipyard. It's an opt-in Labs choice, and the sidebar stays the default and is untouched.

Settings › Labs › Layout › Icon rail replaces the sidebar with a 60px rail of projects and a title bar breadcrumb.

What it is

  • The rail. Home and Review sit at the top. Below them is one round mark per project, showing its initials with the name underneath.
    • A solid amber count means agents there need you.
    • A blue dot is an agent working, a green dot an agent done in the last few hours.
    • The sidebar's sections are kept as captions. A dashed + offers a new task, project or box.
    • Worktrees, Automations, More and Settings sit at the foot.
  • Click a project to go where it needs you, or else to the worktree you last visited, or else to where an agent works. ⌃1–9 do the same from anywhere.
  • Point at a project, or press Enter on it, to peek at its worktrees.
    • They're grouped Needs you, Working and Done. Each row says what its agent is doing and, if it's waiting, what it asks.
    • Deny and Allow once work right there.
    • Quiet worktrees fold into one row.
    • The footer has New task in the project, All worktrees and Project settings.
  • Point at Home to see an "Everywhere" peek: every agent at work in every project, by what it needs.
  • The title bar spans the window and carries the breadcrumb Project / Worktree, with / Agent added when a worktree has more than one agent. Each part is a switcher.
    • The worktree menu is the same list as the peek.
    • The agent menu has the worktree's agents, then New agent here and New terminal.
    • On the right: a "2 need you · shop / main" button that goes to each waiting agent in turn, Search ⌘K, notifications and New task.
  • The box name shows only when a project spans several boxes, or its box is away. Away boxes' projects show dashed, and the status bar still counts boxes online.

Code is in app/src/components/rail-layout/. The other changes are small:

  • App.tsx has the layout branch.
  • TabStrip gets a place prop so the place isn't named twice.
  • MenuPopup passes collisionPadding through.
  • prefs.layout and the Labs row are new.

Scores

Fresh critic subagents scored each round, 1–10. Earlier rounds' problems were fixed between rounds.

Round 1 Round 2 Round 3 Round 4 Final
Speed to what needs you 7 7 8 8 8
Switching 6 7 7 6 6
Overview of many agents 4 5 5 5 5
Focus and calm 7 8 7 8 8
Learnability 6 5 6 5 6
Visual quality vs today 6 7 6 7 6

Three axes did not reach 8. What holds them back is the shape of the idea, more than its polish:

  • Overview. A project rail answers "which project" but not "which worktree, in what state" without a hover, where today's tree shows it at rest. The Everywhere peek and the dots help, but anything that shows worktrees at rest becomes a second column, and that is a sidebar.
  • Switching. Projects are one click or ⌃n. Moving to a sibling worktree takes a hover (or a crumb) and then a click, where the tree takes one click.
  • Visual quality. The chrome is three bars (title, tabs, status). With a handful of projects the rail has empty space under the +.

The critics' best-liked parts were the cycling "need you" button, answering permissions from the peek, the room the terminal gets back (about 180px), and the quiet chrome.

Tests

  • e2e/rail-layout.spec.ts, in mock mode, covers:
    • the rail peek, then switching worktree from it
    • a click on a project mark, and ⌃n
    • the breadcrumb switching project, worktree and agent
    • the Home peek with Allow once
    • "need you" cycling between agents
    • New task from the title bar, and from a peek through the composer to the new task
    • reaching Settings, and going back to the sidebar from Labs
  • Passing: rail-layout.spec.ts (20 of 20 with --repeat-each 4, plus 3 runs that passed and 1 that failed once while a build ran alongside), and rail.spec.ts and sidebar-fleet.spec.ts.
  • Passing: pnpm typecheck:plugins, check:titles, check:csp, check:themes, test, build, tsc -p e2e, cargo check and the docs build.
  • go vet passed. go test -race ./... passed every package except internal/box, which timed out at 10 minutes on a heavily loaded machine (load average 20–46) along with a timing test. This change touches no Go; CI will judge.

Screenshots at 1440×900 and 1100×750, dark and light, are in the layouts review.

🤖 Generated with Claude Code

sean-brydon and others added 4 commits October 9, 2026 21:00
…switches worktrees and agents

Settings › Labs › Layout › Icon rail swaps the sidebar for a 60px rail of
project marks (needs-you counts, a dot per agent at work, a peek of each
project's worktrees by state) and a title bar breadcrumb whose parts are
switchers. The sidebar stays the default.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…stays short

A click on a project goes where it needs you, ⌃1–9 jump to projects, quiet
worktrees fold into one row, the "need you" button names the next agent,
and the agent crumb only shows when a worktree has several.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…one is answered in place

Allow once and Deny sit on needs-you rows in the peeks and the worktree
menu; the rail's dots count working and done agents, the badge the rest;
the project menu keeps sections and its ⌃n keys.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…a moment before opening

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@vercel

vercel Bot commented Oct 9, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
berth Ready Ready Preview Oct 9, 2026 8:25pm UTC
berth-docs Ready Ready Preview Oct 9, 2026 8:25pm UTC

Request Review

@sean-brydon

Copy link
Copy Markdown
Collaborator Author

Stashed: not going ahead with this layout for now. The branch stays for later.

@sean-brydon sean-brydon closed this Oct 9, 2026

This branch was successfully deployed

2 active deployments
Preview – berth-docs — abaf5b69 Deployed Oct 9, 2026 by vercel[bot]
Preview – berth — abaf5b69 Deployed Oct 9, 2026 by vercel[bot]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant