Repository navigation
fix(settings): make provider sign-in and model editing reliable - #6517
Conversation
Compare connection and credential facts structurally so provider JSON field order cannot reject a successful login. Adopt the new basis before model discovery, allow save-and-sign-in, and provide working reload and independent discovery retry. Reorganize connection and model settings around authentication, model choices and compact advanced controls. Preserve edits on Back, validate model limits inline, keep footer actions reachable, and verify the actual desktop flow in light and dark at narrow and wide sizes. Generated-by: OpenAI Codex
Group actual provider facts into account sign-in, custom endpoints and named services. Use flat, sorted rows with keyboard search, clear and contextual Escape, preserve selection on return, and show accurate opening and retry states without duplicate dispatch. Avoid known connection ID collisions, restore search focus after retry, and keep virtual headers and provider rows correct while filtering. Verify against the native provider catalog in both themes and window sizes, include desktop screenshots, and cover late reads and new-connection navigation. Generated-by: OpenAI Codex
cf26597 to
787ea72
Compare
Translate subscription, compatible-endpoint and region labels consistently in the picker and editor, and search both original and translated provider names. Preserve provider identity, saved connection names and reasoning-effort values. Exercise the actual ChatGPT sign-in, copy/cancel and translated provider-search controls in Simplified and Traditional Chinese using the real desktop renderer. Include a Chinese sign-in screenshot. Generated-by: OpenAI Codex
Astro-Han
left a comment
There was a problem hiding this comment.
Automated review notice: This comment was posted by an automated review agent. It is not an independent human review and does not replace one.
This is a focused release-inventory check at d9e51f039559d7bc69405ddb90c45db4ec382884, not a complete review of the 23-file settings/UI change. There is one confirmed P2: the SDK changes leave the source-bound notice inventory stale, as described inline.
I ran the actual scripts/rust/notices.mjs check on extracted, unmodified tracked inputs. It passes on 167ce25f0ead421d5abe6e632a9f4e305a35d24c, before this PR's first commit, and fails on the reviewed head. Exactly two recorded input hashes disagree: packages/plugin-sdk/src/contracts.ts and packages/plugin-sdk/src/generated/runtime.ts. In a separate copy, updating only those two recorded hashes makes the same check pass. This control establishes the cause of the check failure; it is not a substitute for regenerating and reviewing the release inventory.
The merged Rust CI failure reports the same stale-notices error in notices.test.mjs (129 JavaScript tests passed, one failed). This prevents the normal check chain from proceeding and the release command also calls this verifier. I did not run Rust, review the complete UI/login behavior or validate the screenshots and native interactions.
Automated review notice: This comment was posted by an automated review agent operated by Astro-Han. It is not an independent human review and does not replace one.
| SettingsProviderSummary: { | ||
| type: 'object', | ||
| properties: { | ||
| customEndpoint: { |
There was a problem hiding this comment.
[P2] Refresh the source-bound release inventory with this SDK change
products/maka/cli/notices.json still records the old bytes of this file and src/generated/runtime.ts. The actual notice verifier passes on the pre-PR base 167ce25f and fails on the final head; changing only those two fingerprints in a disposable copy makes it pass again. The merged Rust CI stops in notices.test.mjs with this same error, and release preparation also calls verifyNotices. Regenerate and review the notice inventory for the final inputs so these SDK updates do not leave normal checks and packaging blocked.
Automated review notice: This comment was posted by an automated review agent operated by Astro-Han. It is not an independent human review and does not replace one.
#6517 changed two notice inputs under packages/plugin-sdk without regenerating the manifest, so the notices test fails on rust-preview and stops `just check` before the Rust suites run.
My earlier source-inventory P2 is resolved by #6520 commit The later #6523 replaces that mechanism with actual component/license coverage checks. The completed product worker for Rust
|
A successful ChatGPT Subscription sign-in was reported as belonging to another connection because the UI compared JSON serialization order. That left the editor on the pre-login revision, so another click then reported an external settings change. Compare structured facts instead and adopt the saved connection and credential basis before fetching models.
The connection and model editors now put authentication and model choices first, keep advanced options collapsed, and keep save/reload/delete actions in a fixed footer. New and edited connections support Save and sign in. Device sign-in opens the browser, exposes the code and copy/cancel actions, and keeps manual URL opening available if automatic opening fails. A model-fetch failure preserves the completed sign-in and can be retried independently. Reload follows external revision changes; Back offers to keep unsaved edits. Model limits validate inline, catalog association and default selection use compact rows, and transient feedback avoids duplicate messages.
The provider picker separates account sign-in, custom endpoints and named API services, using the provider descriptor rather than guessing from names. Choices are alphabetized within each section and use compact flat rows. Search has a clear action, full-name tooltips, arrow/Enter selection and contextual Escape handling. Returning from a new connection retains its search and selection. Opening is explicit and prevents duplicate reads; catalog and individual-provider failures retry their own action and return focus to search. Known connection IDs are avoided when suggesting a new ID. Virtual rows safely switch between headers and providers as filters change.
Built-in subscription, compatible-endpoint and region labels are localized for display and provider search, which matches both original and translated names. Provider identity, protocol values and saved connection names are unchanged. Reasoning-effort names intentionally remain the original values. The ChatGPT sign-in action is translated as well.
The layout follows
DESIGN.mdand the hierarchy and progressive disclosure guidance in Apple HIG settings and account management.Validation:
The desktop fixture reads the actual provider catalog and controls the OAuth/model-discovery boundary and suppresses actual browser launch; these checks do not perform real-account OAuth. No user database was modified and the running desktop application was left alone. The PR targets
rust-preview.Generated with OpenAI Codex; independently reviewed by a Codex subagent. Human review is still required.
Provider picker screenshots from the real desktop test fixture:
Simplified Chinese sign-in (saved connection names remain user data):