Simpl-Resultat/src/services
le king fu 64a07f359f feat(onboarding): visit steps, eight rows, "Got it" and one-time initialization
Two visit steps join the getting-started path: "Browse categories and
keywords" (5th) and "Browse the reports" (8th). Nothing in the database
counts them: they are done by "Got it" on their card, stored as
onboarding_acknowledged_<key> in user_preferences (no migration).

- computeChecklist: eight rows; the visit rows are locked until the
  profile's visit steps are initialized, so a finished path does not
  flash a "Next step" before they are marked done.
- initializeVisitSteps: once per profile, after the first successful
  load with the Budget entitlement known; acknowledges both steps when
  every other step is done or skipped, then sets the flag. No
  transaction (D16): idempotent writes, the flag last.
- Reducer: ACKNOWLEDGE wins over an older snapshot like SKIP but keeps
  the card latch, so the card says "Done." and offers the next step.
- StepCard: "Got it" before "Skip this step" when onAcknowledge is
  given; OnboardingStepCard passes it for a visit step.
- Banner counter, card rank and end of path wait for
  budgetReady && visitStepsInitialized; the list shows the visit rows
  "pending" until then.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-13 21:32:20 -04:00
..
adjustmentService.ts feat: add Budget and Adjustments pages with full functionality 2026-02-12 00:58:43 +00:00
authService.ts feat: settings banner when OAuth tokens fall back to file store (#81) 2026-04-14 08:18:41 -04:00
balance.service.test.ts fix(db): keep the lock-free path for the transaction handle only 2026-10-12 19:28:36 -04:00
balance.service.ts fix(db): keep the lock-free path for the transaction handle only 2026-10-12 19:28:36 -04:00
budgetService.test.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
budgetService.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
categorizationService.test.ts feat(onboarding): Transactions card suggests Add as keyword, Budget card names leaves and the Annual column 2026-10-13 21:12:25 -04:00
categorizationService.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
categoryBackupService.test.ts fix(export): preserve import sources and templates across data export/import 2026-08-14 10:58:52 -04:00
categoryBackupService.ts fix(export): preserve import sources and templates across data export/import 2026-08-14 10:58:52 -04:00
categoryMappingService.test.ts test(categories): complete test coverage for migration flow (#123) 2026-04-21 19:25:13 -04:00
categoryMappingService.ts feat(categories): add categoryMappingService (4-pass algo) (#119) 2026-04-20 21:01:55 -04:00
categoryMigrationService.test.ts feat(categories): merge custom categories into the standard taxonomy (#259) 2026-07-19 19:43:47 +00:00
categoryMigrationService.ts feat(categories): merge custom categories into the standard taxonomy (#259) 2026-07-19 19:43:47 +00:00
categoryRestoreService.test.ts feat(categories): add restore backup banner and permanent restore action (#122) 2026-04-20 21:47:43 -04:00
categoryRestoreService.ts feat(categories): add restore backup banner and permanent restore action (#122) 2026-04-20 21:47:43 -04:00
categoryService.ts feat(categories): add v1 IPC seed, i18n keys, and migration v8 (#115) 2026-04-19 16:41:55 -04:00
categoryTaxonomyService.test.ts feat(categories): add categoryTaxonomyService + useCategoryTaxonomy hook (#116) 2026-04-20 20:53:15 -04:00
categoryTaxonomyService.ts feat(categories): add categoryTaxonomyService + useCategoryTaxonomy hook (#116) 2026-04-20 20:53:15 -04:00
dashboardService.test.ts feat(dashboard): converge home page on the Cartes report model 2026-07-11 17:13:23 -04:00
dashboardService.ts feat(dashboard): converge home page on the Cartes report model 2026-07-11 17:13:23 -04:00
dataEvents.test.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
dataEvents.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
dataExportService.test.ts test(data): pin each restore's notification after the DB lock 2026-10-08 21:05:14 -04:00
dataExportService.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
db.test.ts fix(profiles): follow-ups of the review of PR #436 2026-10-13 19:57:29 -04:00
db.ts fix(profiles): follow-ups of the review of PR #436 2026-10-13 19:57:29 -04:00
entitlements.test.ts feat(license): online revocation check — a revoked key falls back to Free (#365) 2026-10-02 14:45:34 -04:00
feedbackService.test.ts feat: feedback hub widget in Settings Logs card (#67) 2026-04-17 14:36:26 +00:00
feedbackService.ts feat: feedback hub widget in Settings Logs card (#67) 2026-04-17 14:36:26 +00:00
importConfigTemplateService.ts fix(import): persist the import format and restore it faithfully 2026-08-13 13:16:52 -04:00
importedFileService.test.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
importedFileService.ts fix(onboarding): count an import only once the file brought a transaction 2026-10-08 21:05:14 -04:00
importSourceService.test.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
importSourceService.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
licenseService.test.ts fix(license): drop an activation token that no longer stands for this machine 2026-10-04 17:58:25 -04:00
licenseService.ts fix(license): drop an activation token that no longer stands for this machine 2026-10-04 17:58:25 -04:00
logService.test.ts fix(db): serialize DB access to fix "database is locked"; live-update log console 2026-06-30 16:50:39 -04:00
logService.ts fix(db): serialize DB access to fix "database is locked"; live-update log console 2026-06-30 16:50:39 -04:00
onboardingService.test.ts feat(onboarding): visit steps, eight rows, "Got it" and one-time initialization 2026-10-13 21:32:20 -04:00
onboardingService.ts feat(onboarding): visit steps, eight rows, "Got it" and one-time initialization 2026-10-13 21:32:20 -04:00
profileService.ts fix: address reviewer feedback (#54) 2026-04-09 15:46:27 -04:00
reportService.cartes.test.ts fix(reports): thread accountIds into Cartes KPI + seasonality series 2026-07-11 21:16:09 -04:00
reportService.test.ts docs: fix three comments after review of #414 2026-10-12 15:05:44 -04:00
reportService.ts fix(reports): thread accountIds into Cartes KPI + seasonality series 2026-07-11 21:16:09 -04:00
transactionService.test.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
transactionService.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
userPreferenceService.test.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00
userPreferenceService.ts feat(data): announce counter-moving writes on a data-change channel 2026-10-08 07:33:47 -04:00