fix: input disable when onboarding org creation#855
fix: input disable when onboarding org creation#855MaheshtheDev wants to merge 4 commits intomainfrom
Conversation
Deploying with
|
| Status | Name | Latest Commit | Updated (UTC) |
|---|---|---|---|
| 🔵 In progress View logs |
supermemory-mcp | 6610fbc | Apr 15 2026, 11:47 PM |
Deploying with
|
| Status | Name | Latest Commit | Preview URL | Updated (UTC) |
|---|---|---|---|---|
| ✅ Deployment successful! View logs |
supermemory-app | daec1a7 | Commit Preview URL | Apr 16 2026, 01:07 AM |
How to use the Graphite Merge QueueAdd the label Main to this PR to add it to the merge queue. You must have a Graphite account in order to use the merge queue. Sign up using this link. An organization admin has enabled the Graphite Merge Queue in this repository. Please do not merge from GitHub as this will restart CI on PRs being processed by the merge queue. This stack of pull requests is managed by Graphite. Learn more about stacking. |
|
Claude finished @MaheshtheDev's task in 1m 46s —— View job PR Review Complete
Overview: This PR disables input during onboarding org creation, prevents double-submissions, and adds "Skip Onboarding" functionality with proper race condition handling. Issues found: None — previously identified issues have been addressed. The race condition flagged by Sentry and the previous review has been correctly fixed in commit
What looks good:
Score: 9/10 Solid implementation with the previously identified edge case now properly addressed. Ready to ship. |
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
There was a problem hiding this comment.
Overview: This PR disables input during onboarding org creation and adds "Skip Onboarding" functionality.
Issues found:
The Sentry bot correctly identified a race condition issue that I've verified:
Race condition in Skip Onboarding handlers (initial-header.tsx:22-26, setup/header.tsx:20-24)
The handleSkip() function calls markOrgOnboarded() then immediately redirects. However, markOrgOnboarded() silently fails if org?.id is falsy (it only logs an error and returns). After org creation, there's a propagation delay before the org context is populated. If the user clicks "Skip Onboarding" during this window, the API call to mark the org as onboarded is skipped while the user is still redirected to "/".
The useOrgOnboarding hook already exposes isLoading: org === null. A fix would be to disable the Skip button until the org context is ready:
const { markOrgOnboarded, isLoading } = useOrgOnboarding()
// In the JSX:
<button
type="button"
onClick={handleSkip}
disabled={isLoading}
className={cn(
"text-sm text-white/40 hover:text-white/70 transition-colors",
isLoading ? "opacity-50 cursor-not-allowed" : "cursor-pointer"
)}
>
Skip Onboarding
</button>What looks good:
- The
submitLockRefpattern inpage.tsxcorrectly prevents double-click race conditions during org creation - Input and button disabled states in
input-step.tsxproperly block interaction during submission - The layout logic to skip the "input" step for users with existing orgs is a good UX improvement
Score: 8/10
Solid implementation with one edge case to address. The race condition won't cause data loss, but it will leave the org in a non-onboarded state while the user believes they've completed onboarding.

No description provided.