Repository navigation
Resume dialog: show workspace names, not internal ids, while workspaces load - #33038
Conversation
…e workspaces load On restart the resume dialog opens before the full workspace list loads, so every row it could not look up showed its raw repo-qualified id. Fall back to the folder name the id carries, as the status bar and Automations already do.
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the
Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
No actionable comments were generated in the recent review.
|
There was a problem hiding this comment.
Actionable comments posted: 3

Review info
-
Run configuration-
- Source mode: Auto
- Repository: Unavailable
- Branch: Unavailable
- File: No configuration file from this repository applied
- Commit: Unavailable
- Layers: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
c4152ce1-c379-44b1-bef3-82c38be76f90
Files selected for processing: 2-
src/renderer/src/components/NativeChatResumeOnRestartGroups.test.tsxsrc/renderer/src/components/NativeChatResumeOnRestartGroups.tsx
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 3 remain after this review.
-
|
After a restart, the resume dialog could display internal workspace IDs because it appeared before the workspace catalog loaded. Unknown git workspaces now show their folder names immediately. When two unknown workspaces on the same machine share a folder name, their parent paths distinguish both the visible rows and their accessible control names. Known names and branches stay as before. Review caught and fixed the initial ambiguity between different folders named Correctness and final reference/readiness checks are complete at For Brennan's review: One branch-only screenshot/selection run passed on the M4Air at Since that capture, main was merged as
Project headings still wait for the existing workspace load; startup ordering remains outside this PR. |
There was a problem hiding this comment.
Actionable comments posted: 1

Review info
-
Run configuration-
- Source mode: Auto
- Repository: Unavailable
- Branch: Unavailable
- File: No configuration file from this repository applied
- Commit: Unavailable
- Layers: Repository UI
- Review profile: CHILL
- Plan: Advanced
- Run ID:
4af007f2-aab7-43f1-b64d-18395f5622ae
Files selected for processing: 3-
src/renderer/src/components/NativeChatResumeOnRestartGroups.test.tsxsrc/renderer/src/components/NativeChatResumeOnRestartGroups.tsxsrc/renderer/src/components/native-chat-resume-workspace-display.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 4 remain after this review.
-

Problem
After a restart, the "Resuming N chats" dialog listed every workspace by its internal id, e.g.
45d53ca8-5d4d-…::/Users/…/orca/workspaces/orca/blobfish-2, instead of its name, and with no project heading above them. It stayed like that for nearly a minute.Why: the dialog opens and starts resuming as soon as the app comes up, but the full workspace list loads late in startup on purpose (after remote hosts and other startup work). Until it arrives the dialog can't look up any workspace, and its fallback was the raw id.
Change
While a workspace is not known yet or was deleted, the dialog names it by its folder, using the existing ID-to-folder fallback. If unknown workspaces on the same machine share that folder name, their rows also show their parent paths in the existing secondary text slot. Long paths retain the distinguishing final directory. Colliding unknown rows also include that parent path in their accessible control names. Unique unknown names show no path, and known workspaces retain their sidebar name and branch. Folder IDs that contain no path retain their existing fallback.
The original workspace and session IDs still select the action targets. Once the workspace list loads, rows use the configured names and branches as before, and obsolete collision details disappear.
Not in this PR: the project heading still appears only once the workspace list loads. Loading the resumed chats' workspaces earlier would change startup ordering, which remains separate.
Plan
Derive fallback name and optional parent detail together from the existing unknown workspace groups, once per machine's unplaced group. Count those names once and use constant-time row lookups. Reuse the existing ID parser, path helpers and path-elision component. No saved fields, catalog fetch, startup ordering, action gate or known-workspace display changes.
Validation
NativeChatResumeOnRestartGroups.test.tsxcovers a unique missing workspace and one collision case with long parent paths, known and opaque fallback controls, original session selection, catalog hydration, and N/10N bounds on the added processing. Existing selection and path-helper coverage remains relevant. This worktree has no dependencies; CI is the renderer-test, lint and typecheck execution gate.The changed flow is dialog UI/copy. One branch-only screenshot run passed on the M4Air at
11102e38d381ce7046c6d22502a8ad5fee449b7f, using fixture candidates in the real dialog and no agents. The screenshot confirms readable folder names, distinct parent paths for a long shared-prefix collision, and no raw IDs; selection was checked too. This does not change agent execution or restart lifecycle behavior.Final CI passed on
10c44502844943067b04ca26e6bea1ea2b3cb6ef: https://github.com/stablyai/orca/actions/runs/40075625094. It includes static analysis, typechecking, packaging and all 19 tests inNativeChatResumeOnRestartGroups.test.tsx. The collision case also checks distinct checkbox/disclosure names, original selection targets and hydration cleanup. The screenshot remains valid across the later main merge and accessibility-only commit because visible rendering is unchanged.Review path: full
Round 1 escalated the proposed light path because the dialog's history includes a related raw-identity display fix and the initial basename-only fallback lost the distinction between different paths ending in the same folder name. The correction retains that distinction in the existing row surface. The full review loop includes the reference comparison, dedicated performance check, CI and the UI screenshot before readiness.