fix(ui-settings-models): address review — derived key fact, required render seat, spec sync

The provider-card seat's keyConfigured now derives from the reference the
page would use — the profile's apiKeyEnv, or the page's derived
<ROUTE>_API_KEY while the profile names none — so the add-provider draft
agrees with its own editor about an existing conventional credential (the
store joins the derived describe in the same batched call, as
ProviderRow.derivedCredential). ModelsSectionProps makes the renderSlot seat
required so a direct render that forgets it fails to compile; the one such
render in provider-form.client.spec regained a real mount and the test
boilerplate collapsed to renderSlot={() => null}. The extension-slots Agent
Note now states the keyed cell's real override rule (same priority throws,
a different priority shadows), and docs/subsystems/slots.md carries the two
new seats in its hierarchy, both languages.
This commit is contained in:
Yichen Jiang
2026-08-26 17:12:58 +08:00
parent b5c3cc897c
commit bf0db65bb0
12 changed files with 82 additions and 30 deletions
+2 -2
View File
@@ -2,5 +2,5 @@
# side as of the last confirmed-consistent state. Both languages carry equal authority;
# after editing either side, bring the other along and re-record with:
# pnpm run verify-translation-pairing --write docs/subsystems/slots.md
slots.md: 6eb61780ca2f06ebc38a0fcf2638a7fafcd5ceee
slots.zh.md: e5a25763d382c228525f3da24694e41dd09737e0
slots.md: 8e115e30aed68e543eca2f1aac6e28ad9f57cf73
slots.zh.md: 3894b69d8d020b4bb67ce325d389ab3f20cfcc9a
+2
View File
@@ -123,6 +123,8 @@ root
│ ├─ settings.onboarding
│ └─ settings.section
│ ├─ settings.general.item
│ ├─ settings.models.provider-card
│ ├─ settings.models.footer
│ └─ settings.plugins.tab
│ └─ settings.plugin.item
├─ conversation
+2
View File
@@ -123,6 +123,8 @@ root
│ ├─ settings.onboarding
│ └─ settings.section
│ ├─ settings.general.item
│ ├─ settings.models.provider-card
│ ├─ settings.models.footer
│ └─ settings.plugins.tab
│ └─ settings.plugin.item
├─ conversation