Skip to content

fix(web): new thread picker updates as projects load - #22409

Open
PixPMusic wants to merge 1 commit into
pingdotgg:mainfrom
PixPMusic:fix/multi-host-project-picker-reconciliation
Open

PixPMusic wants to merge 1 commit into
pingdotgg:mainfrom
PixPMusic:fix/multi-host-project-picker-reconciliation

Conversation

@PixPMusic

@PixPMusic PixPMusic commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Problem

Opening ⌘N during startup can show a row for each host checkout, or an extra “No project” row, even after project metadata and host configuration arrive. The composer uses the current projects; the open picker keeps the rows captured when its submenu was pushed. Reopening the picker makes it look fixed.

#22242 restored grouped selection but also removed the submenu’s live-row refresh branch.

Change

Give “New thread in…” its own submenu key at both entry points and render its current project choices while it stays open. Grouping, contextual host selection, and thread creation keep their existing behavior.

Scope and approval

Small follow-up to #22242 for an obvious stale-view bug. This changes the shared web/Electron picker only. Mobile has a separate selector; no server, provider, RPC, or contract changes are needed.

Verification

  • After rebasing onto upstream 41967084e3, vp run check:changed passes: formatting, targeted lint, knip, affected web/scripts typechecks, and 21 tests across CommandPalette.projects.browser.test.tsx and CommandPalette.logic.test.ts. The four picker regression cases were moved out of the focus-test file deleted upstream; the original production fix is unchanged.
  • All four new browser regression cases fail on the baseline and pass with the fix. Both opening paths cover late scratch configuration, repository identities merging host checkouts, and selecting a newly arrived project.
  • Web typecheck, targeted lint, formatting, and git diff --check pass.
  • Real web client with the sanitized demo fixtures from t3/use-sanitized-demo-test-fixtures: open ⌘N, then deliver a project update through the existing command service so a second checkout resolves to the same repository. Baseline retains two T3 Code rows; this branch collapses them without reopening. Captures use two local checkouts on one isolated server; cross-host arrivals are covered by the browser regression fixtures. A packaged desktop cold start was not tested.
Before: metadata arrived, duplicate remains After: metadata arrived, picker regroups
Before After
Before recording After recording

Model: GPT-6.1 Sol | Harness: Codex in T3 Code

@github-actions github-actions Bot added vouch:trusted PR author is trusted by repo permissions or the VOUCHED list. size:XS 0-9 changed lines (additions + deletions). labels Oct 20, 2026
@macroscopeapp

macroscopeapp Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Approvability

Verdict: Approved at 40dcff2

Macroscope's review found this PR approvable — This is a narrowly scoped web command-palette bug fix that keeps the existing “New thread in…” project rows current while metadata arrives. It adds targeted browser regression coverage without changing APIs, schemas, defaults, or deployment behavior.

You can add or adjust custom eligibility rules. Learn more.

macroscopeapp[bot]
macroscopeapp Bot previously approved these changes Oct 20, 2026
@coderabbitai

coderabbitai Bot commented Oct 20, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration
  • Configuration used: Path: .coderabbit.config.ts
  • Review profile: CHILL
  • Plan: Advanced
  • Run ID: 3cb39396-c928-4262-b711-26674118406f
📥 Commits

Reviewing files that changed from the base of the PR and between a0f0b4a and 40dcff2.

📒 Files selected for processing: 2
  • apps/web/src/components/CommandPalette.projects.browser.test.tsx
  • apps/web/src/components/CommandPalette.tsx

Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 6 remain after this review.

📝 Walkthrough

The command palette now uses "new-thread-in" consistently for its new-thread submenu group. Browser tests cover project-picker behavior through shortcut and submenu entry points, including project updates and selection while the picker is open.

Changes: Command palette project picker

Layer / File(s) Summary
Align submenu grouping and verify project-picker behavior
apps/web/src/components/CommandPalette.tsx, apps/web/src/components/CommandPalette.projects.browser.test.tsx
The submenu uses "new-thread-in" when created, opened from an intent, and selected for display. Browser tests cover duplicate scratch-project rows, repository regrouping, and selection of newly added projects.

Priority: ⬇️ Low

Estimated code review effort: 2 (Simple) | ~10 minutes

Change: Bug fix

Suggested reviewers: t3dotgg, saphid

Merge Risk: ⚪ Minimal · up to 40dcf

The picker updates its project choices while open through both entry paths. No issue requiring resolution before merge was identified.

Pre-merge checks: Passed 4
Check name Status Explanation
Description check Passed The description includes complete Problem, Change, Scope and approval, and Verification sections. It explains the stale picker-row issue, the fix, scope, regression coverage, test results, observed UI…
Title check Passed The title clearly and concisely describes the main fix: updating the new-thread picker as projects load.
Linked Issues check Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check Passed Check skipped because no linked issues were found for this pull request.
Full details: Description check

Explanation

The description includes complete Problem, Change, Scope and approval, and Verification sections. It explains the stale picker-row issue, the fix, scope, regression coverage, test results, observed UI behavior, evidence, and the untested packaged desktop cold start.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create a new PR
  • Autofix · Keep fixing CodeRabbit findings and required CI, and resolving merge conflicts

Comment @coderabbitai help to get the list of available commands.

@PixPMusic
PixPMusic force-pushed the fix/multi-host-project-picker-reconciliation branch from a0f0b4a to 40dcff2 Compare October 21, 2026 19:21
@macroscopeapp
macroscopeapp Bot dismissed their stale review October 21, 2026 19:22

Dismissing prior approval to re-evaluate 40dcff2

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

size:XS 0-9 changed lines (additions + deletions). vouch:trusted PR author is trusted by repo permissions or the VOUCHED list.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant