promote(uat→main): GRO-2214 waitlist validation + GRO-2203 pet PATCH (carries GRO-2155/2163) #184
Closed
Flea Flicker
wants to merge 0 commits from
uat into main
pull from: uat
merge into: groombook:main
groombook:main
groombook:flea/uat-to-main-gro-2359-api
groombook:dev
groombook:release/main-GRO-2342-api
groombook:release/main-GRO-2319-api
groombook:flea/promote-main-gro-2311
groombook:promote/GRO-2319-api-to-uat
groombook:feat/GRO-2319-portal-waitlist-surfacing
groombook:flea/promote-main-gro-2172
groombook:dev-to-uat-gro-2311
groombook:flea/gro-2311-seed-portal-statusbadge-appts
groombook:promote/gro-2172-pets-to-uat
groombook:fix/gro-2172-pet-extended-fields
groombook:uat-to-main-gro-2299
groombook:flea/promote-main-gro-2294
groombook:promote/dev-to-uat-gro-2299
groombook:gro-2299-redact-patch-settings
groombook:flea/promote-gro-2294-uat
groombook:flea/gro-2294-route-opt-hardening
groombook:flea/uat-to-main-gro-2157-frozen
groombook:promote/dev-to-uat-gro-2225
groombook:flea/gro-2157-navigation-export
groombook:flea/gro-2235-waitlist-duplicate-409
groombook:feat/gro-2225-uat-seed-route-cohort
groombook:flea/uat-to-main-gro-2234-api
groombook:flea/dev-to-uat-gro-2156
groombook:flea-flicker/gro-2234-portal-session-sliding-ttl
groombook:release/main-6120b96
groombook:flea/gro-2156-travel-buffer-reorder
groombook:release/main-eb92f99
groombook:fix/gro-2214-portal-waitlist-validation
groombook:fix/gro-2203-portal-pet-patch-uuid-validation
groombook:dev-to-uat-gro-2155
groombook:feat/gro-2155-route-optimize-endpoints-dev
groombook:fix/gro-2163-migrate-pre-dns-wait
groombook:fix/gro-2187-portal-photokey-hijack
groombook:dev-to-uat-gro-2154
groombook:feat/gro-2154-geocoding-endpoints-dev
groombook:flea-flicker/gro-2197-ci-api-gate
groombook:dev-to-uat-gro-2153
groombook:dev-to-uat-gro-2187
groombook:fix/gro-2187-portal-pets-patch
groombook:dev-to-uat-gro-2129
groombook:flea-flicker/gro-2123-cleanup-stale-seed-duplicate
groombook:dev-to-uat-gro-2123
groombook:flea-flicker/gro-2123-seed-advisory-lock
groombook:promote/dev-to-uat-gro-2100
groombook:flea/gro-2100-uat-groomer-pet-linkage
groombook:flea/gro-2062-owner-bypass-audit
groombook:flea/gro-2052-rbac-betterauth-user-autoprovision
groombook:dogfather/gro-2013-promote-uat
groombook:flea/gro-2013-owner-bypass-deployed-tree
groombook:flea/gro-2033-idempotent-pet-profile-migrations
groombook:fix/gro-2014-profile-summary-error-handling
groombook:flea/gro-2000-uat-password-source-doc
groombook:fix/gro-1999-uat-seed-extra-large
groombook:fix/gro-1983-seed-pnpm-baked
groombook:fix/GRO-1979-coat-type-pet-size-enum-fix
groombook:fleaflicker/GRO-1962-deterministic-testcoopper-rocky
groombook:flea/gro-1977-seed-idempotency
groombook:fix/GRO-1977-seed-credential-idempotency
groombook:promote/dev-to-uat-gro-1971
groombook:fix/gro-1971-coat-type-enum-missing-short
groombook:fix/GRO-1962-uat-seed-pet-medicalalerts
groombook:flea/GRO-1955-fix-uc-undefined-seed
groombook:fix/GRO-1909-migrate-corepack-offline
groombook:fix/GRO-1953-coat-type-short-missing
groombook:fleaflicker/gro-medical-alert-types-behavioral-skin
groombook:fleaflicker/gro-1921-uat-reset-full-seed
groombook:flea/GRO-1945-pets-visitcount-hotfix
groombook:fix/GRO-1935-uat-customer-client-seed
groombook:fix/GRO-1914-seed-typeof
groombook:feature/GRO-1898-extended-pet-profile-seed
groombook:seed/extended-profile-fields-gro-1898
groombook:fix/gro-1889-reset-demo-data-pnpm
groombook:promote/dev-to-uat-gro-1866
groombook:fix/gro-1866-qa-fixes
groombook:fix/gro-1866-sso-bridge
groombook:fix/gro-1850-pet-profile-migration
groombook:promote/dev-to-uat-gro-1790
groombook:flea-flicker/pet-profile-summary
groombook:ff/gro-1765-trigger-ci
groombook:promo/gro-1764-uat
groombook:ci/gro-1757-build
groombook:fix/gro-1757-sso-auto-provision
groombook:fix/gro-1754-uat-ci
groombook:fix/gro-1754-trigger-ci-v2
groombook:fix/gro-1752-factories-v2
groombook:fix/gro-1752-factories-only
groombook:fix/gro-1746-apply-uat-seed-to-root-src
groombook:fix/gro-1752-extended-pet-profile-fields
groombook:promo/gro-1749-uat
groombook:fix/gro-1749-uat-seed-sync
groombook:fix/gro-1743-uat-seed-data
groombook:fix/gro-1480-portal-pets-patch
groombook:fix/gro-1678-econnreset-robustness
groombook:fix/gro-1576-ci-provenance-false
groombook:fix/gro-1575-ci-provenance
groombook:fix/gro-1566-api-health-auth-bypass
groombook:fix/gro-1544-api-health-endpoint
groombook:fix/gro-1533-migration-0031-coat-type
groombook:fix/gro-1533-missing-migration-0032
groombook:fix/gro-1533-missing-migration-journal
groombook:revert/gro-1533-dockerfile-fix
groombook:fix/gro-1533-revert-dockefile-build-change
groombook:flea-flicker/gro-1531-seed-db-filter
groombook:fix/gro-1522-ci-images-node22
groombook:pr-44
groombook:flea-flicker/gro-1509-better-auth-account-not-linked
groombook:flea-flicker/gro-1162-pet-buffer-time
groombook:fix/gro-1461-uat-playbook-auto-provision
groombook:flea-flicker/pet-profile-editor
groombook:fix/gro-1441-remove-duplicate-coat-props
groombook:fix/gro-1390-pets-test-mock-hoisting
groombook:fix/gro-1395-drizzle-orm-root-dep
groombook:gitea/migrate-workflows
groombook:flea-flicker/fix-gro-1370-ts-and-test-errors
groombook:fix/api/add-devdep-drizzle-orm-fix-vitest
groombook:pr-19
groombook:flea-flicker/uat-email-password-seed
groombook:fleaflicker/gro-1272-v2
groombook:fleaflicker/gro-1272-auto-provision-staff
groombook:add-renovate-config
groombook:flea-flicker/gro-1231-pnpm-workspace-dockerfile
groombook:fix/GRO-1202-rate-limit-override
groombook:fix/typescript-errors
groombook:flea-flicker/pet-profile-extended-fields
groombook:fix/uat-tester-oidc-sub
groombook:flea-flicker/fix-authprovider-mock-path
groombook:flea-flicker/auto-create-staff-oauth-users-v2
groombook:flea-flicker/auto-create-staff-oauth-users
groombook:docs/GRO-1099-uat-playbook-api
groombook:flea-flicker/fix-ci-install-deps-v2
groombook:flea-flicker/fix-ci-install-deps
Labels
Clear labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
Something isn't working
Improvements or additions to documentation
This issue or pull request already exists
New feature or request
Good for newcomers
Extra attention is needed
This doesn't seem right
Further information is requested
This will not be worked on
No Label
Milestone
No items
No Milestone
Projects
Clear projects
No project
Assignees
ai-review (AI Review)
gb_barkley (Barkley Trimsworth)
cpfarhood (Chris Farhood)
ci (Continuous Integration [bot])
gb_flea (Flea Flicker)
flux (Flux CD)
admin (Gitea Admin)
gb_lint (Lint Roller)
renovate (Mend Renovate)
gb_pawla (Pawla Abdul)
gb_scrubs (Scrubs McBarkley)
gb_shedward (Shedward Scissorhands)
gb_dogfather (The Dogfather)
Clear assignees
No Assignees
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: groombook/api#184
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Delete Branch "uat"
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?
Promote
uat→main(PROD)Atomic uat→main promotion of the current
uathead (eb92f99). Carries all UAT-validated fixes currently ahead ofmain:eb92f99(#178)preferredTime/preferredDatevalidation → 400 not 500; portal pet PATCH malformed-petId → 404 not 500587fd4e(#176)UAT validation (deployed app)
git.farh.net/groombook/api:2026.06.08-eb92f99(full ISOpreferredTime→ 400, bad date → 400, valid HH:MM:SS → 201, PATCH bad time → 400). QA (GRO-2223 Shedward + gb_lint) + Security (GRO-2224 Barkley) approved the diff.eb92f99build / GRO-2239 regression scope.Gate
Phase 3 (PROD): CTO review → CEO merge per SDLC governance. Engineer does not self-merge this phase.
After merge: prod image retag (separate infra overlay PR, tag
YYYY.MM.DD-<main-head-7char>).CTO Phase-4 review: CHANGES REQUESTED — head drift ships ungated work to PROD
This uat→main PR has head-drifted. A uat→main merge takes the live
uattip, anduathas advanced fromeb92f99to96dbb8csince this PR opened. Merging as-is would promote two ungated tickets to production:in_progress; QA passed but no UAT regression and no security review.blocked; QA review (GRO-2241) stilltodo.Neither is in this PR's stated scope (GRO-2214/2203, carries 2155/2163). The live diff
main...uatalso pulls insrc/middleware/portalSession.ts(sliding session) and the GRO-2156 travel-buffer additions insrc/routes/routes.ts— confirming the drift.The validated head is
eb92f99: QA (GRO-2223) ✓, Security (GRO-2224) ✓, UAT GRO-2239 6/6 PASS on:2026.06.08-eb92f99. That head carries exactly the intended set (GRO-2155, GRO-2163, GRO-2203, GRO-2211/2214).Required
Promote a frozen branch cut at
eb92f99, not the movinguathead. Tracked in GRO-2244 (assigned to @gb_flea): cutrelease/main-eb92f99ateb92f99, open a freshfrozen→mainPR shipping only the 4 gated tickets, and close this PR as superseded.Do not merge #184. cc @cpfarhood
⚠️ Scope update — this PR now auto-carries more than its body lists. Head is
uat, which has advanced pasteb92f99(the head named in the body). Currentuathead96dbb8calso includes:Recommendation for the PROD gate (CTO→CEO): hold this merge, or re-cut it against a UAT-validated head, until GRO-2156 (GRO-2247 + GRO-2246) and GRO-2234 have their deployed-app sign-off — otherwise un-regressed code rides to prod. Body table should be refreshed to the true
96dbb8cscope before merge.— Flea Flicker (engineer), re GRO-2156
⚠️ Scope update — this PR now auto-carries more than its body lists. Head is
uat, which has advanced pasteb92f99(the head named in the body). Currentuathead96dbb8calso includes:Recommendation for the PROD gate (CTO→CEO): hold this merge, or re-cut it against a UAT-validated head, until GRO-2156 (GRO-2247 + GRO-2246) and GRO-2234 have their deployed-app sign-off — otherwise un-regressed code rides to prod. Body table should be refreshed to the true
96dbb8cscope before merge.— Flea Flicker (engineer), re GRO-2156
Superseded by #185 — a frozen promotion cut exactly at the UAT-validated head
eb92f99(release/main-eb92f99).This PR (#184) is head-drifted: it merges the live
uattip (96dbb8c), which has advanced past the validated head and would push ungated GRO-2156 (route travel buffer + reorder) and GRO-2234 (portal session sliding TTL) to PROD. #185 ships only the 4 gated tickets (GRO-2155/2163, GRO-2203, GRO-2211/2214). Closing as superseded.cc @cpfarhood
Pull request closed