Skip to content

Ask for a workspace even when the model is already set - #185

Merged
adityak74 merged 1 commit into
mainfrom
fix/onboarding-asks-for-a-workspace
Sep 6, 2026
Merged

Ask for a workspace even when the model is already set#185
adityak74 merged 1 commit into
mainfrom
fix/onboarding-asks-for-a-workspace

Conversation

@adityak74

Copy link
Copy Markdown
Contributor

The bug

The setup flow gained a workspace step, but maybeStartOnboarding never
grew the term. It read the model settings alone through isFirstRun, so
two people were never asked where the agent should work:

  • anyone whose server already has a model, for instance from an exported
    ZORP_MODEL or ZORP_BASE_URL
  • any browser that dismissed the flow before the workspace step existed

Both land on a composer whose every tool call runs in whatever directory
the server was started in, which is the zorp checkout itself. That is
the exact thing the workspace step was added to prevent.

The fix

shouldOnboard(settings, workspaceConfigured) asks about both. The two
are set in different places and either one alone leaves the agent unable
to do the thing it was opened for.

It lives in onboarding.ts beside isFirstRun rather than in
main.ts, because main.ts has no test harness and this is a decision
worth pinning. Three cases now cover it: configured with a workspace
asks nothing, configured without one still asks, and a workspace does
not stand in for a model that was never set.

The dismissal key carries a version. A dismissal is a person saying no
to what they were shown, and a browser that dismissed the old flow was
never shown the workspace step, so the old flag is not an answer to the
question this flow now asks. Every browser is asked once more, and one
click still skips it.

The workspace is already read before the settings read on the connect
path, so a configured one is known by the time this decides.

Checks

  • npm run check clean
  • npm test: 422 pass, 0 fail, up from 419
  • npm run build produces the bundle

https://claude.ai/code/session_01PG2vuux5tMsjnZBLWJzMyp

The setup flow gained a workspace step, but the condition that opens it
never grew the term. It read the model settings alone, so a server with
`ZORP_MODEL` exported, or one configured before the step existed, was
judged set up and the question was never asked. That person lands on a
composer whose every tool call runs in whatever directory the server was
started in, which is the zorp checkout itself.

The two are set in different places and either one alone is enough to
make the agent unable to do the thing it was opened for, so
`shouldOnboard` asks about both. It lives in onboarding.ts beside
`isFirstRun` rather than in main.ts, because main.ts has no tests and
this is a decision worth pinning.

The dismissal flag carries a version now. A dismissal is a person saying
no to what they were shown, and a browser that dismissed the old flow
was never shown the workspace step, so the old flag is not an answer to
the question this flow now asks.

Claude-Session: https://claude.ai/code/session_01PG2vuux5tMsjnZBLWJzMyp
@adityak74
adityak74 merged commit 8b29619 into main Sep 6, 2026
7 checks passed
@adityak74
adityak74 deleted the fix/onboarding-asks-for-a-workspace branch September 6, 2026 00:34
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