fix(ui): disable session selection outside chat page to prevent confusion#97257
fix(ui): disable session selection outside chat page to prevent confusion#97257forrest0x59 wants to merge 1 commit into
Conversation
…sion The component was made global but behaves inconsistently on other pages. Temporarily disable it until proper two-way binding is implemented.
|
Codex review: needs changes before merge. Reviewed June 27, 2026, 10:07 AM ET / 14:07 UTC. Summary PR surface: Source 0. Total 0 across 1 file. Reproducibility: yes. source-level reproduction is high-confidence: the PR's screenshots show the user-facing confusion, and CI confirms the patch currently disables controls in existing chat-control tests because the fixture lacks Review metrics: none identified. Stored data model Root-cause cluster Members:
Proposal only: this assessment does not dispatch repair, suppress jobs, mutate sibling items, close, or merge anything. Merge readiness Overall follows the weaker of proof and patch quality, so missing proof can cap an otherwise strong patch. Rank-up moves:
Risk before merge
Maintainer options:
Next step before merge
Security Review findings
Review detailsBest possible solution: Keep the non-chat disablement mitigation, but merge it only after chat-control fixtures explicitly run in the chat tab and a focused non-chat disabled-state assertion is added. Do we have a high-confidence way to reproduce the issue? Yes, source-level reproduction is high-confidence: the PR's screenshots show the user-facing confusion, and CI confirms the patch currently disables controls in existing chat-control tests because the fixture lacks Is this the best way to solve the issue? No, not as-is. Disabling the non-chat controls is an acceptable mitigation, but the branch should make chat versus non-chat context explicit in tests before merge. Full review comments:
Overall correctness: patch is incorrect AGENTS.md: found and applied where relevant. Codex review notes: model internal, reasoning high; reviewed against 5ccfc97b319e. Label changesLabel justifications:
Evidence reviewedPR surface: Source 0. Total 0 across 1 file. View PR surface stats
Acceptance criteria:
What I checked:
Likely related people:
What the crustacean ranks mean
Shiny media proof means a screenshot, video, or linked artifact directly shows the changed behavior. Runtime, network, CSP, and security claims still need visible diagnostics. How this review workflow works
|
|
Thanks @forrest0x59. Closing because merged #101017 removed this obsolete global-selector path: sessions now live in the sidebar, navigate directly to Chat, and active-session state is scoped to Chat. This conflicting head also no longer passes the required UI proof against current main. |
Summary
After commit 2b30951 (landed in 2026.5.31-beta.4), from a UI interaction perspective, the chat session selection component was changed from a local control to a global one. While this works fine within the chat page, it causes confusion on other pages – especially the "Sessions" page.
Currently, the session selection component is still visible and interactive on non-chat pages, but its behavior isn't fully consistent with those pages. Some actions on the component affect the Sessions page, while others don't, leading to unexpected UI interactions.
In my test environment, there are two agents: "main" and "opencode". The component currently has the agent set to "main". When I navigate to the Sessions page and select "opencode" in the component, the sessions' store changes from ".*/main/.*" to "(multiple)" — not to ".*/opencode/.*" as I expected. Then, when I click the refresh button on the right side of the Sessions page, the store switches back to ".*/main/.*", but still not to ".*/opencode/.*". This is confusing.
There are two long-term directions we could take:
Keep it local – Only show the session selection component on the chat page. On other pages, either hide it entirely or disable it.
Make it truly global – Fully bind the component to every page so that changing the selection updates each page accordingly (e.g., the Sessions page). This would require two-way binding and careful synchronization.
For now, I propose we go with a quick fix that aligns with option 1: disable the session selection component on all non-chat pages. This prevents users from accidentally interacting with it in places where it doesn't behave correctly. It's a safe, low-risk change that eliminates the immediate confusion.
If the team later decides to adopt option 2 (global component with full two-way binding), I'll submit a follow-up PR to properly integrate it with the Sessions page and other relevant views.
This PR simply disables the component outside the chat context. No behavioral changes inside the chat page itself.
Real Behavior Proof
Before Fix
There are two agents: "main" and "opencode".
Navigate to the Sessions page. The store is ".*/main/.*".
Select "opencode" in the component, the sessions' store changes from ".*/main/.*" to "(multiple)"
After refreshing, the store switches back to ".*/main/.*".
After Fix
Selection is disabled on pages other than the chat page.
Selection is available on the chat page.