| … | … | @@ -290,7 +304,10 @@ export function createNewThreadHandler(router: AnyRouter) { | |
| 291 | 305 | const storedDraftHasExplicitModelPick = hasExplicitComposerModelSelection(storedDraft); | |
| 292 | 306 | if (!storedDraftHasExplicitModelPick) { | |
| 293 | - | applyStickyState(emptyStoredDraftThread.draftId); | |
| 307 | + | applyStickyState( | |
🟠 High hooks/useHandleNewThread.ts:307
When this branch reuses an empty saved draft whose model came from sticky state, passing visibility preferences removes its hidden model from the draft; the filtered carry selection above cannot restore it, so New Thread changes the saved draft’s model/options. Restrict visibility filtering to new-thread hints and preserve the reused draft’s existing selection.
🤖 Copy this AI Prompt to have your agent fix this:
| 1 | In file @apps/web/src/hooks/useHandleNewThread.ts around line 307: |
| 2 | |
| 3 | When this branch reuses an empty saved draft whose model came from sticky state, passing visibility preferences removes its hidden model from the draft; the filtered carry selection above cannot restore it, so New Thread changes the saved draft’s model/options. Restrict visibility filtering to new-thread hints and preserve the reused draft’s existing selection. |
Intentional, not changing. This path only runs when the reused draft is empty and has no explicit model pick, so New Thread is presenting it as a fresh thread. It should resolve the same way a newly created draft would, and new automatic choices skip hidden models. Keeping the hidden sticky model here would make New Thread pick different models depending on whether an empty draft happened to exist. Explicit picks (hasExplicitComposerModelSelection) are untouched, and the sticky selection itself is still stored.
Sorry, I'm unable to act on this request because you do not have permissions within this repository.
| … | … | @@ -458,6 +471,19 @@ export function buildModelOptions( | |
| 479 | + | if (!selection) return null; | |
| 480 | + | return ( | |
| 481 | + | buildModelOptions(config, selection, selection.instanceId, projectId, true).find( | |
| 482 | + | (option) => option.selection.model === selection.model, | |
🟡 Medium lib/modelOptions.ts:482
getSelectedModelOption can return another provider instance's option when that instance exposes the same model slug, so selected-model displays and capability controls use the wrong provider metadata and selection. The final lookup matches only model; match both instanceId and model.
🤖 Copy this AI Prompt to have your agent fix this:
| 1 | In file @apps/mobile/src/lib/modelOptions.ts around line 482: |
| 2 | |
| 3 | `getSelectedModelOption` can return another provider instance's option when that instance exposes the same model slug, so selected-model displays and capability controls use the wrong provider metadata and selection. The final lookup matches only `model`; match both `instanceId` and `model`. |
Fixed in d90f0dea8a: getSelectedModelOption now matches both instanceId and model, with a continuation-group row in the mobile tests.
Sorry, I'm unable to act on this request because you do not have permissions within this repository.
da8b327Open thread| … | … | @@ -38,7 +38,9 @@ export function useScopedModelDisabledReason( | |
| 40 | 40 | entry.driverKind !== sourceEntry?.driverKind || | |
| 41 | - | !options?.some((option) => option.slug === model && !option.isUnavailable) | |
| 41 | + | !options?.some( | |
| 42 | + | (option) => option.slug === model && !option.isUnavailable && !option.isHidden, | |
🟡 Medium settings/useScopedModelAvailability.ts:42
A saved hidden default is reported as unavailable, so ProjectDefaultsSettings disables editing its effort and options even when the model is connected. This check is used to validate the current selection, so keep isHidden filtering in the picker but remove it from this availability check.
| 1 | (option) => option.slug === model && !option.isUnavailable, |
🤖 Copy this AI Prompt to have your agent fix this:
| 1 | In file @apps/web/src/components/settings/useScopedModelAvailability.ts around line 42: |
| 2 | |
| 3 | A saved hidden default is reported as unavailable, so `ProjectDefaultsSettings` disables editing its effort and options even when the model is connected. This check is used to validate the current selection, so keep `isHidden` filtering in the picker but remove it from this availability check. |
Fixed in d90f0dea8a: the availability check no longer treats hidden as unavailable. The picker still keeps hidden models out of new choices.
Sorry, I'm unable to act on this request because you do not have permissions within this repository.