SIGN IN SIGN UP

onboarding: drive guided first-run flow in remote TUI mode

The modern TUI always runs as a client/server (remote) split, even
against a local server. The guided onboarding flow was previously
double-gated off remote mode: onboarding_tick was never called from
remote::handle_tick, and the flow control methods early-returned when
is_remote was set. As a result the flow never appeared on a fresh
install.

- Call onboarding_tick from remote::handle_tick and intercept the
  onboarding welcome keys (model-select Enter, continue-prompt Y/N) in
  the remote key handler.
- Remove the is_remote gates from the flow-start helpers.
- Render the ModelSelect and ContinuePrompt phases through the
  client-side welcome screen (ui_onboarding) instead of pushing
  transcript messages, which the server overwrites in remote mode. New
  OnboardingWelcomeKind drives the welcome body and a live countdown.
- Only intercept ModelSelect Enter when no inline picker is open, so the
  model picker can actually commit a selection and advance the flow.
- Refine the startup activity guard to ignore synthetic scaffolding
  (system-reminder Session Context message + system cards) so a brand
  new session isn't treated as already-active.

Verified end-to-end in an authed fresh-install sandbox: startup ->
model picker -> Codex continue prompt (10s auto) -> transcript pick ->
session-search fallback. Tests updated/added; onboarding suite green.
J
jeremy committed
2f45b271df5bb023af9fbe26ace480538e122c64
Parent: 00e9b9f