fix(app): keep thinking picker clicks active - #702
Conversation
|
Warning Rate limit exceeded
You’ve run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After the wait time has elapsed, a review can be triggered using the We recommend that you space out your commits to avoid hitting the rate limit. 🚦 How do rate limits work?CodeRabbit enforces hourly rate limits for each developer per organization. Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout. Please see our FAQ for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (3)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Suggested priority: P2 (includes user-path files (packages/app/src/components/prompt-input/model-picker.tsx)).
P1/P0 are reserved for maintainer confirmation. Please relabel manually if this is a release blocker, security issue, data-loss risk, or updater/runtime failure.
There was a problem hiding this comment.
Code Review
This pull request introduces a new E2E test for the 'thinking' model variant selection and adds data attributes to the UI components to support these tests. It also refines the model picker's behavior to prevent the main popover from closing when interacting with nested menus. A review comment suggests moving the isPickerContentTarget helper function outside the component to avoid unnecessary re-creations and improve reusability.
Perf delta summaryComparator: pass
|
…ing-variant # Conflicts: # packages/opencode/test/config/e2e-smoke-tagging.test.ts
Prepare PawWork v2026.5.18 for the stable desktop release. - Bump the desktop package version to 2026.5.18. - Scope the diagnostics unreadable-file retention test to POSIX permission semantics so Windows advisory does not fail on chmod behavior that Windows does not enforce the same way. Verification: - Focused desktop diagnostics test passed locally: 11 pass / 0 fail. - Release typecheck passed locally for packages/desktop-electron. - PR #706 CI passed, including ci, desktop-smoke, e2e-artifacts, CodeQL, dependency-review, label-policy, commit-lint, and title lint. Release notes: - Drafted against the merged range since v2026.5.17: #691, #692, #693, #694, #702, and #703. - Cold-read review completed before merge; wording was tightened to avoid overclaiming diagnostics impact and to keep verification short.
Root cause / goal: - PR #702 fixed the visible model-picker interaction bug where nested thinking options could be clicked and applied. - The remaining gap was regression coverage for the session re-entry restore path: an existing session should restore the saved model.variant from the latest user message instead of falling back to the default reasoning effort. Change boundary: - Added a real Playwright re-entry regression in packages/app/e2e/models/model-picker-thinking.spec.ts. - Reused the visible nested thinking-picker click path through a small helper. - Marked the re-entry case @smoke and updated the smoke inventory assertion so PR smoke E2E covers it. - Aligned opencode workflow contract tests with the action SHAs already present on latest dev after dependency bump commits. - No product/provider/persistence/routing behavior changed. Review follow-up: - Addressed the missing Probe.sessionID test type field. - Promoted the re-entry regression into PR smoke coverage. - Verified the CodeRabbit review thread is resolved. Verification: - PLAYWRIGHT_PORT=3132 PLAYWRIGHT_SERVER_PORT=4132 bun run --cwd packages/app test:e2e -- e2e/models/model-picker-thinking.spec.ts --grep "session re-entry restores thinking variant" passed. - PLAYWRIGHT_PORT=3133 PLAYWRIGHT_SERVER_PORT=4133 bun run --cwd packages/app test:e2e -- e2e/models/model-picker-thinking.spec.ts passed. - PLAYWRIGHT_PORT=3136 PLAYWRIGHT_SERVER_PORT=4136 bun run --cwd packages/app test:e2e -- e2e/models/model-picker-thinking.spec.ts --grep @smoke passed, 2 tests. - bun test test/github/codeql-workflow.test.ts test/github/pr-routing-triage.test.ts test/config/e2e-smoke-tagging.test.ts passed, 10 tests. - bun turbo test:ci --filter=opencode passed, 2766 tests. - git diff --check passed. - PR CI passed: CodeQL, e2e-artifacts, smoke-macos-arm64, typecheck, lint, unit-app, unit-desktop, unit-opencode, unit-ui-focused, and policy checks. Residual risk: - Test-only change. Electron manual verification was not rerun because no visible product code changed.
Summary
Fix the prompt model picker so reasoning-effort options inside the nested thinking-level popover can be clicked and applied.
This PR adds stable test selectors for the thinking-level trigger/options and covers the user path with a focused Playwright E2E test.
Why
Closes #701.
The affected session export showed backend requests were still using
openai / gpt-5.5 / variant xhigh, so the session had not actually downgraded its model variant. The failure was in the frontend interaction layer: moving focus into the nested thinking-level popover was treated asfocus outsideby the outer model selector popover. That closed the outer picker before the inner option click could run, somodel.variant.set(...)never applied.Related Issue
Closes #701
Human Review Status
Pending. A human should make the final merge decision after reviewing the final diff and verification evidence.
Review Focus
Please check that the
focus outsideguard is scoped tightly to nested picker content and does not weaken normal outside-click dismissal for the model selector.Risk Notes
Low. The change is limited to prompt model picker dismissal behavior and a focused E2E regression test. No provider, model-routing, persistence, or generated snapshot changes are included.
How To Verify
Screenshots or Recordings
Not attached. This is a transient picker interaction-state fix; the visible path was checked manually in Electron and is covered by the focused E2E test above.
Checklist
bug,enhancement,task, ordocumentation), at least one primary routing label (app,ui,platform,harness, orci), and exactly one priority label (P0toP3), or I requested maintainer labelingdev, and my PR title and commit messages use Conventional Commits in English