fix(ai): preserve custom model IDs across refresh#649
fix(ai): preserve custom model IDs across refresh#649floze-the-genius wants to merge 15 commits into
Conversation
|
The PR Policy check is blocking this PR because required template information is missing. Please update the PR description with:
Visual files detected:
Screenshots or video are required for UI, UX, settings, onboarding, overlay, menu bar, or visual behavior changes. If this PR has no visual changes, check the no-visual-change box in the template. If this remains incomplete for 48 hours after opening, the PR may be closed. |
Greptile SummaryThis PR adds a dedicated custom model storage layer (
|
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e604fb152c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
|
Addressed both Greptile findings in 7c812b2: discovery-only IDs are selected without being persisted as custom, genuinely new IDs still persist, and the test now uses the source-of-truth defaults key. The focused compiled regression harness, SwiftLint, SwiftFormat checks, |
Expose manual model entry in the active provider UI and persist custom IDs separately from discovery results. Merge explicit custom IDs during refresh while retaining the existing fallback for retired discovered models.
Keep existing discovery-only IDs selectable without persisting them as custom models, while continuing to retain genuinely new manual IDs. Reuse the SettingsStore defaults key in integration-test cleanup and cover both entry paths.
7c812b2 to
cc0e49a
Compare
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: cc0e49aba5
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 867f6c7400
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 60fad93552
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
|
@codex review |
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
|
Addressed the remaining legacy-migration review in |
|
@codex review |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b9ec6e8d7c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
floze-the-genius
left a comment
There was a problem hiding this comment.
Publishing the previously drafted responses to resolved review threads.
floze-the-genius
left a comment
There was a problem hiding this comment.
Publishing the remaining previously drafted response.
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
|
Want your agent to iterate on Greptile's feedback? Try greploops. |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: b6b1cd114c
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: c1f44ce464
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: d13a5f21d4
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
|
Review follow-up on head
Validation on the exact head: PR Policy passed, SwiftLint passed, |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: e8e3312f35
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Signed-off-by: Floze <88098863+floze-the-genius@users.noreply.github.com>
|
Addressed both findings in
Validation on the pushed head: |
Description
Makes manual AI model entry reachable from the current provider UI and keeps explicitly added IDs across discovery refreshes.
Custom IDs are stored separately per provider, normalized and deduplicated, merged into the normal model picker, selected immediately after entry, restored on launch, and removed with their provider. Refresh still drops retired discovery-only models and falls back to the first current model.
Type of Change
Related Issue or Discussion
Closes #601.
Testing
swiftlint --strict --config .swiftlint.yml Sourcesswiftformat --config .swiftformat SourcesAIModelCatalogharness,swiftc -parsefor all changed Swift files, andplutil -lintfor the Xcode projectUpstream validation on the exact PR head:
e604fb152c331d2d9c6e555d7887649a77a2fff3)git diff --checkScreenshots / Video
The OpenRouter provider card now exposes the Add custom model control and inline model-name field:
Screenshot captured from the upstream-generated PR archive for head SHA
e604fb152c331d2d9c6e555d7887649a77a2fff3.Notes
Only IDs explicitly added as custom survive refresh. A selected discovery-only model that disappears from the provider catalog keeps the existing fallback-to-first behavior instead of being silently promoted to custom storage.