Scrubs McBarkley
403634eb96
Merge pull request 'promote: uat → main (GRO-1757 SSO auto-provision fix)' ( #89 ) from uat into main
CI / Lint & Typecheck (push) Successful in 9s
CI / Test (push) Successful in 9s
CI / Build & Push Docker Images (push) Successful in 50s
2026-05-26 02:15:57 +00:00
Lint Roller
385ed10211
fix(rbac): guard noUncheckedIndexedAccess in name derivation and newStaff insert
...
CI / Test (push) Successful in 10s
CI / Lint & Typecheck (push) Successful in 10s
CI / Build & Push Docker Images (push) Successful in 43s
CI / Test (pull_request) Successful in 9s
CI / Lint & Typecheck (pull_request) Successful in 10s
CI / Build & Push Docker Images (pull_request) Failing after 10s
With noUncheckedIndexedAccess:true, split("@")[0] returns string|undefined,
making `name` typed as string|undefined and failing the notNull staff.name
insert constraint. Fix by using ?? fallback on the array access.
Also add newStaff null guard after .returning() destructure — array
destructuring yields T|undefined with noUncheckedIndexedAccess enabled.
2026-05-26 01:48:12 +00:00
Lint Roller
8e8a87767c
fix(ci): remove duplicate provenance keys + add uat push trigger (GRO-1762)
CI / Lint & Typecheck (push) Successful in 12s
CI / Test (push) Successful in 13s
CI / Build & Push Docker Images (push) Failing after 41s
2026-05-26 01:34:42 +00:00
The Dogfather
152abfc4d5
fix(ci): remove duplicate provenance keys causing YAML parse error
...
CI / Test (push) Successful in 9s
CI / Lint & Typecheck (push) Successful in 12s
CI / Build & Push Docker Images (push) Successful in 1m10s
Duplicate 'provenance: false' in each docker/build-push-action step caused
Gitea to reject the workflow file, breaking push CI and workflow_dispatch.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-26 01:26:05 +00:00
The Dogfather
2f17b1ab85
Promo/Gro 1764 Uat ( #86 )
2026-05-26 00:36:15 +00:00
Flea Flicker
2a0b3cf3d3
Merge remote-tracking branch 'origin/dev' into dev-to-uat
2026-05-25 23:54:49 +00:00
Flea Flicker
cf3d30f19e
Merge pull request 'fix(GRO-1764): change Max coat_type short→smooth in UAT seed' ( #85 ) from fix/gro-1764-coat-type-enum into dev
2026-05-25 23:54:36 +00:00
Flea Flicker
0625961adf
fix(GRO-1764): change Max coat_type "short" to "smooth" in UAT seed
...
The DB coat_type enum only accepts: smooth, double, wire, curly, long, hairless.
"short" is not a valid value — corrected to "smooth".
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-25 23:52:53 +00:00
Lint Roller
78762b5278
Merge pull request 'promote: dev → uat (GRO-1757 SSO auto-provision fix)' ( #84 ) from dev into uat
...
promote: dev → uat (GRO-1757 SSO auto-provision fix)
2026-05-25 23:48:09 +00:00
Scrubs McBarkley
b61d899f81
fix(GRO-1757): auto-provision staff for OIDC users + UAT playbook updates ( #83 )
2026-05-25 23:39:57 +00:00
Flea Flicker
c8bbb12edb
Merge pull request 'promote(dev→main): GRO-1752 schema fix for UAT (CI trigger)' ( #82 ) from dev into main
2026-05-25 23:28:27 +00:00
Flea Flicker
38047d5ea3
chore: trigger CI on dev for GRO-1754
2026-05-25 23:27:16 +00:00
Flea Flicker
ba95088653
Merge pull request 'chore: trigger CI from uat for GRO-1754' ( #81 ) from fix/gro-1754-uat-ci into main
2026-05-25 23:23:15 +00:00
Flea Flicker
dd83f29736
chore: trigger CI from uat for GRO-1754
2026-05-25 23:22:04 +00:00
Flea Flicker
fbcaedf155
chore: trigger CI for GRO-1754 UAT bump check
2026-05-25 23:20:51 +00:00
Flea Flicker
7cfb24d542
Merge pull request 'chore: trigger CI for GRO-1754' ( #80 ) from fix/gro-1754-trigger-ci-v2 into dev
2026-05-25 23:16:05 +00:00
Flea Flicker
b0d9e5816f
chore: trigger CI v2 for GRO-1754
2026-05-25 23:14:01 +00:00
Flea Flicker
7a0662541d
chore: trigger CI for GRO-1754
2026-05-25 19:20:51 +00:00
Flea Flicker
5e78df85f1
chore: trigger CI for GRO-1754 UAT bump
2026-05-25 19:16:53 +00:00
The Dogfather
aa9670d4dc
Merge pull request 'promote(dev→uat): add missing extended pet profile fields (GRO-1752)' ( #79 ) from dev into uat
...
promote(dev→uat): add missing extended pet profile fields (GRO-1752)
2026-05-25 19:08:13 +00:00
The Dogfather
0a2259b67f
Merge pull request 'fix(db): add missing extended pet profile fields to buildPet factory' ( #78 ) from fix/gro-1752-factories-v2 into dev
2026-05-25 18:57:45 +00:00
Flea Flicker
cc09a8e1e8
trigger CI again
2026-05-25 18:55:38 +00:00
Flea Flicker
74da042d13
fix(db): add missing extended pet profile fields to buildPet factory
...
Lint Roller (QA) flagged that buildPet in factories.ts was missing the
4 fields added to the pets table schema, causing TS2739 in the Docker
build job (run 1701, job 3717).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-25 18:53:56 +00:00
Flea Flicker
ad1b210de1
fix(schema): add missing extended pet profile fields to packages/db ( #73 )
2026-05-25 18:20:57 +00:00
Flea Flicker
e5f16a5fe5
Merge pull request 'chore: promote dev → uat (GRO-1749 seed data sync)' ( #72 ) from promo/gro-1749-uat into uat
2026-05-25 18:02:30 +00:00
Flea Flicker
a03771f7e7
fix(gro-1749): sync UAT seed data to root src and fix route path ( #71 )
...
Co-authored-by: Flea Flicker <flea@groombook.dev >
Co-committed-by: Flea Flicker <flea@groombook.dev >
2026-05-25 17:45:56 +00:00
The Dogfather
baeff6c4f5
Merge pull request 'chore: promote dev → uat (GRO-1743 seed data)' ( #70 ) from dev into uat
...
Merge PR #70 : chore: promote dev → uat (GRO-1743 seed data)
2026-05-25 15:37:38 +00:00
The Dogfather
040ff4a253
Merge pull request 'feat(gro-1743): add UAT customer and pets to admin seed endpoint' ( #69 ) from fix/gro-1743-uat-seed-data into dev
...
CI / Lint & Typecheck (push) Successful in 11s
CI / Test (push) Successful in 12s
CI / Build & Push Docker Images (push) Successful in 18s
Merge PR #69 : feat(gro-1743): add UAT customer and pets to admin seed endpoint
2026-05-25 15:37:10 +00:00
Flea Flicker
a1466b44c9
feat(gro-1743): add UAT customer and pets to admin seed endpoint
...
CI / Lint & Typecheck (pull_request) Successful in 12s
CI / Test (pull_request) Successful in 12s
CI / Build & Push Docker Images (pull_request) Successful in 1m12s
Add UAT Customer (uat-customer@groombook.dev ) with two pets (Bella and Max)
to the idempotent admin seed endpoint for portal UAT testing.
- Client: UAT Customer, email: uat-customer@groombook.dev , phone: 555-0100, status: active
- Pet 1: Bella, Dog, Poodle, coatType: curly
- Pet 2: Max, Dog, Labrador Retriever, coatType: short
Issue: GRO-1743
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-25 15:29:36 +00:00
The Dogfather
8d9a9d8dba
Merge pull request 'chore: promote dev → uat (GRO-1678 TCP resilience + backlog fixes)' ( #67 ) from dev into uat
...
chore: promote dev → uat (GRO-1678 TCP resilience + backlog fixes)
2026-05-24 23:49:11 +00:00
Scrubs McBarkley
b486c44a82
fix(api): add timeouts for OIDC discovery fetch and DB connection ( #66 )
CI / Lint & Typecheck (push) Successful in 10s
CI / Test (push) Successful in 9s
CI / Build & Push Docker Images (push) Successful in 45s
2026-05-24 20:11:44 +00:00
Chris Farhood
185fce8e17
Add .mcp.json
CI / Lint & Typecheck (push) Successful in 15s
CI / Test (push) Successful in 13s
CI / Build & Push Docker Images (push) Successful in 2m44s
2026-05-24 18:14:57 +00:00
The Dogfather
b5a08a2c7e
Merge pull request 'fix(GRO-1441): remove duplicate coatType/petSizeCategory from buildPet' ( #35 ) from fix/gro-1441-remove-duplicate-coat-props into dev
...
CI / Lint & Typecheck (push) Successful in 47s
CI / Test (push) Successful in 48s
CI / Build & Push Docker Images (push) Failing after 2m41s
fix(GRO-1441): remove duplicate coatType/petSizeCategory from buildPet (#35 )
2026-05-23 18:31:01 +00:00
The Dogfather
06d72b5baf
Merge pull request 'fix(GRO-1544): restore /health alongside /api/health endpoint' ( #60 ) from fix/gro-1544-api-health-endpoint into dev
...
CI / Lint & Typecheck (push) Successful in 45s
CI / Test (push) Successful in 46s
CI / Build & Push Docker Images (push) Successful in 2m45s
fix(GRO-1544): restore /health alongside /api/health endpoint (#60 )
2026-05-23 18:30:57 +00:00
The Dogfather
2380698128
Merge pull request 'Promote dev → uat: provenance: false CI fix' ( #65 ) from dev into uat
...
Promote dev → uat: provenance: false CI fix (#65 )
Includes fix(GRO-1576): add provenance: false to all build-push-action steps.
Approved-by: The Dogfather (CTO)
2026-05-23 01:40:59 +00:00
The Dogfather
33aa63b10f
Merge pull request 'fix(GRO-1576): add provenance: false to all build-push-action steps' ( #64 ) from fix/gro-1576-ci-provenance-false into dev
...
CI / Lint & Typecheck (push) Successful in 10s
CI / Test (push) Successful in 11s
CI / Build & Push Docker Images (push) Successful in 20s
fix(GRO-1576): add provenance: false to all build-push-action steps (#64 )
Disables OCI attestation manifest generation that was hitting a Gitea registry bug when image layers are pre-existing.
Reviewed-by: Lint Roller (QA)
Approved-by: The Dogfather (CTO)
2026-05-23 01:40:07 +00:00
Flea Flicker
e26d960046
fix(GRO-1576): add provenance: false to all build-push-action steps
...
CI / Lint & Typecheck (pull_request) Successful in 11s
CI / Test (pull_request) Successful in 11s
CI / Build & Push Docker Images (pull_request) Failing after 2m28s
Docker Buildx v6 defaults to OCI attestation manifests (--attest
type=provenance,mode=max). These hit a Gitea registry bug when image
layers are pre-existing (blob mount), causing "unknown" errors on manifest
list push. API image succeeds because it pushes new layers; migrate/seed/
reset fail because their layers already exist.
Disabling provenance attestation on all four build-push-action steps
resolves the push failures. Addresses GRO-1575.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-23 01:30:16 +00:00
The Dogfather
4e8c66f3ca
fix: add network=host to buildx driver-opts for DinD DNS resolution
...
CI / Test (push) Successful in 43s
CI / Lint & Typecheck (push) Successful in 44s
CI / Build & Push Docker Images (push) Failing after 39s
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-23 00:52:59 +00:00
The Dogfather
00c6a36021
Merge pull request 'Promote dev to UAT: GRO-1566 auth bypass fix' ( #62 ) from dev into uat
2026-05-22 22:39:58 +00:00
The Dogfather
ea28095434
Merge pull request 'fix(GRO-1566): bypass auth for /api/health endpoint on UAT' ( #61 ) from fix/gro-1566-api-health-auth-bypass into dev
CI / Test (push) Failing after 1m33s
CI / Lint & Typecheck (push) Failing after 1m39s
CI / Build & Push Docker Images (push) Has been skipped
2026-05-22 22:39:41 +00:00
Flea Flicker
3b9c72c2c4
fix(GRO-1566): bypass auth for /api/health endpoint on UAT
...
CI / Lint & Typecheck (pull_request) Failing after 1m27s
CI / Test (pull_request) Failing after 1m38s
CI / Build & Push Docker Images (pull_request) Has been skipped
The /api/health endpoint returns 401 on UAT because authMiddleware
was not skipping it — the health check was registered on the Hono app
instance (not the api sub-router), placing it below authMiddleware on
the base app. The fix adds /api/health to the auth skip list alongside
/api/auth/.
The /health endpoint (registered at app level, above all middleware)
correctly returns 200. The /api/health endpoint must also be public
since the task requires confirming it returns 200.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-22 22:36:15 +00:00
Flea Flicker
49f70eb74b
fix(GRO-1544): restore /health alongside /api/health endpoint
...
CI / Lint & Typecheck (pull_request) Failing after 1m34s
CI / Test (pull_request) Failing after 1m38s
CI / Build & Push Docker Images (pull_request) Has been skipped
The previous GRO-1544 PR changed /health to /api/health but removed
the /health endpoint entirely. This breaks:
- Dockerfile HEALTHCHECK (curl -f http://localhost:3000/health )
- K8s readinessProbe/livenessProbe (httpGet: path: /health, port: 3000)
Both paths are registered before auth middleware so both remain
publicly accessible without authentication.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com >
2026-05-22 22:18:52 +00:00
The Dogfather
f4561b539f
Merge pull request 'chore: promote dev → uat (GRO-1544 health endpoint fix)' ( #59 ) from dev into uat
...
chore: promote dev → uat (GRO-1544 health endpoint fix)
Merge dev → uat. CI auto-deploys to UAT environment.
2026-05-22 21:50:13 +00:00
The Dogfather
62dfc7776b
Merge pull request 'fix(GRO-1544): register health endpoint at /api/health not /health' ( #52 ) from fix/gro-1544-api-health-endpoint into dev
...
CI / Lint & Typecheck (push) Failing after 1m29s
CI / Test (push) Failing after 1m29s
CI / Build & Push Docker Images (push) Has been skipped
fix(GRO-1544): register health endpoint at /api/health not /health
Merge PR #52 to dev. Unblocks GRO-1485 UAT regression chain.
2026-05-22 21:49:55 +00:00
The Dogfather
d847343090
Merge pull request 'promote: dev → uat (migration 0031 fix, GRO-1533)' ( #58 ) from dev into uat
...
promote: dev → uat — migration 0031 fix (GRO-1533) (#58 )
2026-05-22 15:22:24 +00:00
The Dogfather
68df697cf3
Merge pull request 'fix(GRO-1533): fix migration 0031 for empty databases' ( #57 ) from fix/gro-1533-migration-0031-coat-type into dev
...
CI / Test (push) Successful in 16s
CI / Lint & Typecheck (push) Successful in 17s
CI / Build & Push Docker Images (push) Successful in 30s
fix(GRO-1533): fix migration 0031 for empty databases (#57 )
Adds ADD COLUMN IF NOT EXISTS for coat_type and pet_size_category before ALTER TYPE casts, making migration safe for both fresh and existing databases.
Reviewed-by: gb_lint (QA)
Approved-by: CTO
2026-05-22 15:20:50 +00:00
Chris Farhood
174d1c667b
fix(GRO-1533): add missing coat_type/pet_size_category columns in migration 0031
...
CI / Lint & Typecheck (pull_request) Successful in 10s
CI / Test (pull_request) Successful in 10s
CI / Build & Push Docker Images (pull_request) Successful in 40s
Migration 0031 tries to ALTER the coat_type and pet_size_category columns
on the pets table to use new enum types, but no prior migration adds
these columns. On a fresh DB (after the reset CronJob wiped all tables),
this causes the entire migration chain to fail and roll back.
Added ADD COLUMN IF NOT EXISTS before the ALTER TYPE so the migration
works both on fresh databases and existing ones with the columns.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-22 15:12:07 +00:00
The Dogfather
190c39f905
Merge pull request 'chore: promote dev → uat (GRO-1533 migration fix)' ( #56 ) from dev into uat
...
chore: promote dev → uat (GRO-1533 migration fix)
Promotes 0032_staff_read_at.sql migration file to uat branch.
Unblocks UAT migration pipeline.
2026-05-22 14:39:42 +00:00
The Dogfather
9fe6e15012
Merge pull request 'fix(GRO-1533): add missing 0032_staff_read_at.sql migration file' ( #55 ) from fix/gro-1533-missing-migration-0032 into dev
...
CI / Lint & Typecheck (push) Successful in 9s
CI / Test (push) Successful in 10s
CI / Build & Push Docker Images (push) Successful in 21s
fix(GRO-1533): add missing 0032_staff_read_at.sql migration file
Merged by CTO after QA approval (Review #3513 ).
Unblocks UAT migration pipeline.
2026-05-22 14:38:34 +00:00
Chris Farhood
002e6575ba
fix(GRO-1533): add missing 0032_staff_read_at.sql migration file
...
CI / Test (pull_request) Successful in 2m30s
CI / Lint & Typecheck (pull_request) Successful in 2m32s
CI / Build & Push Docker Images (pull_request) Successful in 4m6s
The migration journal references 0032_staff_read_at but the SQL file
was never committed. drizzle-kit migrate fails with "No file
./migrations/0032_staff_read_at.sql found" which blocks all subsequent
migrations including the 0033 default_buffer_minutes fix.
Added as a no-op since the staff table schema has no readAt column.
Co-Authored-By: Paperclip <noreply@paperclip.ing >
2026-05-22 14:28:48 +00:00