Repository navigation
Replace the forced first-run with a Getting started checklist - #133
Merged
Merged
Conversation
Signing in no longer asks for a first project and key before the console opens. The console tour stays as an optional screen the console can open, on the same stage as sign-in. Remove what only the forced setup used: FirstProjectSetup, the typed request terminal and its command block, the combined create-project-and-key flow in the key-flow reducer, the setup progress and step transition, and their locale keys (keys.firstRun, onboarding.steps/stage.project/terminal, the unused navigation.gettingStarted and dead firstRun strings).
Three steps, in any order, each with its state and one action, computed from reads the Overview already makes: sandboxes ready (a saved deployment with a node online and ready, or a ready E2B template build), a project with an active key, and any Session. The checklist shows while a step is to do, ends with "You're set" in a browser that saw it, and collapses to one line when hidden; the choice is kept in localStorage. Its header opens the optional console tour. Its actions open the right dialog on arrival through an in-memory navigation intent: Add node on the Nodes page, Create project (continuing to the new project's first key) or Issue key on Projects and keys. Browser acceptance: a fresh install signs in to the checklist, creates a project and a key shown once from it, and sees the step done; an empty install shows every page without errors and opens Add node from it.
Before sandboxes are set up, the Overview's fleet card and Sandbox metrics offer "Set up sandboxes" instead of Add node; with a saved own-machines deployment and no node, their Add node opens the dialog on the Nodes page. Session activity keeps whole-number ticks, so a first Session no longer reads 0, 0, 1, 1, 1 on the axis.
A counts axis skips the 2.5 step and rounds its step up to a whole number, so a maximum of 9 or 10 no longer reads 2.5, 7.5. Agent requests, tokens, models and tools and Core Turns and connection pool use it too.
The tour focuses its forward button when it opens and returns the focus to the control that opened it, or to the page, when it ends. Escape that a menu already handled (closing the appearance menu) no longer ends the tour.
Core admits only a ready template build, and selections saved before it recorded the build report a null status. Getting started now leaves the sandbox step to do only for a build Core reports as not ready, using the same templateBuildStatus rule as the sandbox pages.
The menu claimed every Escape pressed with focus on its trigger, so after Escape closed it on the tour, a second Escape could not end the tour.
- Hiding the checklist hides it (no compact line); Show Getting started, a quiet row above the sidebar's account controls, opens it again in any state and moves the focus to it. The tour opens from the checklist and from "You're set". - The choice is kept per installation (keyed by installation_id), so a reinstall at the same origin starts again. - "You're set" closes the checklist as soon as it shows, so a later regression never brings it back; an open checklist waits for a step's state instead of showing every step as checking. - A page drops a Getting started request it cannot serve on its first settled read (Add node without own machines or in maintenance, Issue key for a missing or archived project) instead of acting on it later. - Browser acceptance waits for each page's reads before asserting that no error shows, covers a fresh install without a sandbox deployment, hiding and reopening the checklist and its Set up sandboxes action.
PRODUCT.md, DESIGN.md and the console surface brief describe the Overview's Getting started checklist, Show Getting started in the sidebar and the optional tour; the Web protocol coverage and roadmap drop the first-run screen, its detection, the default project name and the curl example.
SaladDay
force-pushed
the
codex/web-getting-started
branch
from
September 25, 2026 18:47
6caa1e5 to
e0af177
Compare
Creating a project from Getting started opens its page anew, which could drop the Issue key request when the list had not been re-read yet. The created project now goes into the cached list before the page opens; the re-read still confirms it. Drop the dead created-project fallback. The browser test delays the list by five seconds and still expects the dialog.
The browser remembers the installation it last read, and the checklist uses that installation's entry while the sandbox read fails, so a hidden checklist stays hidden during an outage and a choice made then is kept.
The tour replaces the Overview, which lost the local You're set state while the checklist was already closed, so the card and the focus target were gone afterwards. You're set now lives beside the checklist memory until it is dismissed; after the tour the card is back and its Take the tour button has the focus. A browser test reopens a finished checklist from the sidebar and checks both.
PRODUCT.md names the E2B condition as the code applies it (a saved deployment whose template build is not reported as not ready); DESIGN.md says You're set stays through the tour until dismissed and the choice holds while the deployment cannot be read.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Replaces the forced first-run gate with a Getting started checklist on the Overview (W1 of the new-user install plan). The product owner decided that first sign-in no longer forces creating a project.
Depends on #132. Both edit the
NodeEnrollmentwiring inSandboxManagerView.tsx. This branch rebases after #132 merges, and the checklist's Add node action then uses the page-controlled dialog.Changes
Sign-in always lands on the Overview. The tour stays optional ("Take the tour").
Getting started checklist. Three steps, each done / to do with one action. The status comes only from reads the console already makes.
ready.Behaviour:
Checklist actions open the right dialog on arrival: Create project, then Issue key; or Add node.
Empty states: with no deployment, the Overview fleet card and Sandbox metrics say "Set up sandboxes". Count axes keep whole numbers.
Removed: the first-run project/key flow, its terminal and command block, and their CSS and locale keys; also the unused
Hosted Sandbox Managerstring.Tests
access.spec.ts: fresh install → checklist → tour skip → Create project → Issue key → step 2 done, with no key in browser storage. Every page renders empty with no error.Results: typecheck ✓, unit 333/333, build ✓, full web e2e 18/18.
Need help on this PR? Tag
@codesmithwith what you need. Autofix is disabled.