Skip to content

feat: 4107 onboarding use case selection - #4539

Draft
BloggerBust wants to merge 3 commits into
hatchet-dev:mainfrom
BloggerBust:feat/4107-onboarding-use-case-selection
Draft

feat: 4107 onboarding use case selection#4539
BloggerBust wants to merge 3 commits into
hatchet-dev:mainfrom
BloggerBust:feat/4107-onboarding-use-case-selection

Conversation

@BloggerBust

Copy link
Copy Markdown
Collaborator

Description

Draft until hatchet-dev/hatchet-quickstarts#16 merges. The quickstarts dependency is temporarily pinned to that PR's head commit and must be replaced with the v0.3.0 tag before this is marked ready.

The Overview onboarding now opens with a use-case and language picker. Workers and runs from an earlier selection never satisfy the current one; the confirmation is scoped for each tenant in localStorage, while completion itself is always re-derived from the runs API. Skip and Finish display a modal that explains how to restart onboarding. The Scheduled use-case offers the same language options as Simple.

Refs #4107. This completes the final Phase 4 task.

Type of change

  • New feature (non-breaking change which adds functionality)

What's Changed

  • useLocalStorageState now reloads when its key changes. Tenant state is isolated.
  • jsdom and @types/jsdom were added as dev dependencies to test that hook under node:test.
  • Pending v0.3.0 hatchet-quickstarts bump. and add a CHANGELOG entry under Unreleased for the onboarding feature.

Checklist

Changes have been:

  • Tested (unit, integration, or manually with steps specified)
  • Linted and formatted

Testing

Frontend: lint, prettier, typecheck, and unit tests pass under Node 24. Go: templater and CLI unit tests pass and the extended e2e suite compiles. Live validation against a local backend covered scheduled Python, TypeScript, and Go generated by
a CLI. The onboarding itself was manually validated in the browser.


🤖 AI Disclosure
  • I acknowledge that an LLM was used in the creation of this Pull Request, in accordance with Hatchet's AI_POLICY.md.

  • Details: Claude Code (Opus 4.8) implemented tests, ran validation and fixed issues as they came up.

The Overview onboarding now opens with a use-case and language picker,
derives the quickstart scaffold and trigger commands from that
selection, and completes on a run created after the selection was
confirmed. Workers and runs from an earlier selection never satisfy the
current one; the confirmation timestamp that scopes both persists for
each tenant in localStorage, while completion itself is always
re-derived from the runs API. Skip and Finish both hide onboarding
behind a confirmation dialog, and the tenant General settings page
offers Restart onboarding while it is hidden.

useLocalStorageState now reloads when its key changes, so a tenant
switch cannot carry another tenant's stored state across. jsdom was
added as a dev dependency to test that hook under node:test.
The onboarding picker now lists all three languages for scheduled.

The quickstarts dependency is temporarily pinned to the head commit of
the hatchet-quickstarts PR that adds these templates. Replace it with
the v0.3.0 tag once that PR merges and is tagged, then this PR can be
taken out of draft.
@vercel

vercel Bot commented Jul 27, 2026

Copy link
Copy Markdown

@BloggerBust is attempting to deploy a commit to the Hatchet Team on Vercel.

A member of the Team first needs to authorize it.

@github-actions github-actions Bot added engine Related to the core Hatchet engine dashboard Related to the Hatchet dashboard labels Jul 27, 2026
@BloggerBust
BloggerBust marked this pull request as draft July 27, 2026 13:02

@mnafees mnafees left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since there are changes to the UI here, I'd like to request some screenshots please

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

What's the use case of having this test? To me it seems like every time we make changes to the quickstart repo / examples we will need to keep updating this which seems like some wasted work?

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

same question on this test file as well

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dashboard Related to the Hatchet dashboard engine Related to the core Hatchet engine

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants