Skip to content

feat(onboarding): Add SCM messaging treatment route - #120992

Draft
jaydgoss wants to merge 1 commit into
feat/vdy-140-onboarding-session-semanticsfrom
feat/vdy-140-treatment-route-state
Draft

feat(onboarding): Add SCM messaging treatment route#120992
jaydgoss wants to merge 1 commit into
feat/vdy-140-onboarding-session-semanticsfrom
feat/vdy-140-treatment-route-state

Conversation

@jaydgoss

@jaydgoss jaydgoss commented Jul 31, 2026

Copy link
Copy Markdown
Member

TLDR

Adds the treatment-only fifth SCM onboarding step between platform/features and SDK setup, preserving the four-step control flow. The messaging destination slot persists in the onboarding session and survives refresh, Back, and repository/platform changes. Treatment entry creates no project.

Details

Stacked on #121022, which makes onboarding session exits explicit and is the prerequisite for persisting anything that must outlive a platform change; that in turn sat on #120981, which registered the distinct onboarding-scm-messaging-experiment key and has merged. The FlagPole config is getsentry/sentry-options-automator#9012, deliberately scoped to a single throwaway developer alias.

This layer establishes only the route and the session contract. It has no forward navigation on completion by design: VDY-141 owns shared project and alert-rule creation on final Continue or Set up later, VDY-143 owns inline destination configuration, and VDY-146 owns exposure and interaction analytics. A placeholder onComplete here would be deleted by VDY-141 and would strand users on a blank setup-docs, which renders off recentCreatedProject and bails when absent. Because treatment cannot complete yet, the flag must not widen beyond that alias until VDY-141 lands.

Revalidation of a restored destination is stacked separately in #121187. Nothing in this PR can write a selected or skipped destination — VDY-143 adds the picker and VDY-141 adds Set up later — so that logic has no reachable consumer yet and is better reviewed on its own.

The onboarding host consumes the nested assignment without reporting exposure and selects separate control and treatment step descriptors from entry, sharing the Welcome and repository steps. ScmPlatformFeatures keeps the existing control creation boundary but only stages platform and feature choices for treatment before advancing to scm-messaging; deferProjectCreation also drops the teams/projects store gate, which only the auto-create path needs. Global Skip resets the onboarding session and exits without creating a project. Stepper gained role="progressbar" with aria-valuemax, making the four- versus five-step split both accessible and assertable.

OnboardingContextProvider persists a typed unconfigured, skipped, or completed messaging destination in the existing session value, as a discriminated union so a partially-filled destination is unrepresentable. Because #121022 made field setters local, SCM repository, platform, refresh, and Back paths all preserve organization-scoped messaging state.

Coverage exercises the four- versus five-step split, deferred creation, session remount and Back behavior, and global Skip.

Refs VDY-140

@linear-code

linear-code Bot commented Jul 31, 2026

Copy link
Copy Markdown

VDY-140

@github-actions github-actions Bot added the Scope: Frontend Automatically applied to PRs that change frontend components label Jul 31, 2026
@jaydgoss
jaydgoss force-pushed the feat/vdy-140-treatment-route-state branch from 35e346f to 9601f27 Compare July 31, 2026 22:14
@jaydgoss
jaydgoss changed the base branch from feat/vdy-140-scm-messaging-experiment-flag to feat/vdy-140-onboarding-session-semantics July 31, 2026 22:14
@jaydgoss
jaydgoss force-pushed the feat/vdy-140-onboarding-session-semantics branch from f09dc21 to 1fd0e34 Compare August 4, 2026 16:59
@jaydgoss
jaydgoss force-pushed the feat/vdy-140-treatment-route-state branch from 9601f27 to 12140ea Compare August 4, 2026 16:59
@sentry

sentry Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Sentry Snapshot Testing

Name Added Removed Changed Renamed Unchanged Skipped Status
sentry-frontend
sentry-frontend
0 0 0 0 451 0 ✅ Unchanged

⚙️ sentry-frontend Snapshot Settings

Adds the treatment-only fifth SCM onboarding step between platform/features
and SDK setup, preserving the four-step control flow. The messaging
destination slot persists in the onboarding session and survives refresh,
Back, and repository/platform changes.

Revalidation of a restored destination is stacked separately: nothing can
write a `selected` destination until VDY-143 adds the picker.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Frontend Automatically applied to PRs that change frontend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant