feat(desktop): polish onboarding harness#2039
Conversation
b4280f6 to
7f6d44d
Compare
7f6d44d to
18408ee
Compare
wesbillman
left a comment
There was a problem hiding this comment.
Two existing-flow regressions block this as written; this is not a UI-only change:
-
A successful installer result bypasses readiness/authentication.
runtimeCanAdvanceOnboarding(runtime, installSuccess)returnstrueunconditionally wheninstallSuccessis true. For a newly installed Claude/Codex CLI, installation does not establish account auth, and the query invalidation/re-probe may still report logged out/unknown. Nevertheless the card becomes “INSTALLED” and Next advances immediately. The new keyboard test codifies this shortcut with a stale not-installed catalog rather than proving the re-probed runtime is actually available and authenticated. Keep installation success distinct from runtime readiness; advance only after the refreshed catalog satisfies the normal availability/auth gate (and show/setup auth otherwise). -
Rapid multi-selection can persist an older choice than the UI shows. Every toggle starts an independent
getGlobalAgentConfig→setGlobalAgentConfigrequest. Unlike the old single-select flow, cards remain interactive whileisSelectionSaving, so A→A+B launches overlapping writes. The sequence number only suppresses stale React callbacks; it does not serialize/cancel backend writes. If the first write finishes last, persistedpreferred_runtimeis A while local selection/defaults show B (and Next re-enables when only the newest request finishes, even if an older write is still running). Serialize/coalesce selection writes and keep the gate saving until the queue drains; add a delayed/out-of-order toggle regression test.
Require refreshed runtime discovery and authentication before advancing after an install, and serialize preferred-runtime writes so rapid selections cannot persist stale state. Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Remove unrelated global auth-probe classification from the onboarding polish. The established readiness contract treats a successful CLI status probe as authenticated, including CLI-supported API-key credentials. Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Restore the established onboarding, settings, persistence, and authentication behavior. Keep only supported runtime branding and fall back to catalog avatars for unknown runtimes. Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
wesbillman
left a comment
There was a problem hiding this comment.
Re-reviewed the full branch and reduced it to UI-only runtime branding. Existing single-select onboarding, navigation, auth/readiness, persistence, shared settings, and test-bridge behavior are restored; unsupported Gemini branding is removed. The remaining diff only adds supported Claude/Codex/Goose assets, a runtime icon renderer with catalog-avatar/terminal fallback, and uses it in the existing runtime cards. Clean desktop build, typecheck, Biome, and onboarding-agent-defaults smoke suite (15/15) pass on current main.
Restore the intended two-step, multi-harness onboarding redesign after the review trim removed it too broadly. Keep the targeted readiness and persistence fixes, established CLI auth semantics, and supported-runtime-only branding. Co-authored-by: Pinky <44b8e82baa6e0e254e0208d68f335c283c94e7b78dd1fa10d5a49d3f13dd0435@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Superseded: this approval incorrectly removed the intended onboarding redesign. The redesign is restored at 4742615; a fresh approval will follow current-head CI and merge-base review.
The onboarding model list can run long (Databricks discovery returns dozens of models) and the custom dropdown from #2039 dropped the typeahead search the persona dialog combobox already has. Add an inline filter input to AgentDropdownSelect, enabled for the model field, matching the persona combobox behavior. Co-authored-by: Brain <21994759fc7a6fa6b965551d35cfd7897d262f2495467f2d78694ddcfa6a5c7e@sprout-oss.stage.blox.sqprod.co> Signed-off-by: Wes <wesbillman@users.noreply.github.com>
Why
Refresh the machine onboarding harness and default-agent settings steps to match the new two-step design while preserving the existing setup/config functionality.
What
Risk Assessment
Medium-low — changes are concentrated in desktop onboarding and shared agent config field presentation. Existing settings defaults are preserved, and the focused onboarding flow is covered by e2e tests.
References
bin/pnpm --dir desktop exec biome check ...passedbin/pnpm --dir desktop run typecheckpassedbin/pnpm --dir desktop exec playwright test --project=smoke tests/e2e/onboarding-agent-defaults.spec.tspassed, 12 testsGenerated with Codex