Repository navigation
Labs: inbox-first layout - #41
Closed
sean-brydon wants to merge 5 commits into
Closed
sean-brydon wants to merge 5 commits into
sean-brydon wants to merge 5 commits into
Conversation
… you on top Settings › Labs › Layout › Inbox swaps the sidebar for a triage list: Needs you, Working, Recent. Allow or deny on the row, j/k to move, Enter to open the worktree beside the list, e for done, z to undo, c for a new task, ⌘J back to the list. The projects tree is a toggle away; narrow windows fold the list to a strip while a worktree is open. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ill under you, and b goes back Answer asks with y and n, clear rows with e, and see more agents at once: Working rows are two lines and Recent rows one. New task and Search share a row, a key strip shows while the list has the keyboard, and ? lists every key. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…, and never cuts a worktree's name Agent glyphs are monochrome in the list, commands wrap at word breaks, the age stays beside Clear, Recent rows name their box when it matters, and clearing a row says it comes back. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… glance y and n move the cursor to the next row. Recent rows show a state dot instead of a ring, keep the worktree's name whole, and give the box its own slot. Clear takes the age's place instead of covering text, the list is never narrower than 316px, and the waiting count is said once. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… only under the cursor Pressing a row no longer focuses it on the way to opening the worktree, so nothing in the list moves between press and release and the click can't land on the list instead. ⌘J and the strip decide at once whether to unfold or lay the list over, rather than after the next paint. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
The latest updates on your projects. Learn more about Vercel for GitHub.
|
Collaborator
Author
|
Stashed: not going ahead with this layout for now. The branch stays for later. |
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
One of several parallel experiments in navigation that isn't a sidebar. This one is inbox first, in the style of Superhuman.
Turn it on in Settings › Labs › Layout › Inbox, or with
?layout=inboxin mock mode. The sidebar stays the default and is unchanged. The pref islayout: "sidebar" | "inbox"inberth.prefs. An integration pass will merge it with the other Labs layout switch.The idea
The sidebar becomes one triage list of every agent on every box.
Sections:
yandnanswer it and the cursor moves to the next row.Keys:
j/k↵ezbc/or⌘K⌘J⌘\?Behaviour:
Also covered:
⌘Jlays it over the worktree.Code
app/src/lib/inbox.ts(+inbox.test.ts): the model with no React. It covers sections, ordering, clear and undo, filters, holding rows in place, and cursor steps.app/src/components/inbox/: the pane, the row, the strip, the Home panel and the state.App.tsx: the layout branch.prefs.ts: thelayoutpref and?layout=.use-shortcuts.ts:⌘Jin the inbox layout.useLiveStepandQUESTION_TOOLSare now exported from the home widgets.Scores
A fresh critic subagent scored each round from 1 to 10, against today's app and against Superhuman, Linear and Arc.
Only one axis reached 8. I stopped after five rounds, and here is why the rest don't get there:
band⌘Jhelp, but a tree gives you place memory that a state-sorted list can't.RailAgents). Its duplicate labels ("order-export" twice) are a fix in shared code.Worth taking whatever layout wins:
y/nwith auto-advance.⌘Jback to the list andbfor the last worktree.Checks
pnpm typecheck:plugins,check:titles,check:csp,check:themes,pnpm test(303 pass) andpnpm buildall pass.npx tsc -p e2epasses.docs-sitebuild passes.go vetpasses.e2e/inbox.spec.ts(5 tests): keyboard triage (j/k/e/z/y/↵/⌘J/b), New task andc, Projects, Review and Settings › Labs back to the sidebar, and the narrow fold and overlay. It passed--repeat-each=4.inboxa11y scene, which passes in dark and light.keyboard.spec.tsandrail.spec.tsstill pass.🤖 Generated with Claude Code