Repository navigation
Show chat-only workspaces as active before the first message - #33815
Conversation
…ssage A workspace whose only tab is a native chat showed the grey Inactive dot until a message was sent, because the dot counted only live terminals and browser tabs. Count a chat that is not explicitly slept, the same rule the sleeping-workspace check already uses, in the sidebar cards, the parent picker and the Cmd+J switcher.
|
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: 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:
076e9ace-051e-430f-af68-eecb2583b59c
Files selected for processing: 7-
src/renderer/src/components/cmd-j/palette-live-status.tsxsrc/renderer/src/components/sidebar/use-worktree-activity-status.test.tsxsrc/renderer/src/components/sidebar/use-worktree-activity-status.tssrc/renderer/src/components/sidebar/use-worktree-activity-statuses.test.tssrc/renderer/src/components/sidebar/use-worktree-activity-statuses.tssrc/renderer/src/lib/worktree-status.tssrc/renderer/src/store/slices/structured-chat-slept-at.ts
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 9 remain after this review.
-
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:
d82da559-3410-4246-b700-85d1807b0a22
Files selected for processing: 1-
src/renderer/src/components/terminal-pane/pane-title-update-global-scan-budget.test.tsx
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 8 remain after this review.
-
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:
491ce84c-6eae-4de1-85ee-574bfee79d05
Files selected for processing: 1-
src/renderer/src/components/terminal-pane/pane-title-update-global-scan-budget.test.tsx
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 4 remain after this review.
-
|
Opening a workspace with only an unsent native chat used to show the grey Inactive dot because the display counted terminals and browser tabs only. The dot now shows Active for a chat that has not been explicitly put to sleep, including while its sleep answer is still unknown. No process is started by this display change. The sidebar, parent-workspace picker and Cmd+J use the new fallback. Sidebar/parent agent results keep their priority. Cmd+J's existing omission of settled results and the hide-sleeping filter's existing wait for a host answer are unchanged. Light-path review completed in one adversarial round and one test-only fix/recheck, followed by trivial formatting, ratchet and fixture corrections. The fix adds real-store N/10N operation bounds and live subscription checks for all three consumers. No production follow-up changes or unresolved findings. The fresh comparison labels the quiet Active presentation intended under the requested behavior. Validation: CI run 40292974788 passed on eae4389, including static analysis/typechecks, all five unit shards, relay and package jobs. The 12-test real-store suite passed, including N/10N operation contracts and live updates for all three consumers. Screenshot-only UI validation on Windows covers the branch's three changed surfaces; no agent conversations or lifecycle run was required. All three branch captures passed on eae4389: sidebar, the sidebar context-menu parent picker, and workspace switcher show a green Active dot for an unsent native Codex chat. Capture-time audits record zero live terminals/PTYs and browser activity, no user messages, and no agent status. The switcher was opened through Search after hidden CDP shortcuts did not open it; keyboard triggering was not verified. Copies stopped gracefully, ports were released, and Windows real config hashes stayed unchanged. Main was merged once as 5674312; it did not change the reviewed production files or added contract test. Local dependency installs, builds and tests were not run. For Brennan's review Sidebar before the first message: Sidebar “Set Parent Worktree…” picker: Workspace switcher: The key behavior is the awake-chat predicate and the Active fallback. |



Problem
Opening a new workspace with only a chat tab (no Setup terminal) showed a grey Inactive dot in the sidebar until the first message was sent. Users read that as the workspace being broken or asleep, even though the chat is open and ready. Tracked in STA-12186.
The dot only counted running terminals and browser tabs. A chat tab has no running process until its first message, so it never counted. The sleeping-workspace indicator already treats a chat that has not been explicitly put to sleep as awake, so the dot and that indicator disagreed.
Change
A workspace with a chat tab that has not been explicitly put to sleep now shows the green Active dot, the same as a workspace with a terminal or browser tab. A chat put to sleep still shows as inactive (or the moon icon). Sidebar cards and the parent-workspace picker keep agent states such as Working, Needs permission and Done ahead of Active. Cmd+J keeps its existing Working, Needs permission and background-task priority; it does not show settled results, an existing limitation.
This applies everywhere the workspace dot is drawn: sidebar cards, the parent-workspace picker, and the Cmd+J switcher.
Notes
Review path: light
worktree-status.ts,use-worktree-activity-status.ts,use-worktree-activity-statuses.ts,palette-live-status.tsx,structured-chat-slept-at.ts).Plan
Reuse the sleeping-workspace check's chat rule (chat tab not explicitly slept) as one more "active" input to the shared worktree status resolver, next to live terminals and browser tabs. Agent states keep their priority over Active.
Validation
CI is green on
eae4389e81c: all five unit-test shards, static analysis/typechecks, relay integration and both package jobs passed. The added real-store suite covers N/10N tab and mounted-reader operation bounds plus live chat-status updates in all three consumers.Branch screenshot validation passed on the same head: sidebar, sidebar parent picker, and workspace switcher all show green Active for an unsent native chat, with zero live terminal/browser activity at capture. The switcher was opened through Search; its keyboard trigger was not verified in the hidden run. No agent conversation or lifecycle run is required for this display-only change.