Skip to content

feat: open Repos first and list new changes in a menu - #80

Merged
flexdinesh merged 1 commit into
mainfrom
repos-first-nav
Oct 21, 2026
Merged

flexdinesh merged 1 commit into
mainfrom
repos-first-nav

Conversation

@flexdinesh

Copy link
Copy Markdown
Owner
  • Behavior owner and resulting change:
    • use-sidebar.ts/ActivityBar.tsx: Repos is the first rail view and the initial panel; Diff is second.
    • ProjectsNav.tsx: choosing a stream in Repos opens it with preserveNavigation, so only the review updates; Repos stays selected (mobile drawer stays open). Picker, header menu and "View latest" still switch to Diff.
    • NewChangesButton: the "N new" header action now opens a "New changes" menu (shared DropdownMenu) listing unread heads in activity order. Rows show repo + age, branch + changed-file count, and linked worktree name or "Primary checkout". Choosing one opens that stream and clears its mark. Previously it silently opened the most active head, so you could not tell which diff you were opening.
    • use-modal-drawer.ts: keeps whatever main/header/rail is current inert. Needed because the drawer now stays open while opening a review remounts <main>, which previously escaped inert.
  • Contracts/invariants affected; local/remote implications: frontend only; seen-state ownership unchanged; both modes covered by the new-changes browser test.
  • Validation results; remaining risks:
    • mise run check: build, static, generated, conformance, contracts, JS unit, 88/88 browser, release tests pass. All Go packages pass except cmd/diffx, which hangs in TestCollectorOptionsRejectAmbiguousInputsBeforeStartup/change on origin/main too (no Go changes here); fixed in a separate PR.
    • Browser tests now open Diff explicitly where they need the file tree (matches the new user flow).
    • Risk: users who relied on Diff opening first now need one click; view selection is not persisted.
  • Intentional architecture/design changes and rationale: DESIGN.md and docs/development.md updated for rail order, Repos selection, mobile drawer and the new-changes menu. contextWorktreeName shares the worktree-name rule with the picker label.
  • UI evidence: new-changes menu checked in light, dark and 390px mobile (keyboard open/select, bounds within viewport); Impeccable detector clean; no Pierre geometry changes.

- Repos is the first rail view and initial panel
- Repos stream selection keeps Repos open, including mobile drawer
- header new-changes action lists unread heads with repo, branch, worktree
- keep remounted background inert while modal drawer stays open
@flexdinesh
flexdinesh marked this pull request as ready for review October 21, 2026 05:35
@flexdinesh
flexdinesh merged commit add7930 into main Oct 21, 2026
2 checks passed
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