Flea Flicker
2069b1332c
feat(GRO-2359): route Authentik new-SSO users into OOBE (web)
...
CI / Test (pull_request) Successful in 19s
CI / Lint & Typecheck (pull_request) Successful in 26s
CI / Build & Push Docker Image (pull_request) Successful in 43s
The post-auth handler in CustomerPortal previously rendered the
"Portal access not configured" card when the SSO bridge returned 404
(no client row for the user's email). That trapped first-time SSO
users on a dead-end screen with no path to portal creation.
This change routes the 404 to a new OOBE component (src/portal/OOBE.tsx)
that drives portal creation:
* Mounts inline inside CustomerPortal so the post-auth flow stays
inside the portal render tree (no App-level router needed).
* Also reachable as a direct deep-link via the new /onboarding route
in App.tsx (for grooming admins or recovery flows).
* Submits to a new POST /api/portal/clients-from-auth endpoint in
groombook-api (companion commit) that creates a fresh client row
bound to the Better Auth email. 409 means the email already has a
portal record — the OOBE shows a portal-selection message.
* Uses the canonical shared signOut() from lib/auth-client (GRO-2358
invariant) for the Sign out button.
* Full window.location.href reload on submit success to reset the
bridge's cached state and land the user in their portal.
The no-access card itself is preserved for the deep-link deleted-portal
case (a customer whose portal was disabled/deleted), signalled via
?noAccess=deleted-portal on a portal sub-route. The OOBE handles the
first-time-creation case; the no-access card handles the "had a portal
but lost it" case.
Test coverage:
* "routes to /onboarding when session-from-auth returns 404 (GRO-2359)"
— proves the post-auth 404 mounts the OOBE inline, not the legacy
no-access card.
* 6 new OOBE tests: render from direct link, name prefill, form
submission, 409 portal-selection, required-name validation, shared
signOut(), redirect on no-session.
* P1 no-access tests reworked to use ?noAccess=deleted-portal so the
GRO-2358 signOut invariant is still verified on the only surviving
path to the no-access card.
UAT_PLAYBOOK §5.25.5–6e rewritten to cover the OOBE flow (form submit,
409, deep-link mount, deleted-portal no-access card).
Paired with the api PR on feature/2357-p2-portal-clients-from-auth.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
(cherry picked from commit 250c7a5ac9 )
2026-06-11 18:32:29 +00:00
Flea Flicker
661bd4f902
Promote uat → main (PROD): GRO-2358 logout on no-access screen ( #74 )
...
CI / Test (push) Successful in 18s
CI / Lint & Typecheck (push) Successful in 26s
CI / Build & Push Docker Image (push) Successful in 15s
Promote uat → main (PROD): GRO-2358 — restore logout on 'Portal access not configured' screen.
Squashed from uat-to-main/GRO-2358 (0d24fe0 ).
Cherry-pick of validated uat squash bfe3ccf .
Pre-merge gates green: CI (Lint+Typecheck 30s, Test 23s, Docker Build 11s); CTO Gitea review APPROVED (comment 13465); QA GRO-2362 done; UAT GRO-2363 4/4 PASS on git.farh.net/groombook/web:2026.06.11-bfe3ccf; Security GRO-2364 cleared.
Head branch uat-to-main/GRO-2358 retained for Flea's post-deploy verification.
Refs GRO-2358, GRO-2362, GRO-2363, GRO-2364, GRO-2367.
Co-authored-by: Flea Flicker <22+gb_flea@noreply.git.farh.net >
Co-committed-by: Flea Flicker <22+gb_flea@noreply.git.farh.net >
2026-06-11 15:43:32 +00:00
Flea Flicker
fe565861b9
Promote uat → main (PROD): GRO-2319 portal StatusBadge palette ( #71 )
...
CI / Test (push) Successful in 20s
CI / Lint & Typecheck (push) Successful in 25s
CI / Build & Push Docker Image (push) Successful in 20s
Co-authored-by: Flea Flicker <22+gb_flea@noreply.git.farh.net >
Co-committed-by: Flea Flicker <22+gb_flea@noreply.git.farh.net >
2026-06-10 08:57:46 +00:00
Scrubs McBarkley
7ef270312c
Merge pull request 'Promote uat → main (PROD): GRO-2160 route nav export + offline polish' ( #68 ) from flea/uat-to-main-gro-2160 into main
CI / Test (push) Successful in 19s
CI / Lint & Typecheck (push) Successful in 27s
CI / Build & Push Docker Image (push) Successful in 15s
2026-06-09 05:27:25 +00:00
Flea Flicker
f58a0e569b
Promote dev → uat: GRO-2160 route nav export + offline polish ( #67 )
CI / Test (push) Successful in 20s
CI / Lint & Typecheck (push) Successful in 26s
CI / Build & Push Docker Image (push) Successful in 10s
CI / Test (pull_request) Successful in 21s
CI / Lint & Typecheck (pull_request) Successful in 28s
CI / Build & Push Docker Image (pull_request) Successful in 14s
2026-06-09 04:40:32 +00:00
Scrubs McBarkley
2a401a4584
Merge pull request 'Promote uat → main (PROD): GRO-2159 drag-to-reorder + re-optimize + GRO-2236 price/duration display fix'
...
CI / Test (push) Successful in 18s
CI / Lint & Typecheck (push) Successful in 25s
CI / Build & Push Docker Image (push) Successful in 12s
CEO prod merge. All gates cleared: CTO Phase 4 review #4573 approved, CI green on e93017b , QA PASS (GRO-2281, GRO-2256), post-deploy UAT regression PASS (GRO-2283, GRO-2276), security PASS (GRO-2284). Merging GRO-2159 + GRO-2236 to main.
2026-06-09 04:00:43 +00:00
Flea Flicker
e93017b279
Promote dev → uat: GRO-2159 drag-to-reorder + re-optimize ( #64 )
CI / Test (push) Successful in 35s
CI / Lint & Typecheck (push) Successful in 44s
CI / Build & Push Docker Image (push) Successful in 11s
CI / Test (pull_request) Successful in 21s
CI / Lint & Typecheck (pull_request) Successful in 27s
CI / Build & Push Docker Image (pull_request) Successful in 12s
2026-06-09 03:10:17 +00:00
Scrubs McBarkley
27c59113e2
Merge pull request 'Promote uat → main (PROD): GRO-2158 route planner page' ( #62 ) from flea/uat-to-main-gro-2158 into main
...
CI / Test (push) Successful in 22s
CI / Lint & Typecheck (push) Successful in 27s
CI / Build & Push Docker Image (push) Failing after 9s
Promote uat → main (PROD): GRO-2158 route planner page
Merged by CEO (gb_scrubs) — board-gated prod merge.
Validated SHA: 980615b (GRO-2272/2273/2274 all PASS).
CTO review: APPROVED (review #4567 by gb_dogfather).
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-06-09 02:37:35 +00:00
Flea Flicker
db11e5f2bd
Merge pull request 'Promote dev → uat: GRO-2236 portal Book New service cards price + duration' ( #58 ) from flea/dev-to-uat-gro-2236 into uat
CI / Test (push) Successful in 24s
CI / Lint & Typecheck (push) Successful in 30s
CI / Build & Push Docker Image (push) Successful in 48s
2026-06-09 02:13:08 +00:00
Flea Flicker
980615b8e6
Promote dev → uat: GRO-2158 route planner page ( #61 )
CI / Test (push) Successful in 18s
CI / Lint & Typecheck (push) Successful in 27s
CI / Build & Push Docker Image (push) Successful in 14s
CI / Test (pull_request) Successful in 20s
CI / Lint & Typecheck (pull_request) Successful in 30s
CI / Build & Push Docker Image (pull_request) Successful in 41s
2026-06-09 02:00:55 +00:00
Flea Flicker
95c688764b
Merge pull request 'uat→main (PROD): GRO-2234 portal Book New fix + validated batch' ( #59 ) from flea/uat-to-main-gro-2234-web into main
CI / Test (push) Successful in 21s
CI / Lint & Typecheck (push) Successful in 27s
CI / Build & Push Docker Image (push) Successful in 16s
2026-06-09 00:37:47 +00:00
The Dogfather
f549101962
fix(GRO-2236): portal Book New service cards show price + duration ( #57 )
...
CI / Test (pull_request) Successful in 20s
CI / Lint & Typecheck (pull_request) Successful in 28s
CI / Build & Push Docker Image (pull_request) Successful in 14s
Co-authored-by: The Dogfather <20+gb_dogfather@noreply.git.farh.net >
Co-committed-by: The Dogfather <20+gb_dogfather@noreply.git.farh.net >
2026-06-08 23:32:19 +00:00
Flea Flicker
62dc85b560
Promote dev → uat: GRO-2211/2218/2207 + GRO-2234 portal Book New (cumulative) ( #56 )
CI / Lint & Typecheck (push) Successful in 28s
CI / Test (push) Successful in 28s
CI / Build & Push Docker Image (push) Successful in 41s
CI / Test (pull_request) Successful in 21s
CI / Lint & Typecheck (pull_request) Successful in 27s
CI / Build & Push Docker Image (pull_request) Successful in 47s
2026-06-08 19:58:43 +00:00
Flea Flicker
5bb8fbcb7d
Merge pull request 'Promote uat → main (atomic): GRO-2105/2094/2099/2089/2180/2213 portal bundle' ( #48 ) from uat into main
CI / Test (push) Successful in 19s
CI / Lint & Typecheck (push) Successful in 27s
CI / Build & Push Docker Image (push) Successful in 40s
2026-06-08 19:29:49 +00:00
Flea Flicker
bc21d6de09
Promote dev → uat: GRO-2213 portal booking preferredTime HH:MM:SS fix ( #52 )
CI / Test (push) Successful in 21s
CI / Test (pull_request) Successful in 22s
CI / Lint & Typecheck (push) Successful in 26s
CI / Lint & Typecheck (pull_request) Successful in 28s
CI / Build & Push Docker Image (push) Successful in 25s
CI / Build & Push Docker Image (pull_request) Successful in 20s
2026-06-08 17:36:16 +00:00
Flea Flicker
32ef3bca4d
Merge pull request 'Promote dev → uat: GRO-2180 portal Appointments ISO startTime fix' ( #50 ) from dev into uat
...
CI / Lint & Typecheck (pull_request) Failing after 10m47s
CI / Test (push) Failing after 10m51s
CI / Lint & Typecheck (push) Failing after 10m52s
CI / Build & Push Docker Image (push) Has been skipped
CI / Test (pull_request) Failing after 15m38s
CI / Build & Push Docker Image (pull_request) Has been skipped
Merge PR #50 : fix(GRO-2180) portal Appointments ISO startTime (dev → uat)
QA-approved (gb_lint); PR CI green after transient runner re-run.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com >
2026-06-08 10:28:50 +00:00
Flea Flicker
47c29ecbc2
Promote to UAT: GRO-2105 BookingFlow/RescheduleFlow availability fix ( #47 )
CI / Test (push) Successful in 17s
CI / Lint & Typecheck (push) Successful in 23s
CI / Build & Push Docker Image (push) Successful in 19s
CI / Test (pull_request) Failing after 10m34s
CI / Lint & Typecheck (pull_request) Failing after 10m34s
CI / Build & Push Docker Image (pull_request) Has been skipped
2026-06-02 19:17:03 +00:00
The Dogfather
de7386e47a
Promote to UAT: GRO-2094 React bootstrap error instrumentation ( #45 )
...
CI / Test (push) Successful in 23s
CI / Lint & Typecheck (push) Successful in 30s
CI / Build & Push Docker Image (push) Successful in 13s
Co-authored-by: The Dogfather <20+gb_dogfather@noreply.git.farh.net >
Co-committed-by: The Dogfather <20+gb_dogfather@noreply.git.farh.net >
2026-06-02 18:42:25 +00:00
Scrubs McBarkley
fdff0977ad
Merge pull request 'Promote uat → main: GRO-2012 RescheduleFlow portalSessionId fallback' ( #40 ) from uat into main
...
CI / Test (push) Successful in 23s
CI / Lint & Typecheck (push) Successful in 29s
CI / Build & Push Docker Image (push) Successful in 16s
Promote uat → main: GRO-2012 RescheduleFlow portalSessionId fallback
Gate checks:
- UAT: GRO-2023 done (CTO verified, ec29f719 )
- Security: GRO-2032 Barkley PASS
- UAT_PLAYBOOK.md: TC-WEB-5.26 present
Fix: CustomerPortal.tsx:329 sessionId={session?.id ?? portalSessionId}
Fix commit: f29f1828c8
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-06-01 19:10:08 +00:00
The Dogfather
ec29f71974
Merge pull request 'Promote to UAT: GRO-2012 RescheduleFlow portalSessionId fallback' ( #39 ) from dev into uat
CI / Test (push) Successful in 21s
CI / Lint & Typecheck (push) Successful in 30s
CI / Build & Push Docker Image (push) Successful in 10s
CI / Test (pull_request) Successful in 21s
CI / Lint & Typecheck (pull_request) Successful in 28s
CI / Build & Push Docker Image (pull_request) Successful in 13s
2026-06-01 17:46:35 +00:00
The Dogfather
bd2a0d9516
Merge pull request 'Promote dev -> uat: GRO-2011 login-blank fix (+ GRO-1867)' ( #37 ) from dev into uat
CI / Test (push) Successful in 19s
CI / Lint & Typecheck (push) Successful in 23s
CI / Build & Push Docker Image (push) Successful in 10s
2026-06-01 16:38:14 +00:00
The Dogfather
0e5e9d1f16
Merge pull request 'chore: promote dev → uat (GRO-1829 SW fix)' ( #32 ) from dev into uat
...
CI / Test (push) Successful in 13s
CI / Lint & Typecheck (push) Successful in 23s
CI / Build & Push Docker Image (push) Successful in 15s
Merge: promote dev → uat (GRO-1829 SW fix)
2026-05-27 02:27:32 +00:00
The Dogfather
3b4d0f15f6
Merge pull request 'chore: promote dev → uat (GRO-1795 StatusBadge)' ( #28 ) from dev into uat
...
CI / Lint & Typecheck (push) Successful in 17s
CI / Test (push) Successful in 13s
CI / Build & Push Docker Image (push) Successful in 34s
Merge PR #28 : promote dev → uat (GRO-1795 StatusBadge)
2026-05-26 13:23:52 +00:00
The Dogfather
87939e5413
Merge pull request 'chore: promote dev → uat (GRO-1794 booking analytics)' ( #27 ) from dev into uat
...
CI / Test (push) Successful in 19s
CI / Lint & Typecheck (push) Successful in 22s
CI / Build & Push Docker Image (push) Successful in 12s
Merge dev → uat: GRO-1794 booking funnel analytics events
2026-05-26 13:16:39 +00:00
The Dogfather
4e3a038bf3
Merge pull request 'Promote dev → uat (GRO-1793: dynamic time slots)' ( #25 ) from dev into uat
...
CI / Test (push) Successful in 14s
CI / Lint & Typecheck (push) Successful in 16s
CI / Build & Push Docker Image (push) Failing after 6s
Promote dev → uat: GRO-1793 dynamic portal time slots (#25 )
2026-05-26 13:02:16 +00:00
Scrubs McBarkley
2aad7cb6a0
Merge pull request 'promote: uat → main (GRO-1757 SSO auto-provision fix)' ( #21 ) from uat into main
CI / Test (push) Successful in 13s
CI / Lint & Typecheck (push) Successful in 21s
CI / Build & Push Docker Image (push) Successful in 13s
2026-05-26 02:16:28 +00:00
Lint Roller
8349ea00de
Merge pull request 'promote: dev → uat (GRO-1757 SSO auto-provision fix)' ( #19 ) from dev into uat
...
CI / Test (push) Successful in 13s
CI / Lint & Typecheck (push) Successful in 33s
CI / Build & Push Docker Image (push) Successful in 14s
CI / Test (pull_request) Successful in 19s
CI / Lint & Typecheck (pull_request) Successful in 24s
CI / Build & Push Docker Image (pull_request) Successful in 15s
promote: dev → uat (GRO-1757 SSO auto-provision fix)
2026-05-25 23:48:10 +00:00
Chris Farhood
0c41640f59
Add .mcp.json
CI / Test (push) Successful in 20s
CI / Lint & Typecheck (push) Successful in 27s
CI / Build & Push Docker Image (push) Successful in 4m1s
2026-05-24 18:15:24 +00:00
The Dogfather
0306c7fbd9
Merge pull request 'chore(GRO-1592): promote dev→uat SSO session cookie fix' ( #16 ) from promote-uat-gro1592 into uat
CI / Test (push) Successful in 12s
CI / Lint & Typecheck (push) Successful in 18s
CI / Build & Push Docker Image (push) Failing after 39s
2026-05-23 14:13:43 +00:00
Chris Farhood
93da2f1dd8
chore: promote dev→uat for GRO-1592 SSO session cookie fix
...
CI / Lint & Typecheck (pull_request) Successful in 17s
CI / Test (pull_request) Successful in 18s
CI / Build & Push Docker Image (pull_request) Failing after 41s
- Fixed frontend auth client baseURL fallback to use window.location.origin
- Added UAT test coverage (TC-AUTH-5.3.4)
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-23 14:13:12 +00:00
The Dogfather
62cbfe4e43
Merge pull request 'promote: dev → uat (GRO-1173 buffer rules + GRO-1470 pet save persistence)' ( #14 ) from dev into uat
...
CI / Test (push) Successful in 14s
CI / Lint & Typecheck (push) Successful in 19s
CI / Build & Push Docker Image (push) Successful in 9s
promote: dev → uat (GRO-1173 buffer rules + GRO-1470 pet save persistence) (#14 )
Merged-By: The Dogfather (CTO)
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-21 19:46:41 +00:00
The Dogfather
db6a2a1bbf
Merge pull request 'promote: dev → uat (Renovate config, GRO-1081)' ( #11 ) from dev into uat
...
promote: dev → uat (Renovate config, GRO-1081)
Merge PR #11 : dev → uat promotion
Includes: chore: add Renovate config (GRO-1081)
2026-05-20 12:42:04 +00:00
The Dogfather
032a3796ba
Merge pull request 'chore: promote dev to uat (CI Docker registry fix)' ( #10 ) from dev into uat
...
chore: promote dev to uat (CI Docker registry fix) (#10 )
Promotes GRO-1348 CI registry fix to UAT.
2026-05-20 11:17:21 +00:00
the-dogfather-cto[bot]
cac8fc947e
chore(GRO-1289): promote dev to uat — add UAT_PLAYBOOK.md
...
chore(GRO-1289): promote dev to uat — add UAT_PLAYBOOK.md
2026-05-14 21:13:56 +00:00
the-dogfather-cto[bot]
592be1301c
chore: promote dev to uat ( #3 )
...
chore: promote dev to uat
2026-05-11 13:19:33 +00:00