Repository navigation
Entry-screen wizard rebuild + shadcn visual polish - #346
Merged
Merged
Conversation
- --radius 0.5rem → 0.75rem (rounder cards/buttons/inputs app-wide) - Ambient violet/teal brand tint in the window background corners - Cards: translucent bg + backdrop-blur + shadow-sm elevation - Badges: pill-shaped (rounded-full) - Buttons: focus ring offset + violet glow on primary - Dialogs/popovers/dropdowns/selects: heavier elevation (shadow-2xl/xl) - Inputs/textareas: stronger focus ring (ring-2)
- Top-level intent tabs: New session | Resume | Scratch | New repo - Single/Paired-loop toggle kept within New session (gated by loopsOn) - Shared workspace picker for single + loop; recents/pins above the card - Migrated to shadcn Button/Input/Textarea/Card/Tabs/Badge + semantic tokens - Update loops-experiment gate test for the cleaner loopsOn && gating Preserves all launch logic (spawn options, remote dir browsing, scaffold, resume filtering, loop config).
…spacing - Resume is now self-contained: its own engine picker, no longer coupled to the New-session picker or the workspace filter (dropped filterDir; search already matches cwd) - Tightened padding throughout (container, header, tabs, cards, section labels) - Spawn options are transparent (no card background/border) — a plain collapsible - Resume list denser (p-2.5, space-y-1.5); smaller header/logo No behavior change to launch logic (spawn, remote browsing, scaffold, loop).
…view) - Step 1 Model: engine + model/effort/harness - Step 2 Workspace: local vs remote, then folder / SSH dir browser - Step 3 Review: summary + optional name + spawn options + launch - Progress bar + Back/Next; recent/pinned workspaces stay as one-click fast path - Paired loop keeps its own single card (goal/topology/roles/workspace) Respects the dependency order (model→engine, host→location, workspace UI→location).
Replace the four-tab entry screen with a single step form. The intent (new session / resume / paired loop / scratch / new repo) is now the first field — a select — and the remaining steps are derived from it, so every path answers one question per step instead of showing a whole tab of controls at once. - Pinned/recent workspace chips SELECT a repo instead of launching a session on click. Picking a repo then customizing the model is now possible; a remote chip also switches the form to that SSH host. - Location, host, engine and loop topology are selects rather than button grids. - Only the last step launches, and it summarizes what is about to run. - Drop `scratchEngine` (scratch now uses the wizard's engine/model) and `choiceFromRecent` (superseded by selectWorkspace + buildChoice). The loops-experiment test pinned the old mode toggle's source text; it now pins the same property on the intent select — the loop option is offered only when the flag is on, and an already-picked loop intent falls back when the flag goes off. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WXyD9HvjP57L5BY9u2iqf8
Three refinements to the entry wizard: - Show every option by default instead of hiding it behind a dropdown. Intent, location, host, engine and loop topology are now chips/cards. Model and reasoning effort stay dropdowns — they are long, single-value lists where a menu genuinely beats a grid — via new ModelDropdown / EffortDropdown, compact siblings of the existing card pickers in the same module so both forms read the same registry. - Resume is workspace-scoped. It gains the workspace step and filters the session list by the selected repo (filterSessionMetas already took a filterDir), with a "show every workspace" escape hatch and an empty state that names the directory rather than implying no sessions exist. - The step rail navigates forward as well as back: any step is clickable once every earlier step is answered. Steps that fully answer themselves in one click — an intent card, a workspace chip, a picked folder — now advance optimistically, so the common path never needs Next. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01WXyD9HvjP57L5BY9u2iqf8
Selecting an option on the entry screen no longer jumps to the next step. Intent cards, workspace chips, and the folder browser now only SELECT; the explicit Next button is the sole way forward. The optimistic-advance helper is removed entirely rather than left unused — no call site remains that wants it. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RYiGxmeqKxR4H1NHGmf6vT
Two separate flakiness reports, two root causes. Links: openInApp registered both an 'error' and an 'exit' handler, and a failed spawn fires BOTH — exiting with a null code, which is != 0. One failure therefore ran the fallback twice and opened the URL twice. A settled latch now makes the outcome fire once. The handoff also resolved to a single app: a configured browser missing on THIS machine bailed straight to the OS default, so Chrome and Safari were never tried. resolvedBrowserApps returns the configured app followed by every installed browser, and openInApp walks it before falling back. Copy: xterm defaults rightClickSelectsWord ON for macOS, and mousedown beats contextmenu — right-clicking outside a selection replaced it with the word under the cursor, so the menu's Copy took the wrong text. Off. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RYiGxmeqKxR4H1NHGmf6vT
Step 1 mixed two questions. "New session / Resume / Scratch / New repo" is really WHERE the work happens (existing repo, a fresh scaffold, a scratch dir) crossed with WHAT to do there (new session, resume, loop), so the wizard made you commit to an action before you knew the repo — and it offered Resume for a scratch dir that can never have one. Split the axes. `target` is asked first and decides which actions even exist; `action` follows, and only an existing repo shows it. The rest of the screen still reads one derived `intent`, so steps, summary, and the launch buttons are unchanged. The scaffold form folds into the workspace step it belongs to, which retires the separate Project step. Covered by tests/ux/entry-wizard.spec.ts against the real app, including a guard that selecting a target does not advance the step by itself. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RYiGxmeqKxR4H1NHGmf6vT
The session rows carried card-weight borders and full-strength text, so a long list shouted over the question the step actually opens on. They now sit on a darker ground with dimmed text and come back to full contrast on hover, where the choice is being made. The engine picker moves from filter-sized chips to the same pick-one cards the model step uses, so the first question on the step reads as a question rather than as a filter above a list. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01RYiGxmeqKxR4H1NHGmf6vT
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.
What
Eleven commits in two arcs, on top of the merged shadcn/ui migration (#344):
Visual polish (2 commits)
New-workspace / entry-screen UX (9 commits)
rightClickSelectsWord: false).Testing
bunx tsc --noEmitclean.bun run test: 3405 pass / 0 fail (one pre-existing local-dirt failure fixed by removing an untracked stray.TerMinal/backlogcounter — not part of this branch).tests/ux/entry-wizard.spec.tsand friends).🤖 Generated with Claude Code
https://claude.ai/code/session_01J6bPUG7QhYiLqwXHV4xRnM