Commit Graph
100 Commits
Author SHA1 Message Date
Théo LAGACHE 1a210c6de9 fix: default dev password for keycloak refer to env 2026-06-25 15:20:02 +02:00
Théo LAGACHE 45c82f9ef5 Update step-defaults.tsx 2026-06-25 11:47:31 +02:00
Théo LAGACHE 70a551f3e8 fix 2026-06-25 11:43:36 +02:00
Théo LAGACHE 39ae2b8a8d fix: use small destructive button for avatar removal 2026-06-25 11:36:53 +02:00
Théo LAGACHE 4038d43220 fix: move avatar tooltip to top-right badge overlay on avatar 2026-06-25 11:28:34 +02:00
Théo LAGACHE bf70b8f0b5 feat: add avatar reset button and explanatory tooltip on profile page 2026-06-25 11:25:49 +02:00
Théo LAGACHE 1739324ee8 fix: remove stale preferences entry from onboarding checklist 2026-06-25 11:23:09 +02:00
Théo LAGACHEandClaude Sonnet 4.6 d6c9a7d203 feat: remove preferences onboarding step and fix routing
Delete step-preferences.tsx, remove PREFERENCES from step constants, fix
nextStep targets on login/account-info/security to route to org-create instead
of preferences, fix resume step "preferences" → "org-create" in onboarding-state,
and remove avatarMode/dicebearStyle from the defaults object.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 11:14:26 +02:00
Théo LAGACHEandClaude Sonnet 4.6 d653ecd3ea feat: remove avatar mode selector from onboarding defaults step
Clean step-defaults.tsx to only handle notifier and storage selection.
Removed AvatarMode type import, AvatarModeSelector and DicebearStylePicker
components, and avatar-related state management and action calls.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 11:10:35 +02:00
Théo LAGACHEandClaude Sonnet 4.6 4428f46f9d feat: remove avatar mode admin tab and supporting files
Remove the Avatar tab from admin settings UI. Delete 5 supporting files:
- avatar-section.tsx
- avatar-mode-selector.tsx
- dicebear-style-picker.tsx
- avatar.action.ts
- use-dicebear-styles.ts

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 11:07:58 +02:00
Théo LAGACHEandClaude Sonnet 4.6 a4be0561eb feat: remove avatarMode from layout and profile prop chains
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 11:05:13 +02:00
Théo LAGACHEandClaude Sonnet 4.6 3f76f7b604 feat: allow avatar upload regardless of mode
Remove avatarMode prop from AvatarWithUpload and always render the upload
overlay. The upload functionality is now unconditionally available.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 11:02:10 +02:00
Théo LAGACHEandClaude Sonnet 4.6 8d448718d0 feat: simplify resolveAvatarUrl — custom image first, gravatar fallback
Remove settings parameter. Always prefer user.image if available, otherwise
fall back to gravatar with d=404 to trigger AvatarFallback (initials) when
no gravatar exists. Removes support for avatarMode and dicebearStyle.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 11:00:14 +02:00
Théo LAGACHEandClaude Sonnet 4.6 6a975629a5 feat: remove avatarMode/dicebearStyle from DB schema and types
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-06-25 10:52:18 +02:00
Théo LAGACHE 7781caac53 fix 2026-06-24 16:46:44 +02:00
Théo LAGACHE 04c2bc8922 fix 2026-06-24 16:38:09 +02:00
Théo LAGACHE 75dff0cc2c fix 2026-06-24 16:35:56 +02:00
Théo LAGACHE c8a24b53ce Merge branch 'poc/onboarding-setup' of https://github.com/Portabase/portabase into poc/onboarding-setup 2026-06-24 16:24:50 +02:00
Théo LAGACHE 8cf164d229 fix 2026-06-24 16:24:35 +02:00
Théo LAGACHE 7a9784244b Merge branch 'poc/onboarding-setup' of https://github.com/Portabase/portabase into poc/onboarding-setup 2026-06-24 09:07:26 +02:00
Théo LAGACHE bdd191eb93 fix 2026-06-24 09:02:02 +02:00
Théo LAGACHE 8070386172 Merge branch 'poc/onboarding-setup' of https://github.com/Portabase/portabase into poc/onboarding-setup
merge
2026-06-23 18:49:30 +02:00
Théo LAGACHE 4fecbb12f2 fix: onboarding 2026-06-23 18:45:30 +02:00
Théo LAGACHE 3dca8f8f92 fix: update broken imports after features reorganization (double-quote relative imports, channel subdir absolute paths) 2026-06-23 16:09:02 +02:00
Théo LAGACHE df989440ac refactor(users): reorganize into actions/components/schemas 2026-06-23 16:06:29 +02:00
Théo LAGACHE ea5e89a299 refactor(upload): move action to actions/ 2026-06-23 16:06:28 +02:00
Théo LAGACHE 84b0b4b337 refactor(updates): reorganize into components/hooks 2026-06-23 16:06:28 +02:00
Théo LAGACHE 2f83eafa97 refactor(theme): move all components to components/ 2026-06-23 16:06:27 +02:00
Théo LAGACHE 9d1af49b35 refactor(storages): reorganize into types/utils 2026-06-23 16:06:27 +02:00
Théo LAGACHE b04b5ea2ee refactor(statistics): reorganize into components/utils 2026-06-23 16:06:27 +02:00
Théo LAGACHE 36754973c6 refactor(settings): reorganize into actions/components/schemas/hooks 2026-06-23 16:06:26 +02:00
Théo LAGACHE 8c670d57c7 refactor(projects): reorganize into actions/components/schemas 2026-06-23 16:06:24 +02:00
Théo LAGACHE ebb6ba59f3 refactor(profile): reorganize into actions/components/schemas 2026-06-23 16:06:23 +02:00
Théo LAGACHE ca3535bc1c refactor(organizations): reorganize into actions/components/schemas/hooks/utils 2026-06-23 16:06:20 +02:00
Théo LAGACHE 740a58679e refactor(notifications): reorganize into components/types/utils 2026-06-23 16:06:17 +02:00
Théo LAGACHE 80e468b26d refactor(migration): reorganize into actions/components 2026-06-23 16:06:16 +02:00
Théo LAGACHE 0a84fd2f63 refactor(logs): reorganize into components/types 2026-06-23 16:06:16 +02:00
Théo LAGACHE 13ef2a0e6e refactor(layout): move all components to components/ 2026-06-23 16:06:15 +02:00
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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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 LAGACHEandClaude 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