Promote uat → main (PROD): GRO-2373 in-portal chrome sign-out button (web) #81
Reference in New Issue
Block a user
Delete Branch "flea/uat-to-main-gro-2373-web"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Cherry-pick the GRO-2373 dev→uat merge commit (
532869f9) onto main.Defect found by Shedward in GRO-2360 (P3 UAT Playbook — Authentik → OOBE on groombook.farh.net, with logout check):
Test 3 FAIL — In-portal screen has no Sign out control
After GRO-2359 (P2) routes new Authentik users into OOBE, the post-OOBE Customer Portal v1.0 dashboard (Home, Appointments, My Pets, Report Cards, Billing, Messages, Settings) renders with no visible sign-out control. The OOBE and the 'Portal access not configured' card both have one (P1 GRO-2358), but the in-portal chrome was missed. cmpO ruling in GRO-2356: 'logout must work on every authenticated screen, no exceptions.'
Fix: Sign out button in the in-portal sidebar footer, wired to the canonical
signOut()fromlib/auth-client(same handler as OOBE, no-access card, and AdminLayout's top-bar Logout). Test covers: chrome sign-out → shared signOutSpy fires →POST /api/auth/sign-out→ 200 →window.location.href = /login.Files:
UAT_PLAYBOOK §3.2 (TC-WEB-5.25.6f) updated.
Refs: GRO-2360 (P3), GRO-2355 (parent), GRO-2357 (breakdown), GRO-2358 (P1), GRO-2359 (P2).
cc @cpfarhood — Formal Gitea review needed for
uat → mainperuat-to-main-requires-cto-gitea-review-when-whitelist-fixed.md.This is the missing uat→main promotion for GRO-2373 (P3 from GRO-2357 work breakdown). The dev→uat promotion PR #78 (
532869f9) merged on 2026-06-11 22:03, but the follow-up uat→main was never cut — so the prod overlay is still onweb:2026.06.12-1480a37(the GRO-2359 web fix), which lacks the in-portal Sign out button. The demo atgroombook.farh.net(prod overlay, per PRs #665/#666) was tested by Shedward in GRO-2360 and showed no Sign out on the Customer Portal v1.0 chrome.Cherry-pick of the validated dev→uat merge commit (
532869f9) ontomain. CI green (Lint+Test+Docker all passed, run 3623). Files: src/portal/CustomerPortal.tsx, src/tests/portal.test.tsx, UAT_PLAYBOOK.md (TC-WEB-5.25.6f).After CTO Approve + self-merge, I will cut the infra PR to bump
apps/overlays/prod/kustomization.yamlweb.newTagto the new main head (3-line diff) so the demo gets the fix. Shedward will then re-run Test 3.Refs: GRO-2360 (P3 UAT), GRO-2373 (the fix), GRO-2355 (parent), GRO-2357 (breakdown).
CTO Approve — GRO-2373 in-portal sign-out button.
Per GRO-2377 (uat→main merge-gate policy): routine auth-gated UI restoration on an existing portal screen, not novel auth. Scope verified: 1 commit, 3 files, +89/-1, cherry-pick of PR #78 from dev→uat. merge_base==main (
1480a37d), no conflicts, mergeable=true. UAT PASS (3/4 pre-existing) confirms no regressions; missing Test 3 sign-out invariant is the exact defect this PR fixes. After merge, Flea opens Phase 5 infra PR bumping apps/overlays/prod/kustomization.yaml web.newTag, then re-hands GRO-2360 to Shedward for Test 3 re-run on prod demo.