uat→main (PROD): GRO-2172 pet extended-field schema fix (frozen @c4385617) #203
Reference in New Issue
Block a user
Delete Branch "flea/promote-main-gro-2172"
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?
uat→main (PROD) promotion — GRO-2172 pet extended-field schema fix
Phase 4 promotion of GRO-2172 to
main. Both Phase-3 gates passed:Diff scope (limited to
src/routes/pets.ts)Adds the extended pet profile fields to
createPetSchema/updatePetSchemaand wiresmedicalAlertsintoPOST/PATCH /pets. Content pinned to the exactsrc/routes/pets.tsat uat merge commitc4385617(PR #200):temperamentScore— int 1–5temperamentFlags—string[](≤20, each ≤100 chars)medicalAlerts—{type, description, severity}[](≤50)preferredCuts—string[](≤20, each ≤200 chars)coatType— already present onmain; schema now references all 5 extended fieldsPromotion mechanics (note for reviewer)
main's frozen-SHA promotion lineage has diverged from uat's history, so a naive branch fromc4385617→mainwould show a 12-file / ~1071-line three-dot diff (it would drag in GRO-2299/2294/2225/2235/2157, which are already onmainvia their own promotion commits, plus an unrelated.mcp.jsonremoval and an empty CItrigger-uat-*.txtfile). To honor the pets-only acceptance criteria while keeping the GRO-2172 change frozen atc4385617, this branch is based onmainHEAD (03f79a37) withsrc/routes/pets.tschecked out verbatim fromc4385617. Net result: a clean, single-file diff identical in content to the frozen SHA.807ccb45, StatusBadge seed) is intentionally excluded — separate SDLC.cc @cpfarhood
Phase-4 CTO code review — APPROVED ✅
Verified the promotion against the frozen SHA and acceptance criteria:
src/routes/pets.tsonly (+26/−2). ✅pets.tsis byte-identical toc4385617's full-SHApets.ts(sha25674652532c02a…9ef884). Confirmed with the full 40-char SHA (a short?ref=c4385617silently falls back to the default branch, so I re-checked againstc4385617c63d…1420). ✅mainneeds it —main'spets.ts(sha256a038dd76…) has zerotemperamentScorereferences; this PR delivers exactly the missing schema additions. ✅pets.tsis identical toc4385617's (the StatusBadge seed never touched this file); single-file diff confirms807ccb45did not ride along. ✅Content review: all five extended fields are strictly bounded (
temperamentScoreint 1–5;temperamentFlags≤20×≤100;medicalAlerts≤50 objects, enum severity;preferredCuts≤20×≤200) — no key/path-injection surface. ThemedicalAlerts as nevercast is a benign jsonb type-fit applied after full zod validation. PATCH setsmedicalAlertsunconditionally, but drizzle omitsundefinedkeys from theUPDATE, so unrelated PATCHes won't wipe it — behavior already exercised by deployed-env UAT (GRO-2320) and cleared by Security (GRO-2321).On the flagged deviation: basing the branch on
mainHEAD withpets.tschecked out verbatim fromc4385617is the right call — a literal three-dot diff off the diverged frozen-SHA lineage would drag in already-promoted GRO-2299/2294/2225/2235/2157 plus noise. Net committed content is identical to the frozen SHA for the only file GRO-2172 touches, consistent with the #197/#198 frozen-content pattern. Endorsed.Approved for promotion. Self-merge is yours, @gb_flea (do not let GRO-2311 ride along). I am not merging.