Repository navigation
Conversation
Fresh profiles previously sent the built-in model even when the engine advertised a different configured model, causing compatible gateways to reject otherwise valid first-use requests. Apply engine defaults only to fields without saved or explicit user choices, and persist that provenance so an automatic fallback or status default never becomes an override after a refresh or restart. Preserve legacy saved values, provider choice, and edits made while status is pending, including edits back to a built-in value. Keep Web endpoints server-owned and exclude API keys from persistence. Add unit and browser regressions for fresh, saved, pending-status, failed-status, and reopen paths. Validation: 45/45 Vitest tests, Vite production build, staged diff check, and Playwright discovery of 18 scenarios passed. Independent automated review reproduced the persistence failure before its correction and found no remaining code blocker on the final tree. Local TypeScript and browser execution were blocked by sandbox runtime facilities; exact-head CI is required. Security-aware human review, affected integration checks and manual macOS acceptance remain required; no approval or release gate is waived. AI-assisted implementation and independent automated review. Fixes #62
fly1d
marked this pull request as ready for review
October 8, 2026 06:32
This branch has not been deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem and behavior
Fixes #62. On a fresh profile, a server configured with
OPENAI_MODEL=compatible-modelstill receives the built-ingpt-5-minifrom the UI. A controlled request-boundary reproduction using the actual translate/tokenize provider code returns the gateway's model-not-found response. Desktop-configured endpoint defaults are affected by the same initialization.The UI now applies engine defaults to fields without a saved or explicit user choice. Persistence saves only provider choice and genuinely saved/edited model or endpoint fields, so refreshing before status resolves, after a status failure, or after an automatic default was applied cannot turn fallback/default values into user overrides. Existing saved values and edits made during a pending status request, including an edit back to a built-in value, remain intact. Legacy saved fields remain treated as explicit choices because the old storage format cannot identify which values were previously filled automatically. Applying server defaults still requires a successful engine-status response.
Web endpoint URLs are still server-owned. API keys are never restored or persisted. Provider request handling, endpoint validation, SSRF protections, credential storage, selection capture, and release workflows are unchanged.
Scope and risk
Five files: initialization/persistence helpers, App integration, eleven focused unit tests, six browser scenarios (desktop/mobile viewports), and one changelog entry. This is independent of #59's selection-settings race fix and #61's dependency alignment; it does not stack or duplicate those branches.
Treat as high risk because desktop endpoint initialization is affected. Required before merge: a security-aware human GitHub Review, affected integration/browser checks, manual macOS acceptance, a current branch, and resolved review conversations. Automated review is not a human approval. No release, signature, notarization, or artifact publishing is authorized by this PR.
Validation
7f02ce88ad0078022e2c6327e41cb3ddd5aae179, based on main23f1e8c5428879318ca3298830692fb804ff6d4f.compatible-modelafter the fix with network responses mocked; this is maintainer self-validation, not customer adoption./proc/self/exe; local browser smoke was blocked by sandbox IPC/network-interface facilities. Neither was reported as a local pass. New-head GitHub CI now completes the typecheck and browser paths successfully.f8565f334746093b02b1427d733ea3174dffd230: 5/5 checks succeeded. CI and Desktop logs confirm TypeScript/build, 45/45 Vitest, Rust fmt/Clippy/check, 21/21 Rust tests, macOS.appbuild and bundled Apple Events usage-description validation. CodeQL checks succeeded..appor perform signing/notarization. Machine build validation is not manual macOS acceptance. Manual macOS acceptance and security-aware human review remain outstanding.AI-assisted implementation and independent automated review. No user-adoption claim.