Théo LAGACHE
b1b2e33839
refactor(database): reorganize into actions/components/schemas
2026-06-23 16:06:14 +02:00
Théo LAGACHE
41a3b29053
refactor(channel): reorganize into components/schemas, nest notifications+storages under components
2026-06-23 16:06:10 +02:00
Théo LAGACHE
d0dafdadc7
refactor(auth): reorganize into actions/components/schemas
2026-06-23 16:06:08 +02:00
Théo LAGACHE
b9d9f42ec7
refactor(agents): reorganize into actions/components/schemas/hooks
2026-06-23 16:06:07 +02:00
Théo LAGACHE and Claude Haiku 4.5
0dfbe39ccd
Task 2: Add migration script for features directory reorganization
...
Creates scripts/migrate-features.sh with the complete migration logic
that will reorganize src/features/* into actions/components/schemas/hooks/types/utils
subdirectories following the onboarding pattern established in Task 1.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com >
2026-06-23 16:03:03 +02:00
Théo LAGACHE
87fe60f82a
chore: checkpoint before features reorganization
2026-06-23 16:00:22 +02:00
Théo LAGACHE and Claude Sonnet 4.6
7c9b38b1eb
fix(settings): make avatar selector, dicebear picker and tab bar responsive
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-23 13:46:18 +02:00
Théo LAGACHE
866bc76475
fix
2026-06-23 11:34:20 +02:00
Théo LAGACHE
fd41f7ea50
fix
2026-06-22 16:56:17 +02:00
Théo LAGACHE
1b3f972bc8
add: onboarding
2026-06-22 10:52:42 +02:00
Théo LAGACHE and Claude Sonnet 4.6
68cd89fbe1
fix(onboarding): address final review findings — atomicity, scheduling guard, apply-all recovery, client validation
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 15:49:46 +02:00
Théo LAGACHE
fc42afe89e
docs(sdd): append hotfix summary for applyMutation and list keys
2026-06-19 15:41:27 +02:00
Théo LAGACHE and Claude Sonnet 4.6
a6e528d12b
fix(onboarding): wire applyMutation.mutateAsync everywhere and stabilize list keys
...
Fix 1 (Critical): Replace all 5 direct applyOnboardingDbSettingsAction calls with
applyMutation.mutateAsync throughout the component. Removed result.success guards
since mutateAsync throws on error (handled by onError hook). Affected locations:
- handleApplyToAll loop
- Retention section onSave
- Scheduling section onSave
- Notifications section onSave
- Storage section onSave
Fix 2 (Minor): Replace unstable index-based keys with policy.channelId fallback in
NotificationsSection and StorageSection card maps.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 15:41:14 +02:00
Théo LAGACHE and Claude Sonnet 4.6
d309faf819
feat(onboarding): rewrite step-db-settings with three-level phase navigation and full policy persistence
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 15:37:33 +02:00
Théo LAGACHE and Claude Sonnet 4.6
eda3c574c3
feat(onboarding): add BackupScheduleSelector component
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 15:32:20 +02:00
Théo LAGACHE and Claude Sonnet 4.6
0d3135af94
feat(onboarding): add applyOnboardingDbSettingsAction server action
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 15:29:29 +02:00
Théo LAGACHE and Claude Sonnet 4.6
870410efbf
feat(onboarding): extend OnboardingDbSettings with retention, schedule, and policy fields
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 15:26:55 +02:00
Théo LAGACHE
0e4b5585e3
style(onboarding): replace button opacity flash with specific spinner animation on db select
2026-06-19 14:57:41 +02:00
Théo LAGACHE
36ed2e102c
feat(onboarding): auto-save database selections on project create instantly
2026-06-19 14:56:14 +02:00
Théo LAGACHE
57122cf149
refactor(onboarding): skip db settings entirely if no database is selected in project create
2026-06-19 14:53:36 +02:00
Théo LAGACHE
b0abc71ee6
fix(onboarding): do not skip db settings if agent is connected but no databases found
2026-06-19 14:51:17 +02:00
Théo LAGACHE
50f7fb17e8
fix(onboarding): skip db-settings step if no database is found on the agent
2026-06-19 14:44:32 +02:00
Théo LAGACHE
ec07424ddf
feat(onboarding): compute edgeKey directly on the server side to avoid lazy loading
2026-06-19 14:33:59 +02:00
Théo LAGACHE
972e8b1a83
refactor(onboarding): remove duplicate generate-edge-key action and use core utility directly
2026-06-19 14:26:05 +02:00
Théo LAGACHE
1bcf7e353e
fix(onboarding): correctly show select placeholder when default value does not exist in the list
2026-06-19 14:21:34 +02:00
Théo LAGACHE
9d0a0f8529
fix(onboarding): skip default step if no notifiers and storages exist when advancing from storage step
2026-06-19 14:18:41 +02:00
Théo LAGACHE
37ed654dc9
fix(onboarding): completely hide back button on the first step instead of disabling it
2026-06-19 14:14:14 +02:00
Théo LAGACHE
06000c4e2a
style(onboarding): improve empty auth state UI with lucide icon and better layout
2026-06-19 14:03:49 +02:00
Théo LAGACHE
a10ef50bcf
feat(onboarding): replace tabs with single form and multiple buttons for auth choice
2026-06-19 13:57:10 +02:00
Théo LAGACHE
69f500237a
feat(onboarding): allow user to choose between passkey and password during registration if both are enabled
2026-06-19 13:54:33 +02:00
Théo LAGACHE
9873cd747d
fix(onboarding): skip default step when going back from agent-create if no notifiers and storages exist
2026-06-19 13:45:46 +02:00
Théo LAGACHE
0a1f509e3f
fix(onboarding): skip intermediate agent steps when going back from project-create to agent-create
2026-06-19 13:43:14 +02:00
Théo LAGACHE
3b49fc5a86
fix(onboarding): allow going from agent-create to project-create if a project already exists
2026-06-19 13:33:06 +02:00
Théo LAGACHE
ecc3747a30
fix(onboarding): redirect to agent-create if project exists but no agent is found
2026-06-19 13:31:21 +02:00
Théo LAGACHE
6d6b2c0980
fix(onboarding): resume at db-settings instead of finish if no database exists for the project
2026-06-19 13:30:03 +02:00
Théo LAGACHE
4f58488c66
fix(onboarding): properly resolve onboarding state, remove redirect trap in step-defaults, block waiting flash
2026-06-19 13:26:47 +02:00
Théo LAGACHE
a140492688
fix(onboarding): correct resume steps and skip agent-waiting flash when agent is connected
2026-06-19 12:04:48 +02:00
Théo LAGACHE
d5aa90a7d9
fix(theme): use current theme as fallback in preferences, prevent session override of localStorage
2026-06-19 11:47:47 +02:00
Théo LAGACHE
7674ff4625
fix(theme): sync user theme from DB on all routes, not only dashboard
2026-06-19 11:43:05 +02:00
Théo LAGACHE
8f413d0e1d
fix(onboarding): recalculate progress bar from full STEP_ORDER position
2026-06-19 11:35:55 +02:00
Théo LAGACHE
57e78e0929
fix(onboarding): persist theme to db on selection in StepPreferences
2026-06-19 11:34:03 +02:00
Théo LAGACHE
4dbf844272
docs: add onboarding theme & progress bar implementation plan
2026-06-19 11:24:22 +02:00
Théo LAGACHE
86d32f3d6a
docs: add onboarding theme persistence & progress bar fix spec
2026-06-19 11:21:54 +02:00
Théo LAGACHE and Claude Sonnet 4.6
0e780113de
refactor(onboarding): extract useMarkOnboardingDone hook, remove .gitkeep files
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 11:01:15 +02:00
Théo LAGACHE and Claude Sonnet 4.6
8d64376a56
refactor(onboarding): extract useAgentStatus and useGenerateEdgeKey hooks
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 10:56:46 +02:00
Théo LAGACHE and Claude Sonnet 4.6
e044833d20
refactor(onboarding): extract useAddStorage and useRemoveStorage hooks
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 10:54:01 +02:00
Théo LAGACHE and Claude Sonnet 4.6
aed8ecb53d
refactor(onboarding): extract useAddNotifier and useRemoveNotifier hooks
...
Move notification channel add/remove logic from step-notifier.tsx into
dedicated useMutation hooks; step now reads notifiers from context and
delegates UI side-effects via per-call onSuccess callbacks.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 10:49:44 +02:00
Théo LAGACHE and Claude Sonnet 4.6
e498aaf920
refactor(onboarding): extract useUpdateAccount hook
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 10:45:15 +02:00
Théo LAGACHE
7b097c95c8
fix(onboarding): use narrowed createData.value in use-create-org
2026-06-19 10:42:21 +02:00
Théo LAGACHE and Claude Sonnet 4.6
1fc04d3b0b
fix(onboarding): trim project name, standardize error narrowing in org/project hooks
...
- use-create-project.ts: Add trimming of project name at mutation start and validate empty name
- use-create-project.ts: Replace all name references with trimmed value in action calls and context updates
- use-create-org.ts: Standardize error narrowing by extracting result.data to local variables instead of using 'as' casts
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 10:40:25 +02:00
Théo LAGACHE and Claude Sonnet 4.6
afd0894c24
refactor(onboarding): extract useCreateOrg and useCreateProject hooks
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 10:37:12 +02:00
Théo LAGACHE and Claude Sonnet 4.6
8c1025ece9
refactor(onboarding): extract useCreateAgent and useDeleteAgent hooks
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 10:31:21 +02:00
Théo LAGACHE and Claude Sonnet 4.6
808e60557b
refactor(onboarding): move types, constants, schemas to sub-directories
...
- Rename onboarding.types.ts → types/index.ts
- Create constants/steps.ts with STEP_IDS and STEP_ORDER
- Create schemas/account.schema.ts with BaseSchema and WithPasswordSchema
- Update onboarding-shell.tsx to import STEP_ORDER from constants
- Update step-account-info.tsx to import schemas from schemas/account.schema
- Migrate 14 files from @/features/onboarding/onboarding.types → @/features/onboarding/types
- Fix missed import in app/(welcome)/welcome/onboarding-client.tsx
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 10:25:17 +02:00
Théo LAGACHE and Claude Sonnet 4.6
f07ff1a28c
docs: add onboarding refactor implementation plan
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 10:20:19 +02:00
Théo LAGACHE and Claude Sonnet 4.6
352abb8a95
docs: add onboarding refactor design spec
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-19 10:14:44 +02:00
Théo LAGACHE
aef1c7b8fb
feat(onboarding): show Next button in shell when navigating backwards
2026-06-18 16:04:39 +02:00
Théo LAGACHE
fc63923d85
feat(onboarding): remove org logo upload — orgs have no logo
2026-06-18 16:02:17 +02:00
Théo LAGACHE and Claude Sonnet 4.6
b0e23f336d
feat(onboarding): theme applied dynamically via setTheme, avatar saved to user.image
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 16:00:30 +02:00
Théo LAGACHE and Claude Sonnet 4.6
1f3e36ce56
fix(onboarding): verify session after passkey registration, fallback to signIn.passkey()
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 15:57:26 +02:00
Théo LAGACHE
73179e4d0b
fix(onboarding): step-login — add next to useEffect deps, default emailPasswordEnabled to false
2026-06-18 15:54:13 +02:00
Théo LAGACHE and Claude Sonnet 4.6
18282ede01
feat(onboarding): login — auto-advance if session, callbackURL on SSO, hide email/pw when disabled, empty state
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 15:52:19 +02:00
Théo LAGACHE
a395f15ba5
feat(onboarding): agent-waiting step is now skippable
2026-06-18 15:49:39 +02:00
Théo LAGACHE and Claude Sonnet 4.6
5ac7d86b6d
feat(onboarding): DB-driven resume — query notifiers/storages, check agent lastContact
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 15:47:04 +02:00
Théo LAGACHE
eaf1391601
feat(onboarding): add emailPasswordEnabled to meta, remove logoDataUrl from org
2026-06-18 15:44:02 +02:00
Théo LAGACHE
177455db43
chore(onboarding): delete mock/cookie/preview/sso-gate files — replaced by real implementation
2026-06-18 12:17:42 +02:00
Théo LAGACHE
0fb060e2da
feat(onboarding): page.tsx uses resolveOnboardingState — server-driven resume
2026-06-18 12:10:30 +02:00
Théo LAGACHE
4b5367a456
feat(onboarding): wire steps — add login + agent-key, remove sso-gate
2026-06-18 12:08:16 +02:00
Théo LAGACHE
211d69c846
feat(onboarding): step-project-create uses real action + real DBs from flowData
2026-06-18 12:05:42 +02:00
Théo LAGACHE
4e5913b0d9
feat(onboarding): add step-agent-key with edgeKey generation via server action
2026-06-18 12:01:21 +02:00
Théo LAGACHE
32cf64eebe
feat(onboarding): step-agent-waiting polls real agent lastContact via useQuery
2026-06-18 11:58:18 +02:00
Théo LAGACHE
3d1b0aa659
feat(onboarding): step-agent-create calls real createAgentAction + findOrCreate
2026-06-18 11:54:38 +02:00
Théo LAGACHE
49924d9dd9
feat(onboarding): notifier + storage steps call real actions + findOrCreate on back
2026-06-18 11:52:12 +02:00
Théo LAGACHE
4ea5babba6
fix(onboarding): step-org-create — simplify error handling, throw on empty name
2026-06-18 11:39:18 +02:00
Théo LAGACHE
19776344a3
feat(onboarding): step-org-create calls real createOrganizationAction
2026-06-18 11:36:54 +02:00
Théo LAGACHE
c1b4c04a9a
feat(onboarding): step-security reads passkeyEnabled from flowData.meta
2026-06-18 11:33:27 +02:00
Théo LAGACHE
9cdcfb4d3f
feat(onboarding): avatar API route (next/og) + AvatarPicker in preferences step
2026-06-18 11:30:59 +02:00
Théo LAGACHE
358b583634
feat(onboarding): step-account-info — firstName/lastName, conditional password, findOrCreate
2026-06-18 11:25:49 +02:00
Théo LAGACHE
17b9d1da02
fix(onboarding): step-login — conform to global mutation pattern, handle SSO errors
2026-06-18 11:22:26 +02:00
Théo LAGACHE
642e6c7fde
feat(onboarding): add step-login replacing sso-gate
2026-06-18 11:20:21 +02:00
Théo LAGACHE
082539df12
feat(onboarding): replace preview panel with stepper checklist
2026-06-18 11:05:36 +02:00
Théo LAGACHE
5c1b247ee5
style(onboarding): add branding to shell, fix progress bar full width
2026-06-18 11:05:30 +02:00
Théo LAGACHE and Claude Sonnet 4.6
a50c668db7
fix(onboarding): remove unused imports from onboarding-state.ts
...
Removed getOrganizationChannels and getOrganizationStorageChannels imports that were never used in the file.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 11:03:38 +02:00
Théo LAGACHE
b79d039a03
feat(onboarding): add resolveOnboardingState server function
2026-06-18 11:01:53 +02:00
Théo LAGACHE and Claude Sonnet 4.6
9183d6dfcb
feat(onboarding): add settings.onboarding column + markOnboardingDoneAction
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 10:57:25 +02:00
Théo LAGACHE and Claude Sonnet 4.6
eade74be6e
feat(onboarding): update type system — meta, firstName/lastName, org.id, databases
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-18 10:53:07 +02:00
Théo LAGACHE and Claude Sonnet 4.6
18e7a96754
feat(onboarding): skip agent-waiting/project-create/db-settings when no agents created
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 10:24:49 +02:00
Théo LAGACHE and Claude Sonnet 4.6
647905da09
style(onboarding): restyle DB toggle buttons in project-create step to org-combobox card style
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 10:24:26 +02:00
Théo LAGACHE and Claude Sonnet 4.6
51317b0d08
style(onboarding): restyle theme toggles in preferences step to org-combobox card style
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 10:24:10 +02:00
Théo LAGACHE and Claude Sonnet 4.6
34cce3b07d
style(onboarding): restyle security method choice to org-combobox card style
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 10:23:47 +02:00
Théo LAGACHE and Claude Sonnet 4.6
9dcde769c7
style(onboarding): restyle sso-gate provider buttons to org-combobox card style
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 10:23:30 +02:00
Théo LAGACHE and Claude Sonnet 4.6
acc60f7d69
feat(onboarding): add two-phase config flow and org-combobox style to storage step
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 10:20:25 +02:00
Théo LAGACHE and Claude Sonnet 4.6
b34267ae19
fix(onboarding): prevent duplicate notifier providers and guard Continue button
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 10:18:23 +02:00
Théo LAGACHE and Claude Sonnet 4.6
fa5307c875
feat(onboarding): add two-phase config flow and org-combobox style to notifier step
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 10:10:06 +02:00
Théo LAGACHE and Claude Sonnet 4.6
2d223b72c5
feat(onboarding): extend OnboardingChannel with name and config fields
...
Add 'name' (user-visible channel name) and 'config' (provider-specific settings)
fields to OnboardingChannel type to support two-phase configuration flow.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 10:05:47 +02:00
Théo LAGACHE and Claude Sonnet 4.6
ed3ae9445a
docs(onboarding): add implementation plan for channel config flow and style refactor
...
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 10:03:26 +02:00
Théo LAGACHE
ca4b0fed9e
docs: add conditional step skip when no agents to spec
2026-06-17 09:56:22 +02:00
Théo LAGACHE
40da44a03d
docs: add onboarding channel config + style refactor spec
2026-06-17 09:54:23 +02:00
Théo LAGACHE and Claude Sonnet 4.6
8b97a90fb9
fix(onboarding): call next() in finish step so onFlowComplete fires and cookie is written
...
StepFinish was calling router.push() directly, bypassing the next() call that
triggers onFlowComplete in OnboardingClient, preventing the onboarding-done
cookie from being written and causing infinite redirect loops.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com >
2026-06-17 09:46:52 +02:00
Théo LAGACHE
6e8a8ca1d7
feat(onboarding): gate landing, auth and dashboard routes behind onboarding cookie
2026-06-17 09:40:59 +02:00
Théo LAGACHE
49a6d6777a
feat(onboarding): add /welcome route
2026-06-17 09:39:22 +02:00