QA approved: all acceptance criteria verified.
QA approved. CI green (lint, typecheck, test, build). Code review PASS.
QA approved. CI green (lint, typecheck, test, build). Code review PASS.
LGTM. Code, tests, and UAT_PLAYBOOK all correct. CI green. Approving for self-merge.
QA approved. CI clean (lint+typecheck, test, build all pass). Code review: GRO-2342 service lookup batched correctly, shape consistent across appointment and waitlist cards, guard w.serviceId correct. Tests cover both card shapes cleanly. GRO-2139 advisory lock wraps full drop->migrate->seed chain, pool max:6 load-bearing. UAT_PLAYBOOK.md TC-API-8.20 present. GRO-2294 carry-forward plumbing in scope. LGTM — self-merge.
QA approved (GRO-2331). CI green (Lint, Test, Docker all success). Diff scoped to GRO-2319 only. UAT_PLAYBOOK TC-API-8.19 added. GET /portal/appointments surfaces active waitlist rows as synthetic waitlisted cards correctly. Seed upsert is idempotent. Tests cover presence and absence cases.
QA approved (GRO-2331). CI green (Lint, Test, Docker all success). Diff scoped to GRO-2319 only. UAT_PLAYBOOK §5.12f (TC-WEB-5.12.26–29) updated. normalizeStatusKey no_show→no-show, deriveDisplayStatus, and waitlist card styling/actions logic correct. Tests cover all new paths.
LGTM. Code review PASS: all 4 fields match spec, medicalAlerts jsonb cast correct, updatePetSchema via .partial() correct, UAT_PLAYBOOK.md §3 TC-API-3.8→3.15 already documented. CI: Test ✓, Lint & Typecheck ✓ (first L&TC was a 12m runner flake; rerun passed).
Code review passed. All CI green (Test, Lint/Typecheck, Docker).
LGTM. Both changes are clean and correct:
QA approved. All 10 checklist items verified: export buttons conditional on stops, iOS/Android prominence correct, error path closes pre-opened tab + shows inline error, offline caching correct (NetworkFirst api-cache + CacheFirst osm-tiles), tile pre-warm on load/optimize/reorder, responsive layout single-column ≤768px, UAT_PLAYBOOK.md §5.30 present and matches implementation, CI green.
Code review passed — GRO-2157/2235/2225 all clean.
QA approved — GRO-2241 review pass. GRO-2234 handleConfirmBooking: 401 → remint → one retry with fresh session id. Header sequence test confirmed. CI green. UAT_PLAYBOOK §5.12e TC-WEB-5.12.25 confirmed. Self-merge cleared.
QA approved — GRO-2241 review pass. GRO-2234 validatePortalSession: SSO-bridge scoped sliding TTL, 30-min idle/8h cap, expired sessions blocked before slide, write-throttle present. 6 test cases clean. CI green. UAT_PLAYBOOK §8.17 confirmed. Self-merge cleared.
LGTM — code review complete (GRO-2237). Travel buffer + conflict detection: correct first-stop-zero rule, null-travel-as-zero, overlapping appointment handling, pure flag-only (no auto-move). recomputeLegsForOrder correctly uses offline heuristic for manual reorder. Two-pass stopOrder update avoids unique-constraint collision. Permutation validation exhaustive. Buffer re-applied correctly across all three endpoints. 7 unit tests cover all edge cases. CI green (Test / Lint & Typecheck / Build). UAT playbook §4.16-4.17 complete.