Repository navigation
Conversation
|
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. Walkthrough
Merge Risk:
|
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:
20bc386a-89af-4eef-9c63-4791f3563195
Files ignored due to path filters: 1-
src/shared/rpc-contract/rpc-params-catalog.generated.tsis excluded by!**/*.generated.*
Files selected for processing: 114-
mobile/src/session/MobileNativeChatSessionOptionPickers.test.tsmobile/src/session/MobileNativeChatSessionOptionPickers.tsxmobile/src/session/MobileNativeChatSessionOptionRows.tsxmobile/src/session/mobile-native-chat-controller-contract.tsmobile/src/session/mobile-native-chat-permission-option-style.tsmobile/src/session/mobile-native-chat-session-option-labels.tsmobile/src/session/mobile-structured-agent-session-contract.tsmobile/src/session/mobile-structured-agent-session-host-support.tsmobile/src/session/use-mobile-native-chat-controller.tsmobile/src/session/use-mobile-native-chat-session-option-controller.tsmobile/src/session/use-mobile-structured-agent-options.test.tsmobile/src/session/use-mobile-structured-agent-options.tsmobile/src/session/use-mobile-structured-agent-session.tsmobile/src/session/use-mobile-structured-model-default.tsmobile/src/session/use-mobile-structured-option-surface.tsmobile/src/session/use-mobile-structured-session-option-stamp.tssrc/main/native-chat/agent-model-catalog/agent-model-catalog-entry.tssrc/main/native-chat/agent-model-catalog/agent-model-catalog-independent-discovery.test.tssrc/main/native-chat/agent-model-catalog/agent-model-catalog-live-listing.tssrc/main/native-chat/agent-model-catalog/agent-model-catalog-service-contract.tssrc/main/native-chat/agent-model-catalog/agent-model-catalog-service.test.tssrc/main/native-chat/agent-model-catalog/agent-model-catalog-service.tssrc/main/native-chat/agent-model-catalog/agent-model-catalog-store.tssrc/main/native-chat/agent-session-journal/command-receipt-schema.tssrc/main/native-chat/agent-session-journal/journal-queued-messages.tssrc/main/native-chat/agent-session-journal/queued-message-move.tssrc/main/native-chat/agent-session-wire/structured-agent-session-execution-options.tssrc/main/native-chat/agent-session-wire/structured-agent-session-goal-steering.test.tssrc/main/native-chat/agent-session-wire/structured-agent-session-host-mutations.tssrc/main/native-chat/agent-session-wire/structured-agent-session-host.tssrc/main/native-chat/agent-session-wire/structured-agent-session-launch-permission.test.tssrc/main/native-chat/agent-session-wire/structured-agent-session-launch-permission.tssrc/main/native-chat/agent-session-wire/structured-agent-session-message-options.tssrc/main/native-chat/agent-session-wire/structured-agent-session-model-default.test.tssrc/main/native-chat/agent-session-wire/structured-agent-session-model-default.tssrc/main/native-chat/agent-session-wire/structured-agent-session-mutation-plans.tssrc/main/native-chat/agent-session-wire/structured-agent-session-mutation-turn-context.tssrc/main/native-chat/agent-session-wire/structured-agent-session-options-read.tssrc/main/native-chat/agent-session-wire/structured-agent-session-queued-move.test.tssrc/main/native-chat/agent-session-wire/structured-agent-session-queued-move.tssrc/main/native-chat/agent-session-wire/structured-agent-session-queued-wiring.tssrc/main/native-chat/agent-session-wire/structured-agent-session-startup-attempt.tssrc/main/native-chat/agent-session-wire/structured-agent-session-status-summary-equality.tssrc/main/native-chat/agent-session-wire/structured-agent-session-status-summary.tssrc/main/native-chat/agent-session-wire/structured-agent-session-steer-draft.test.tssrc/main/native-chat/agent-session-wire/structured-agent-session-turns.tssrc/main/runtime/agent-session-record-options.tssrc/main/runtime/rpc/methods/structured-agent-session-queued-edit.test.tssrc/main/runtime/rpc/methods/structured-agent-session-queued-methods.tssrc/main/runtime/rpc/methods/structured-agent-session-schemas.tssrc/main/runtime/structured-agent-session-codex-turn-end-settlement.test.tssrc/renderer/src/components/native-chat/NativeChatAgentMessageRow.test.tsxsrc/renderer/src/components/native-chat/NativeChatComposer.tsxsrc/renderer/src/components/native-chat/NativeChatComposerActions.test.tsxsrc/renderer/src/components/native-chat/NativeChatComposerActions.tsxsrc/renderer/src/components/native-chat/NativeChatModelCombobox.tsxsrc/renderer/src/components/native-chat/NativeChatQueuedMessageCard.tsxsrc/renderer/src/components/native-chat/NativeChatQueuedMessageList.inline-edit.test.tsxsrc/renderer/src/components/native-chat/NativeChatQueuedMessageList.test.tsxsrc/renderer/src/components/native-chat/NativeChatQueuedMessageList.tsxsrc/renderer/src/components/native-chat/NativeChatQueuedMessageMenu.tsxsrc/renderer/src/components/native-chat/NativeChatSessionOptionPickers.test.tsxsrc/renderer/src/components/native-chat/NativeChatSessionOptionPickers.tsxsrc/renderer/src/components/native-chat/native-chat-composer-types.tssrc/renderer/src/components/native-chat/native-chat-session-option-labels.tssrc/renderer/src/components/native-chat/native-chat-structured-composer-dispatch.tssrc/renderer/src/components/native-chat/structured-agent-session-option-test-data.tssrc/renderer/src/components/native-chat/structured-agent-session-pending-sends.tssrc/renderer/src/components/native-chat/structured-agent-session-queue-request.tssrc/renderer/src/components/native-chat/structured-agent-session-send-attempt.tssrc/renderer/src/components/native-chat/structured-agent-session-send-slot.tssrc/renderer/src/components/native-chat/structured-agent-session-status-hooks.tssrc/renderer/src/components/native-chat/use-native-chat-composer-keydown.steer.test.tsxsrc/renderer/src/components/native-chat/use-native-chat-composer-keydown.tssrc/renderer/src/components/native-chat/use-native-chat-composer-submit.test.tsxsrc/renderer/src/components/native-chat/use-native-chat-composer-submit.tssrc/renderer/src/components/native-chat/use-native-chat-structured-composer-send.test.tsxsrc/renderer/src/components/native-chat/use-native-chat-structured-composer-send.tssrc/renderer/src/components/native-chat/use-native-chat-structured-composer-transport.tssrc/renderer/src/components/native-chat/use-structured-agent-session-model-default.tssrc/renderer/src/components/native-chat/use-structured-agent-session-option-write.tssrc/renderer/src/components/native-chat/use-structured-agent-session-options.test.tsxsrc/renderer/src/components/native-chat/use-structured-agent-session-options.tssrc/renderer/src/components/native-chat/use-structured-agent-session-queue-working.test.tsxsrc/renderer/src/components/native-chat/use-structured-agent-session-queued-messages.tssrc/renderer/src/components/native-chat/use-structured-agent-session-send-options.tssrc/renderer/src/components/native-chat/use-structured-agent-session-sends.test.tsxsrc/renderer/src/components/native-chat/use-structured-agent-session-sends.tssrc/renderer/src/components/native-chat/use-structured-agent-session.test.tsxsrc/renderer/src/components/native-chat/use-structured-agent-session.tssrc/renderer/src/components/settings/ChatBehaviorSetting.test.tsxsrc/renderer/src/components/settings/ChatBehaviorSetting.tsxsrc/renderer/src/components/settings/ChatSettingsSection.test.tsxsrc/renderer/src/components/settings/chat-behavior-search.tssrc/renderer/src/hooks/settings-navigation-interface-sections.tssrc/renderer/src/i18n/en-runtime-required.jsonsrc/renderer/src/i18n/locales/en.jsonsrc/renderer/src/runtime/structured-agent-session-host-capability.tssrc/shared/agent-session-default-model.tssrc/shared/agent-session-options-result.tssrc/shared/agent-session-queued-message-wire.tssrc/shared/agent-session-record.tssrc/shared/agent-session-runtime-capabilities.tssrc/shared/agent-session-wire.tssrc/shared/native-chat-session-option-defaults.tssrc/shared/native-chat-session-options.tssrc/shared/rpc-contract/client-settings-params.tssrc/shared/rpc-contract/structured-agent-session-location-params.tssrc/shared/rpc-contract/structured-agent-session-params.tssrc/shared/rpc-contract/structured-agent-session-queued-edit-params.tssrc/shared/structured-agent-session-option-view.test.tssrc/shared/structured-agent-session-option-view.tssrc/shared/structured-agent-session-options.tssrc/shared/structured-agent-session-send-mutation.ts
Files with no reviewable changes: 1-
- src/renderer/src/components/native-chat/NativeChatAgentMessageRow.test.tsx
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 7 remain after this review.
-
There was a problem hiding this comment.
Caution
Some comments are outside the diff and can’t be posted inline due to GitHub limitations.

Minor · Block sends while the model write is pending. · use-mobile-structured-agent-options.ts:253-255
mobile/src/session/use-mobile-structured-agent-options.ts:253-255
🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick winBlock sends while the model write is pending.
When
pendingOptionRef.current === 'model',sendSelection()returnsundefined. The send path still callssendMobileStructuredAgentSessionMessage, and its conditional spread omitsoptions. The message can therefore reach the host without the model the user just selected. Wait for the model write to finish or reject the send while it is pending.

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:
de5e92c8-bf49-4d98-b85a-b3318b4e179a
Files selected for processing: 24-
mobile/src/session/MobileNativeChatModelPill.tsxmobile/src/session/MobileNativeChatSessionOptionPickers.test.tsmobile/src/session/MobileNativeChatSessionOptionRows.tsxmobile/src/session/use-mobile-structured-agent-options.test.tsmobile/src/session/use-mobile-structured-agent-options.tsmobile/src/session/use-mobile-structured-option-state.tssrc/main/native-chat/agent-model-catalog/agent-model-catalog-service-contract.tssrc/main/native-chat/agent-model-catalog/agent-model-catalog-service.test.tssrc/main/native-chat/agent-model-catalog/agent-model-catalog-service.tssrc/main/native-chat/agent-session-wire/structured-agent-session-model-default.test.tssrc/main/native-chat/agent-session-wire/structured-agent-session-model-default.tssrc/main/native-chat/agent-session-wire/structured-agent-session-options-read.test.tssrc/main/native-chat/agent-session-wire/structured-agent-session-options-read.tssrc/renderer/src/components/native-chat/NativeChatModelCombobox.tsxsrc/renderer/src/components/native-chat/NativeChatSessionOptionChoiceBody.tsxsrc/renderer/src/components/native-chat/NativeChatSessionOptionPickers.test.tsxsrc/renderer/src/components/native-chat/use-structured-agent-session-option-state.tssrc/renderer/src/components/native-chat/use-structured-agent-session-options.test.tsxsrc/renderer/src/components/native-chat/use-structured-agent-session-options.tssrc/renderer/src/i18n/locales/en.jsonsrc/shared/agent-session-options-result.tssrc/shared/native-chat-session-options.tssrc/shared/structured-agent-session-default-model-choice.tssrc/shared/structured-agent-session-options.ts
Files skipped from review as they are similar to previous changes: 2-
- src/main/native-chat/agent-model-catalog/agent-model-catalog-service-contract.ts
- src/renderer/src/i18n/locales/en.json
Included review availability: This review used your included allowance. Your plan provides up to 10 included reviews per hour; 0 remain after this review.
-
|
Addressed the outside-diff finding in review 5641749074 with commit The mobile send seam now reads the existing pending-model ref independently of Validation on Node
Pushed to |
|
Addressed the Out of Scope warning in ordinary forward cleanup 8827c8c20bc058570b123ee65432629ed6d4058b. The final effective contribution against pinned main The retained change is Default/model-override reset, verified execution-host default preview, optional compatibility metadata/guards and their regression coverage. Existing baseline queue coverage ensures an accepted reset leaves already running/queued choices intact. Existing mechanical splits preserve baseline behavior under unchanged size limits. Independent review also reproduced a P2 in the retained Default feature: an accepted effort pick could recreate the saved concrete model override. 6a2f2fc36d18919a5c9f95e899c86e94749fdaf2, followed by import correction d743c214145ebfe5beb263a31098b0f3fcbe000e, passes actual requested-option intent through the existing projection and sends At exact published |
ac5bdc5 to
34bb031
Compare
34bb031 to
21a3dae
Compare
# Conflicts: # mobile/src/session/mobile-native-chat-controller-contract.ts # mobile/src/session/mobile-structured-agent-session-host-support.ts # mobile/src/session/native-chat/input/native-chat-session-option-copy.ts # src/renderer/src/components/native-chat/NativeChatSessionOptionPickers.test.tsx # src/renderer/src/components/native-chat/use-structured-agent-session-options.ts # src/renderer/src/components/native-chat/use-structured-agent-session-send-options.ts # src/renderer/src/components/native-chat/use-structured-agent-session-sends.ts # src/renderer/src/i18n/locales/en.json # src/renderer/src/i18n/locales/ru.json
# Conflicts: # mobile/src/i18n/locales/en.json # mobile/src/i18n/locales/ru.json # mobile/src/session/mobile-native-chat-controller-contract.ts # mobile/src/session/mobile-structured-agent-session-host-support.ts # mobile/src/session/native-chat/input/native-chat-session-option-copy.ts # src/renderer/src/components/native-chat/NativeChatSessionOptionPickers.test.tsx # src/renderer/src/components/native-chat/use-structured-agent-session-options.ts # src/renderer/src/components/native-chat/use-structured-agent-session-send-options.ts # src/renderer/src/components/native-chat/use-structured-agent-session-sends.ts # src/renderer/src/i18n/locales/en.json # src/renderer/src/i18n/locales/ru.json
# Conflicts: # mobile/src/i18n/locales/en.json # mobile/src/i18n/locales/ru.json # mobile/src/session/mobile-native-chat-controller-contract.ts # mobile/src/session/mobile-structured-agent-session-host-support.ts # mobile/src/session/native-chat/input/native-chat-session-option-copy.ts # src/renderer/src/components/native-chat/NativeChatSessionOptionPickers.test.tsx # src/renderer/src/components/native-chat/use-structured-agent-session-options.ts # src/renderer/src/components/native-chat/use-structured-agent-session-send-options.ts # src/renderer/src/components/native-chat/use-structured-agent-session-sends.ts # src/renderer/src/i18n/locales/en.json # src/renderer/src/i18n/locales/ru.json
# Conflicts: # src/main/native-chat/agent-model-catalog/agent-model-catalog-lookup.ts
ELI5
Choose Default to remove a chat’s model override and keep the provider’s verified default visible.
What Changed
Adds capability-gated model reset and verified execution-host default metadata across desktop and mobile. Reset ownership, pending sends and newer option writes remain fenced; effort/Fast changes keep Default selected. This refresh preserves upstream live option snapshots and capability tree shaking. The existing setOptionPlan is mechanically split to retain the 300-line limit.
Why
Selecting a concrete chat model permanently replaced the global default without a reset action. The reset reuses the existing options pipeline and saved launch settings instead of adding another preference system.
Linked Issue
Fixes #13794
Visual Proof
No current-head before/after capture was produced for this refresh. Automated UI and send-lifetime tests pass; rendered, authenticated-provider and physical-device acceptance remain pending.
Testing
Current head:
21e632727ebfb3166fbb125abbb4e12de85ecc5f. Ordinary forward merge of upstream main8a4dd3a7bb9bd7f96b68dec621433431d77dc8c1. Updated affected imports to their current owners.All five desktop/runtime TypeScript projects pass with the supported tsrs compiler. The complete affected source test files pass 220 tests. Mobile application typecheck passes. The affected mobile selection passes 74 tests.
Normal commit hooks pass. Final changed-path gate: all non-unit checks passed; broad related-unit selection exceeded the one-minute limit and remains incomplete locally. No new installed-app/device, live-provider, SSH, Windows or Linux acceptance is claimed for this maintenance refresh.
Risk
Level: Medium
Saved launch settings and async model writes are the main risks: stale responses could restore an override or send with the wrong choice. Generation, record and host capability fences remain in place. A plain revert removes the reset UI; it cannot restore overrides already cleared by the user.
AI Disclosure
Implemented and checked with Codex assistance. The contributor owns the change and validation.
Review
The reset-generation marker and mobile pending-model send findings remain fixed. Host regressions also cover saved-only metadata reads, no extra catalog probes, Default persistence through effort picks, and damaged-runtime option replay.
Agent skill upstream boundary
Notes
Optional capability gating preserves independently updated desktop/mobile clients and execution hosts. The current ordinary merge retains the original contribution and upstream ancestry; validation above describes the current head.
Checklist