Add GitHub and Linear onboarding setup (#2275)

Co-authored-by: Orca <help@stably.ai>
This commit is contained in:
Brennan Benson
2026-05-18 16:02:39 -07:00
committed by GitHub
co-authored by Orca
parent 71a3bba90d
commit ececd27fd8
12 changed files with 746 additions and 209 deletions
+1 -1
View File
@@ -28,7 +28,7 @@ export const DEFAULT_APP_FONT_FAMILY = 'Geist'
// Why: the onboarding wizard's last step index. Centralized so backfill,
// clamps, and UI step references all agree on the same upper bound.
export const ONBOARDING_FINAL_STEP = 4
export const ONBOARDING_FINAL_STEP = 5
export const ORCA_BROWSER_PARTITION = 'persist:orca-browser'
// Why: blank browser tabs must start from an inert guest URL that does not
+33 -1
View File
@@ -353,7 +353,27 @@ const onboardingFailureReasonSchema = z.enum([
'cancelled',
'unknown'
])
const onboardingValueKindSchema = z.enum(['agent', 'theme', 'notifications', 'repo'])
const onboardingValueKindSchema = z.enum([
'agent',
'theme',
'notifications',
'integrations',
'repo'
])
const onboardingTaskSourcesGithubStatusSchema = z.enum([
'connected',
'not_authenticated',
'not_installed',
'checking',
'unknown'
])
const onboardingTaskSourcesLinearStatusSchema = z.enum([
'connected',
'not_connected',
'checking',
'unknown'
])
const onboardingTaskSourcesExitActionSchema = z.enum(['continue', 'skip_to_project_setup'])
// `dismissed` from `OnboardingChecklistState` is intentionally excluded —
// it is a UI panel-visibility flag, not an activation event, so it never
// fires `activation_checklist_item_completed`. Keep this list in sync with
@@ -465,6 +485,16 @@ const onboardingStep4PathFailedSchema = z
cohort: cohortSchema
})
.strict()
const onboardingTaskSourcesSnapshotSchema = z
.object({
github_status: onboardingTaskSourcesGithubStatusSchema,
linear_status: onboardingTaskSourcesLinearStatusSchema,
exit_action: onboardingTaskSourcesExitActionSchema,
duration_ms: z.number().int().nonnegative().optional(),
advanced_via: advancedViaSchema,
cohort: cohortSchema
})
.strict()
const onboardingCompletedSchema = z
.object({
path: onboardingPathSchema,
@@ -704,6 +734,7 @@ export const eventSchemas = {
onboarding_step_skipped: onboardingStepSkippedSchema,
onboarding_step4_path_clicked: onboardingStep4PathClickedSchema,
onboarding_step4_path_failed: onboardingStep4PathFailedSchema,
onboarding_task_sources_snapshot: onboardingTaskSourcesSnapshotSchema,
onboarding_completed: onboardingCompletedSchema,
onboarding_dismissed: onboardingDismissedSchema,
onboarding_agent_picked: onboardingAgentPickedSchema,
@@ -810,6 +841,7 @@ type _OnboardingCohortRoster =
| 'onboarding_step_skipped'
| 'onboarding_step4_path_clicked'
| 'onboarding_step4_path_failed'
| 'onboarding_task_sources_snapshot'
| 'onboarding_completed'
| 'onboarding_dismissed'
| 'onboarding_agent_picked'