fix(web): end first-run onboarding on any usable provider

The step and the Models page both asked one question of a join that
describes every provider: is deepseek-official's credential stored? A user
who configured some other route was taken over on every blank session, and
the DeepSeek setup card opened over them on every visit to Models with a
Cancel that could not close it — while clearing the add card's draft,
because it shared the row-editor close handler.

providerUsable(row) now answers what both surfaces need: the route is
registered and whatever credential its profile names is stored. Readiness
(renamed onboardingReadiness) ends on any usable row, needsSetup takes the
same fact, and each card kind owns its own close handler.

Fixes #2325
This commit is contained in:
Yichen Jiang
2026-08-12 12:50:40 +08:00
parent d5ec13bdd9
commit d57463c2fb
15 changed files with 557 additions and 157 deletions

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 packages/client/ui-models/README.md
README.md: f6604f822412e9eb4574696f5b99e73fb7bd98ff
README.zh.md: 2500bbae0982571a9a88dd5c259749e3504728de
README.md: a8d030b7676e87709fb36b87a6599decc43e0b4b
README.zh.md: 63fb1b486acc2bca34792f485ffd89fb32749e43