From 15fdd1cb5d1ccacca9debd4f79a02bd3f1509b5a Mon Sep 17 00:00:00 2001 From: "groombook-engineer[bot]" <3141748+groombook-engineer[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 01:17:19 +0000 Subject: [PATCH 1/2] fix(ci): use --merge instead of --auto --merge for infra PR groombook/infra has no required status checks, so GitHub refuses to enable auto-merge (PR is immediately in clean status). Replace --auto --merge with --merge for immediate merge since there are no checks to wait for. Fixes: GRO-378 Co-Authored-By: Paperclip --- .github/workflows/ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4fdc3dc..fbafc46 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -395,11 +395,11 @@ jobs: git push -u origin "chore/update-image-tags-${TAG}" - # Create PR with auto-merge + # Create PR and merge immediately (no required checks on groombook/infra) PR_URL=$(gh pr create \ --repo groombook/infra \ --base main \ --head "chore/update-image-tags-${TAG}" \ --title "chore: deploy ${TAG} to dev" \ --body "[GRO-178](/GRO/issues/GRO-178) — automated image tag update from main merge") - gh pr merge "$PR_URL" --auto --merge + gh pr merge "$PR_URL" --merge -- 2.52.0 From 22475ae8e22ed8eb49e165fefb9f1521d2dde0bd Mon Sep 17 00:00:00 2001 From: "groombook-engineer[bot]" <3141748+groombook-engineer[bot]@users.noreply.github.com> Date: Thu, 2 Apr 2026 01:22:45 +0000 Subject: [PATCH 2/2] fix(web): unmount CustomerPortal when navigating to /login MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit When a user was logged in as one client and switched to another via the dev login selector, the portal pages (Home, My Pets, Appointments, Billing) continued showing the original user's data. Root cause: CustomerPortal was rendered unconditionally for all non-/admin routes (including /login). Since CustomerPortal uses a ref (initDone) to skip re-initialization on re-renders, navigating to /login and back did not trigger session re-creation — the old session remained in state. Fix: make CustomerPortal conditional on pathname not being /login, so it properly unmounts when the user switches. On re-navigation to /, a fresh CustomerPortal mounts and creates a new session for the selected dev user. Co-Authored-By: Paperclip --- apps/web/src/App.tsx | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/apps/web/src/App.tsx b/apps/web/src/App.tsx index a8f7b2a..b0ac1c7 100644 --- a/apps/web/src/App.tsx +++ b/apps/web/src/App.tsx @@ -262,6 +262,9 @@ export function App() { return ; } + // Don't render portal chrome at /login — DevLoginSelector is shown instead + const showCustomerPortal = !location.pathname.startsWith("/admin") && location.pathname !== "/login"; + return ( {location.pathname.startsWith("/admin") ? ( @@ -271,12 +274,12 @@ export function App() { {authDisabled && } - ) : ( + ) : showCustomerPortal ? ( <> {authDisabled && } - )} + ) : null} ); } -- 2.52.0