feat(FN-1862): add completion state tracking for onboarding

- Add markOnboardingCompleted() to set completedAt timestamp when user finishes onboarding
- Add isOnboardingCompleted() to check if onboarding was completed (vs dismissed)
- Update ModelOnboardingModal to call markOnboardingCompleted on successful completion
- Skip onboarding auto-open when already completed locally
- Add completion state tracking tests in ModelOnboardingModal.test.tsx
- Add model-onboarding-state unit tests
- Update useAuthOnboarding to check local completion state before auto-opening
- Document localStorage completion state tracking pattern in .fusion/memory.md
This commit is contained in:
Fusion
2026-04-14 23:44:40 -07:00
committed by gsxdsm
parent 6d685a542b
commit a51e75941c
49 changed files with 572 additions and 196 deletions

View File

@@ -102,13 +102,12 @@ export function ProjectOverview({
case "name":
comparison = a.project.name.localeCompare(b.project.name);
break;
case "activity": {
case "activity":
const aTime = a.project.lastActivityAt || a.health?.lastActivityAt || a.project.updatedAt;
const bTime = b.project.lastActivityAt || b.health?.lastActivityAt || b.project.updatedAt;
comparison = new Date(bTime).getTime() - new Date(aTime).getTime();
break;
}
case "status": {
case "status":
const statusOrder: Record<ProjectStatus, number> = {
errored: 0,
initializing: 1,
@@ -117,7 +116,6 @@ export function ProjectOverview({
};
comparison = statusOrder[a.project.status] - statusOrder[b.project.status];
break;
}
}
return sortDirection === "asc" ? comparison : -comparison;