Skip to content

First-run onboarding: guide a fresh account to the workbench picker, not an auto-minted empty one - #266

Merged
TheGreatAxios merged 2 commits into
mainfrom
cl-first-run-onboarding
Aug 21, 2026
Merged

First-run onboarding: guide a fresh account to the workbench picker, not an auto-minted empty one#266
TheGreatAxios merged 2 commits into
mainfrom
cl-first-run-onboarding

Conversation

@TheGreatAxios

Copy link
Copy Markdown
Contributor

Summary

  • Fixes CL-6555. Logging into a brand-new account used to auto-mint a blank, unlabeled "New Workbench" (CL-6138) and land straight in it — no explanation of what the room is for, and no guided path. HomeRoute's zero-workbench branch now waits for Myra's readiness (same wait/slow/retry UX from CL-6457/CL-6462, unchanged) and then navigates to the existing NewWorkbenchPickerRoute (/new) so a fresh account creates its first real workbench there — template or "Just start talking" — the same picker every other "+ New workbench" control already uses.
  • Removes the now-dead createAgentAndLaunch (the one-off auto-mint verb this replaces) and its tests.
  • Accounts that already have one or more workbenches are unaffected — unchanged ensureMyraWorkbench path.

Root cause investigated

The reachable creation paths (POST /workbenches with a definitionId) are atomic server-side — the route compensates (deletes the workbench) if the agent join fails, so a workbench minted that way always has an agent participant. So the literal "type and nothing answers" state isn't reachable through today's standard fresh-account flow. It is architecturally real but latent elsewhere: sendWorkbenchMessage never rejects a send, default-routing falls back to a workbench's "host" (first agent participant), and if there is none the message is durably posted but never routed — silently. provisionSpaceWorkbench already creates intentionally participant-less kind: "workbench" rows (routine spaces), proving the codebase tolerates this shape elsewhere. Filed as a scoped follow-up in CL-6555 rather than bundled into this change, since it touches the backend fan-out/notice path and the standard creation path already guards against it.

Test plan

  • bun test test/home-page.test.tsx src/instant-agent-create.test.ts (apps/web) — all pass
  • bun test ./src ./test (apps/web, full suite) — 833 pass, 0 fail
  • bun run typecheck (apps/web) — clean
  • bunx eslint on changed files — clean
  • bun run check:structural — all checks pass
  • New test: a brand-new account with zero workbenches lands on /new, not an auto-minted room
  • Regression test: an account with an existing workbench is unaffected (still lands via ensureMyraWorkbench)
  • Existing wait/slow/retry-after-connecting-a-provider tests updated and passing against the new redirect target

https://linear.app/abklabs/issue/CL-6555

A brand-new account should land on the guided workbench picker, not
get auto-minted into an unlabeled "New Workbench" it never asked for.
Pins the redirect (and keeps the existing Myra-readiness wait/retry/
slow states) so HomeRoute's implementation can be changed under it.
…uto-minting an empty one

Landing a brand-new account straight into a silently auto-minted,
unlabeled "New Workbench" (CL-6138) is exactly the confusing empty-bench
experience reported: nothing marks what the room is for, and it skips
the guided create flow every other "+ New workbench" control already
uses. The zero-workbench branch now waits for Myra's own definition to
exist (unchanged wait/slow/retry UX) and then sends the person to
NewWorkbenchPickerRoute (`/new`) to create their first real workbench
there, template or blank.

Drops the now-dead createAgentAndLaunch, the one-off auto-mint verb
this replaces, along with its tests.
@TheGreatAxios
TheGreatAxios merged commit 3288258 into main Aug 21, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant