Skip to content

[Feature]: Support options in model favorites #3035

@khaneliman

Description

@khaneliman

Before submitting

  • I searched existing issues and did not find a duplicate.
  • I am describing a concrete problem or use case, not just a vague idea.

Area

apps/desktop

Problem or use case

When a user favorites a model (such as claude-opus-4-8 ) and sets custom options (like reasoning effort: "high" or contextWindow: "1m" ), these settings are stripped and not persisted.

  1. Schema validation: In packages/contracts/src/settings.ts , favorites is defined without the options key:
    favorites: Schema.Array(
    Schema.Struct({
    provider: ProviderInstanceId,
    model: TrimmedNonEmptyString,
    }),
    )
    Because of this, the server-side settings decoder strips any options block when loading client-settings.json .
  2. Model Selection: The frontend model picker click/select handler does not look up the favorite's options to apply them when selecting the model.

Proposed solution

Update packages/contracts/src/settings.ts to include options in the favorites structures:

  favorites: Schema.Array(
    Schema.Struct({
      provider: ProviderInstanceId,
      model: TrimmedNonEmptyString,
+     options: Schema.optionalKey(ProviderOptionSelections),
    }),                                                                                                                                                                                                                          
  ).pipe(Schema.withDecodingDefault(Effect.succeed([]))),                                                                                                                                                                        

And update the frontend model picker selection handler to apply the options from the favorite object if present.

Why this matters

Selecting a model from the Favorites rail/combobox should restore the specific option selections (context window size, reasoning effort, thinking, etc.) saved with that favorite.

Smallest useful scope

Already small scope.

Alternatives considered

No response

Risks or tradeoffs

Realized that the app 'hides' the model from regular list selection once it's been favorited so I can kinda see why it might not have been implemented that way since then you're stuck with it at the options when it was favorited if that was the case.

Examples or references

No response

Contribution

  • I would be open to helping implement this.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementRequested improvement or new capability.needs-triageIssue needs maintainer review and initial categorization.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions