Commit Graph

  • 652061f55d fix(api): requireRoleOrSuperUser for /admin/* routes (GRO-412) groombook-engineer[bot] 2026-04-03 00:49:01 +00:00
  • 6307ce8bdc feat(api): auth provider CRUD endpoints + test-connection (GRO-388) groombook-engineer[bot] 2026-04-03 00:40:26 +00:00
  • 802d12e885 fix(oobe): remove unused catch variable in setup.ts (GRO-392) groombook-engineer[bot] 2026-04-02 21:05:26 +00:00
  • 98508af01f fix(oobe): add test connection endpoint and fix EOF newline (GRO-392) groombook-engineer[bot] 2026-04-02 21:01:33 +00:00
  • cd1b979747 feat(oobe): add conditional auth provider bootstrap step (GRO-392) groombook-engineer[bot] 2026-04-02 20:48:08 +00:00
  • 7e584effaa feat(api): auth provider CRUD endpoints + test-connection (GRO-388) groombook-ceo[bot] 2026-04-03 01:26:29 +00:00
  • 1044cdfec3 fix(api): correct transaction mock closing bracket in authProvider test groombook-engineer[bot] 2026-04-03 00:55:42 +00:00
  • 63c829bfd3 feat(api): auth provider CRUD endpoints + test-connection (GRO-388) groombook-engineer[bot] 2026-04-02 21:50:40 +00:00
  • 9a638c2798 fix(web): services toggle + devFetch guard (GRO-404, GRO-406) groombook-qa[bot] 2026-04-02 20:20:19 +00:00
  • b504dde020 Merge branch 'main' into fix/gro-404-services-toggle groombook-ceo[bot] 2026-04-02 20:09:51 +00:00
  • 883af15fbe feat(api): DB-first auth config loading with env-var fallback (GRO-389) groombook-engineer[bot] 2026-04-02 19:58:17 +00:00
  • 321bd90249 fix(web): remove early-return guard from devFetch interceptor (GRO-406) groombook-engineer[bot] 2026-04-02 18:02:02 +00:00
  • 3216fd2ee5 fix(web): replace services badge+button with toggle switch (GRO-404) groombook-engineer[bot] 2026-04-02 17:53:35 +00:00
  • ed439fc82b feat(db): auth_provider_config table + AES-256-GCM encryption helpers groombook-cto[bot] 2026-04-02 17:49:33 +00:00
  • 02bc0d2c1b fix(db): add missing image and logoKey schema fields to match migrations groombook-engineer[bot] 2026-04-02 17:38:29 +00:00
  • a2afc975c1 fix(gro-405): devFetch interceptor runs in deployed dev builds groombook-engineer[bot] 2026-04-02 17:34:18 +00:00
  • f4acf5be23 feat(db): auth_provider_config table + AES-256-GCM encryption helpers groombook-engineer[bot] 2026-04-02 17:16:35 +00:00
  • 83704b9777 feat(gro-397): migrate logo storage from base64-in-DB to S3 object storage groombook-ceo[bot] 2026-04-02 17:10:54 +00:00
  • 391c5b70d9 fix(e2e): resolve remaining 2 E2E test failures groombook-engineer[bot] 2026-04-02 15:48:21 +00:00
  • 06e1ea0cb9 fix(e2e): resolve remaining E2E test failures per CTO review groombook-engineer[bot] 2026-04-02 14:52:09 +00:00
  • 328cc9cc74 fix(e2e): resolve E2E test failures groombook-engineer[bot] 2026-04-02 14:38:27 +00:00
  • aedf3b5265 fix(assets): remove minimax-output tracking and backup file groombook-engineer[bot] 2026-04-02 14:29:41 +00:00
  • 7b208bbedb Merge main into feat/gro-395-demo-assets groombook-engineer[bot] 2026-04-02 13:32:14 +00:00
  • 43116b50cc fix(e2e): resolve 9 E2E test failures groombook-engineer[bot] 2026-04-02 13:20:36 +00:00
  • 004e23f8bc fix(api): enforce requireSuperUser on settings PATCH and fix dev-mode auth bypass (#206) groombook-engineer[bot] 2026-04-02 12:57:56 +00:00
  • 28ed09b33d fix(api): add 404 guard when logo confirm returns no rows groombook-engineer[bot] 2026-04-02 12:44:14 +00:00
  • 71a6623da2 fix(db): add image: null to Pet factory groombook-engineer[bot] 2026-04-02 12:35:05 +00:00
  • fa5ddc0792 feat(settings): migrate logo storage from base64-in-DB to S3 groombook-engineer[bot] 2026-04-02 12:17:57 +00:00
  • 74571d9f2b feat(demo): expand demo pet images and seed data with diverse breed showcase groombook-engineer[bot] 2026-04-02 12:15:21 +00:00
  • a867be7d55 fix(db): add image column to pets table for demo pet images groombook-engineer[bot] 2026-04-02 11:56:49 +00:00
  • 3d9021913d feat(branding): add GroomBook logo and demo pet images for demo site groombook-engineer[bot] 2026-04-02 11:49:34 +00:00
  • d8d91ab409 fix(web): clear server session on dev login user switch (#205) groombook-ceo[bot] 2026-04-02 01:44:26 +00:00
  • 22475ae8e2 fix(web): unmount CustomerPortal when navigating to /login groombook-engineer[bot] 2026-04-02 01:22:45 +00:00
  • 15fdd1cb5d fix(ci): use --merge instead of --auto --merge for infra PR groombook-engineer[bot] 2026-04-02 01:17:19 +00:00
  • 5a09290d9f fix(db): move impersonation TRUNCATE before staff upsert to avoid FK violation groombook-engineer[bot] 2026-04-02 01:03:36 +00:00
  • 1e9b463d14 fix(e2e): mock /api/setup/status to prevent redirect to /setup (#202) groombook-ceo[bot] 2026-04-01 23:38:27 +00:00
  • f2a7deba9f Merge branch 'main' into fix/gro-374-e2e-setup-status-mock groombook-ceo[bot] 2026-04-01 23:30:57 +00:00
  • 850ba3ac9e fix(e2e): mock /api/setup/status to prevent redirect to /setup groombook-engineer[bot] 2026-04-01 23:12:45 +00:00
  • 88170091b7 fix: enable Go to Dashboard button on setup wizard final step groombook-engineer[bot] 2026-04-01 23:08:30 +00:00
  • ee803b4376 fix(db): add impersonation_sessions and audit_logs to seed TRUNCATE chain (#200) groombook-engineer[bot] 2026-04-01 21:24:58 +00:00
  • 84097e57e4 fix: enable Go to Dashboard button on setup wizard final step (#201) groombook-engineer[bot] 2026-04-01 21:15:06 +00:00
  • 2674bcb2b6 fix(db): add impersonation_sessions and audit_logs to seed TRUNCATE chain groombook-engineer[bot] 2026-04-01 20:18:31 +00:00
  • 60b28dadf9 fix(ui): replace Super User and Status action buttons with inline toggles (#198) groombook-ceo[bot] 2026-04-01 20:06:01 +00:00
  • 361567dc3b Merge branch 'main' into fix/gro-360-yq-compound-assignment groombook-ceo[bot] 2026-04-01 19:56:01 +00:00
  • 82bf7c6078 fix(ui): replace Super User and Status action buttons with inline toggles groombook-engineer[bot] 2026-04-01 19:39:21 +00:00
  • dff11d02be fix(db): seed staff_id FK fix (GRO-369) groombook-engineer[bot] 2026-04-01 14:19:49 +00:00
  • cfa28c64b6 fix(db): add migration 0020 for UNIQUE(name) + align admin seed ON CONFLICT groombook-engineer[bot] 2026-04-01 13:41:18 +00:00
  • 7033cd1d5c fix(db): remove dedup DELETE and use ON CONFLICT (name) for idempotent services seed groombook-engineer[bot] 2026-04-01 13:23:11 +00:00
  • 07263a89fe fix(db): truncate downstream tables before services dedup to avoid FK violation (#197) groombook-engineer[bot] 2026-04-01 13:21:31 +00:00
  • 1c99af07ce fix(db): cast uuid to text for MIN() in services dedup query (GRO-364) groombook-cto[bot] 2026-04-01 12:53:35 +00:00
  • 1c30febc6d Merge branch 'main' into fix/gro-360-yq-compound-assignment groombook-cto[bot] 2026-04-01 12:46:01 +00:00
  • 89b522b9c9 feat(e2e): add Playwright E2E test suite for critical user journeys (GRO-306) groombook-cto[bot] 2026-04-01 12:37:44 +00:00
  • e1f6b7a9cb Merge branch 'main' into feature/gro-306-playwright-e2e-suite groombook-engineer[bot] 2026-04-01 12:29:41 +00:00
  • 1ddf996f26 fix(db): idempotent services seed — no more duplicate services groombook-engineer[bot] 2026-04-01 12:28:35 +00:00
  • 034b733f74 fix(db): cast uuid to text for MIN() in services dedup query (GRO-364) groombook-engineer[bot] 2026-04-01 12:25:43 +00:00
  • 9f160b6d14 Merge branch 'main' into fix/gro-301-duplicate-services groombook-cto[bot] 2026-04-01 12:22:34 +00:00
  • ef403a0aa4 fix(ci): replace yq //= with expanded form (.field // default) (GRO-360) groombook-cto[bot] 2026-04-01 12:13:40 +00:00
  • 63100f07de fix(ci): replace yq //= with expanded form (.field // default) groombook-engineer[bot] 2026-04-01 10:57:27 +00:00
  • 57382b10ec fix(portal): prevent /login redirect for client dev users (GRO-354) groombook-engineer[bot] 2026-04-01 10:35:46 +00:00
  • 66024d2e77 fix(ci): export SHORT_SHA for yq env() + fix(db): deterministic staff IDs (GRO-352, GRO-355) groombook-engineer[bot] 2026-04-01 10:21:41 +00:00
  • 5587866eea Merge pull request #191 from groombook/fix/gro-309-landing-page-redirect groombook-ceo[bot] 2026-04-01 03:50:40 +00:00
  • 6277b1c427 Merge remote-tracking branch 'origin/main' into fix/gro-309-landing-page-redirect Barkley Trimsworth 2026-04-01 03:43:40 +00:00
  • 12f9e1a608 chore(e2e): skip admin-reports test due to data dependency Flea Flicker 2026-03-31 08:21:55 +00:00
  • 858f0c58f4 fix(e2e): make admin-reports test lenient for empty dev data Flea Flicker 2026-03-31 08:11:12 +00:00
  • f4f1f02681 fix(e2e): use ESM imports instead of require() for fs module Flea Flicker 2026-03-31 08:01:01 +00:00
  • 627bb8dfed fix(vitest): exclude node_modules and type tests from test discovery Flea Flicker 2026-03-31 07:51:47 +00:00
  • 6c5c39ddaf fix(e2e): exclude e2e tests from vitest to prevent version conflict Flea Flicker 2026-03-31 07:49:26 +00:00
  • 2d7502e9f4 chore: update pnpm lockfile for @playwright/test Flea Flicker 2026-03-31 07:46:04 +00:00
  • 14b6539d7b fix(e2e): skip tests dependent on GRO-300/GRO-301, fix locator strictness Flea Flicker 2026-03-31 01:22:56 +00:00
  • fa9aa5cff1 feat(e2e): add Playwright E2E test suite for critical user journeys (GRO-306) Flea Flicker 2026-03-30 18:08:15 +00:00
  • cc8a33d9fd chore: trigger CI pipeline Flea Flicker 2026-03-30 12:27:50 +00:00
  • 50702b9abd chore: retrigger CI for PR review groombook-ci[bot] 2026-03-30 12:07:35 +00:00
  • dca252de6b ci: trigger CI run for PR 176 groombook-ci[bot] 2026-03-30 11:54:07 +00:00
  • 195015c644 ci: trigger build groombook-ci[bot] 2026-03-30 10:56:01 +00:00
  • b55496fdde fix(portal): remove unused sessionAttempted state variable Barkley Trimsworth 2026-03-31 21:21:52 +00:00
  • 5dd76aa51f fix(db): preserve serviceIds array for appointment lookups Barkley Trimsworth 2026-03-31 18:40:51 +00:00
  • 3c5394abef fix(db): use deterministic service IDs and add deduplication step Barkley Trimsworth 2026-03-31 18:38:33 +00:00
  • 2fd86d0636 fix(api): use UTC in reports date helpers — reports show no data (GRO-302) groombook-engineer[bot] 2026-03-31 19:47:30 +00:00
  • df32509186 fix(portal): remove sessionAttempted from redirect condition (GRO-309) Barkley Trimsworth 2026-03-31 18:45:08 +00:00
  • d4bdca5616 fix(db): restore serviceIds array used in appointment seed lookups Barkley Trimsworth 2026-03-31 18:43:35 +00:00
  • 6974ca88a8 fix(db): use deterministic service IDs and add deduplication step Barkley Trimsworth 2026-03-31 18:38:33 +00:00
  • 991660405d fix(portal): prevent Dashboard redirect during impersonation session load Barkley Trimsworth 2026-03-31 17:43:00 +00:00
  • fdc324d445 fix(portal): remove stray } in logo data URL and restore Dashboard redirect Barkley Trimsworth 2026-03-31 17:29:57 +00:00
  • fa92a65a35 fix(portal): revert Dashboard redirect to show message instead groombook-engineer[bot] 2026-03-31 17:12:42 +00:00
  • 49aa6ac989 fix(portal): prevent premature redirect with sessionAttempted flag groombook-engineer[bot] 2026-03-31 16:54:22 +00:00
  • 7443b66739 fix(e2e): remove portal/me mock entirely - not needed for impersonation tests groombook-engineer[bot] 2026-03-31 16:00:58 +00:00
  • 50f3c961ff fix(e2e): simplify impersonation mocks - remove dead POST/dev-session mock, use broader portal/me pattern groombook-engineer[bot] 2026-03-31 15:45:04 +00:00
  • 1eb274198c fix(e2e): revert portal/dev-session mock to flat ImpersonationSession groombook-engineer[bot] 2026-03-31 15:15:35 +00:00
  • 6e6336e6ba fix(e2e): correct portal/dev-session mock structure for impersonation tests groombook-engineer[bot] 2026-03-31 05:28:18 +00:00
  • 0d610f5114 fix(ci): use unique Job names per deploy to prevent Flux immutability errors (GRO-311) groombook-engineer[bot] 2026-03-31 02:29:35 +00:00
  • 6f3e6b9bd9 fix(e2e): add portal session mocks to impersonation tests Barkley Trimsworth 2026-03-31 01:16:17 +00:00
  • 5860d822cf fix(portal): redirect unauthenticated users to login — never show portal chrome (GRO-309) Barkley Trimsworth 2026-03-31 00:53:59 +00:00
  • 026a2c8b0e fix(portal): wire dev client login to portal session groombook-ceo[bot] 2026-03-30 18:25:01 +00:00
  • 4fb0c7b14d fix(api): use valid staff ID for dev-session impersonation Barkley Trimsworth 2026-03-30 18:09:09 +00:00
  • 08e2f8c1ab fix(web): add missing PWA icon and favicon assets Barkley Trimsworth 2026-03-30 17:10:58 +00:00
  • 51431c7bc1 fix(portal): wire dev client login to portal session Barkley Trimsworth 2026-03-30 17:07:49 +00:00
  • 853c55fd04 fix(staff): count only active super users in last-super-user guardrail Barkley Trimsworth 2026-03-30 14:50:50 +00:00
  • 40143c4efa fix(db): seed ON CONFLICT target uses clients.id instead of non-unique clients.email groombook-engineer[bot] 2026-03-30 14:44:38 +00:00
  • b385b32120 fix(db): guarantee 5 UAT test clients with pending invoices (GRO-290) groombook-ceo[bot] 2026-03-30 13:40:15 +00:00
  • f572e0a8f8 fix(ci): use valid GitHub Actions expression syntax for SHA Paperclip 2026-03-30 13:35:47 +00:00