Commit Graph

87 Commits

Author SHA1 Message Date
Chris Farhood 1ea319e122 merge: resolve conflicts with dev (keep Node 22 + add Gitea CI images)
CI / Lint & Typecheck (pull_request) Failing after 14s
CI / Test (pull_request) Failing after 20s
CI / Build & Push Docker Images (pull_request) Has been skipped
- Dockerfile: keep node:22-alpine for both base and runner stages
- package.json: keep dev's full content + add packageManager field
- .gitea/workflows/ci.yml: keep fixed version with all 4 image targets
- petsExtendedFields.test.ts: keep dev UUIDs + PR's vi.fn() mocks

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-22 02:58:11 +00:00
The Dogfather da913d600f fix(ci): add Gitea CI workflow with all 4 image targets + Node 22 (GRO-1522)
CI / Lint & Typecheck (pull_request) Failing after 9s
CI / Test (pull_request) Failing after 10s
CI / Build & Push Docker Images (pull_request) Has been skipped
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-22 02:56:20 +00:00
Flea Flicker ce9fcfb362 fix: resolve pre-existing test and TypeScript errors for CI compliance
CI / Lint & Typecheck (pull_request) Failing after 6s
CI / Test (pull_request) Successful in 21s
CI / Build (pull_request) Has been skipped
CI / Build & Push Docker Images (pull_request) Has been skipped
CI / Update Infra Image Tags (pull_request) Has been skipped
- Fix CLIENT_ID/PET_ID in petsExtendedFields.test.ts to valid UUIDs so
  createPetSchema validation (z.string().uuid()) passes in tests
- Replace top-level imports of and/eq/exists/or with vi.fn() stubs in
  petsExtendedFields.test.ts mock to avoid vi.mock hoisting ReferenceError
- Add impersonationAuditLogs proxy + insert() chain to portal.test.ts mock
  to fix audit-log write failures
- Add 5 missing extended fields to buildPet factory defaults
- Add non-null assertion on petRows[0] in makeDeleteChainable

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-22 02:36:18 +00:00
Flea Flicker 59893908e2 fix: resolve pre-existing TypeScript errors for CI compliance
CI / Lint & Typecheck (pull_request) Failing after 17s
CI / Test (pull_request) Failing after 24s
CI / Build (pull_request) Has been skipped
CI / Build & Push Docker Images (pull_request) Has been skipped
CI / Update Infra Image Tags (pull_request) Has been skipped
- petsExtendedFields.test.ts: import and/eq/exists/or from db/index.js
  (avoids mock scope collision with TypeScript closures)
- petsExtendedFields.test.ts: add non-null assertion on petRows[0]
  in makeDeleteChainable (petRows always has at least one element)
- factories.ts buildPet: add missing extended pet fields to defaults
  (coatType, temperamentScore, temperamentFlags, medicalAlerts,
  preferredCuts) so the inferred PetRow type is satisfied

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-22 02:23:05 +00:00
Flea Flicker 2b78fcf731 fix(ci): build all service images + upgrade Node 22 + pin packageManager (GRO-1522)
CI / Lint & Typecheck (pull_request) Failing after 18s
CI / Test (pull_request) Failing after 26s
CI / Build (pull_request) Has been skipped
CI / Build & Push Docker Images (pull_request) Has been skipped
CI / Update Infra Image Tags (pull_request) Has been skipped
- Upgrade CI jobs (lint-typecheck, test, build) to Node 22
- Dockerfile uses node:22-alpine for base and runner stages
- Root package.json gets packageManager field for corepack pin
- Docker build already targets all 4 stages (api/migrate/seed/reset)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-22 02:16:49 +00:00
Flea Flicker c9e176f08c Merge branch 'dev' of https://git.farh.net/groombook/api into dev
CI / Lint & Typecheck (push) Failing after 14s
CI / Test (push) Failing after 20s
CI / Build & Push Docker Image (push) Has been skipped
2026-05-21 22:54:47 +00:00
Flea Flicker 0cab1522cf fix(deps): update pnpm-lock.yaml for better-auth ^1.5.6
ERR_PNPM_OUTDATED_LOCKFILE — specifiers in lockfile did not match
packages/db/package.json after better-auth upgrade.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 22:54:01 +00:00
The Dogfather 2a27e8bee2 Merge pull request 'fix(auth): add accountLinking trustedProviders for authentik (GRO-1509)' (#42) from flea-flicker/gro-1509-better-auth-account-not-linked into dev
CI / Lint & Typecheck (push) Failing after 5s
CI / Test (push) Failing after 6s
CI / Build & Push Docker Image (push) Has been skipped
fix(auth): add accountLinking trustedProviders for authentik (GRO-1509)

Merged-by: The Dogfather (CTO)
QA-approved-by: Lint Roller (GRO-1510)
2026-05-21 22:47:25 +00:00
Flea Flicker d6f7ade7bd docs(UAT): add TC-API-1.16 for OIDC login Terraform-provisioned users
CI / Lint & Typecheck (pull_request) Failing after 6s
CI / Test (pull_request) Failing after 6s
CI / Build & Push Docker Image (pull_request) Has been skipped
Updated UAT_PLAYBOOK.md §4.1 — new TC-API-1.16 covering OIDC login
for Terraform-provisioned users (GRO-1509 fix, GRO-1511).

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 22:44:04 +00:00
Flea Flicker 00dadac0a1 fix(auth): add accountLinking trustedProviders for authentik (GRO-1509)
CI / Test (pull_request) Failing after 44s
CI / Lint & Typecheck (pull_request) Failing after 52s
CI / Build & Push Docker Image (pull_request) Has been skipped
Betters Auth v1.5.6 link-account.mjs:22 rejects OAuth callbacks when the
genericOAuth provider is not in trustedProviders AND email_verified is
falsy. Adding authentik to trustedProviders bypasses this guard so OIDC
login works for TF-created users whose emails were never verified through
an authentik flow.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 22:24:48 +00:00
The Dogfather 9692476202 fix(GRO-1470): add portal PATCH /pets/:id + expand GET /pets response
CI / Lint & Typecheck (push) Failing after 7s
CI / Test (push) Failing after 7s
CI / Build & Push Docker Image (push) Has been skipped
2026-05-21 20:16:53 +00:00
Flea Flicker 44da26820b feat(GRO-1171): add Admin API — Buffer Rules CRUD + service/pet updates
CI / Lint & Typecheck (pull_request) Failing after 7s
CI / Test (pull_request) Failing after 9s
CI / Build & Push Docker Image (pull_request) Has been skipped
- Add buffer_rules table with serviceId/sizeCategory/coatType/bufferMinutes
- Add petSizeCategoryEnum (small/medium/large/extra_large) and coatTypeEnum
  to schema; update pets table columns to use the typed enums
- Add defaultBufferMinutes to services table
- Add apps/api/src/routes/buffer-rules.ts with GET/POST/PATCH/DELETE,
  all manager-only via requireRole("manager")
- Register /api/buffer-rules router in index.ts
- PATCH /api/services/:id accepts optional defaultBufferMinutes
- POST/PATCH /api/pets accepts optional sizeCategory and coatType

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 20:10:20 +00:00
Flea Flicker 21981fbdc4 fix(GRO-1365): add missing imports for and/eq/exists/or in test
The vi.mock factory uses db.and/eq/exists/or from the imported module,
but TypeScript's module-level import binding (const declarations)
can't be referenced inside the async factory before initialization.
Adding top-level imports from "../db/index.js" and using them
directly in the mock return fixes the TDZ error.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 20:10:20 +00:00
Chris Farhood 85fc803548 fix(GRO-1365): address QA review findings on api/#21
1. Fix vi.mock factory: importOriginal -> db.and/eq/exists/or stubs
   (removes ReferenceError from undeclared imports in test)
2. Remove MedicalAlert.id — not in schema/migration/DB, only in types
3. Replace z.string().max(100) coatType with z.enum for CoatType union
4. Fix test expecting coatType "smooth" (invalid) -> "double" (valid)
5. Add TC-API-3.8 through TC-API-3.15 to UAT_PLAYBOOK.md §4.3

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 20:10:20 +00:00
The Dogfather 6a3c1aa65e Merge pull request 'GRO-1178: client-facing enhanced pet profile editor' (#21) from flea-flicker/pet-profile-editor into dev
CI / Lint & Typecheck (push) Failing after 6s
CI / Test (push) Failing after 7s
CI / Build & Push Docker Image (push) Has been skipped
Merge PR #21: GRO-1178 — client-facing enhanced pet profile editor
2026-05-21 19:18:53 +00:00
The Dogfather 490ab06e8c Merge pull request 'fix(GRO-1461): expand UAT playbook with GRO-1272 auto-provision test cases' (#37) from fix/gro-1461-uat-playbook-auto-provision into dev
CI / Lint & Typecheck (push) Failing after 7s
CI / Test (push) Failing after 6s
CI / Build & Push Docker Image (push) Has been skipped
fix(GRO-1461): expand UAT playbook with GRO-1272 auto-provision test cases
2026-05-21 16:48:58 +00:00
Flea Flicker 609f86b927 fix(GRO-1461): expand UAT playbook with GRO-1272 auto-provision test cases
CI / Lint & Typecheck (pull_request) Failing after 6s
CI / Test (pull_request) Failing after 6s
CI / Build & Push Docker Image (pull_request) Has been skipped
Add TC-API-1.11 through TC-API-1.15 covering existing staff unaffected by
OIDC login, auto-provisioned role/superUser flags, and name fallback
variants (name present, no name+email present, no name+no email).

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 16:37:43 +00:00
The Dogfather a74423c8b4 fix: align types/index.ts with dev to resolve merge conflict
CI / Lint & Typecheck (pull_request) Failing after 6s
CI / Test (pull_request) Failing after 7s
CI / Build & Push Docker Image (pull_request) Has been skipped
2026-05-21 15:07:57 +00:00
Chris Farhood 05cb91a13e fix(GRO-1365): address QA review findings on api/#21
1. Fix vi.mock factory: importOriginal -> db.and/eq/exists/or stubs
   (removes ReferenceError from undeclared imports in test)
2. Remove MedicalAlert.id — not in schema/migration/DB, only in types
3. Replace z.string().max(100) coatType with z.enum for CoatType union
4. Fix test expecting coatType "smooth" (invalid) -> "double" (valid)
5. Add TC-API-3.8 through TC-API-3.15 to UAT_PLAYBOOK.md §4.3

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 15:07:57 +00:00
Chris Farhood 1b264d715d fix: add missing extended pet profile fields to buildPet factory
- Add coatType, temperamentScore, temperamentFlags, medicalAlerts, preferredCuts
- Fixes TypeScript error on factories.ts:89 where extended profile fields were missing
- GRO-1346

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 15:07:30 +00:00
The Dogfather 73461f2200 Merge pull request 'fix(GRO-1272): auto-provision staff record on first OIDC login' (#19) from fleaflicker/gro-1272-auto-provision-staff-dev into dev
CI / Lint & Typecheck (push) Failing after 7s
CI / Test (push) Failing after 7s
CI / Build & Push Docker Image (push) Has been skipped
fix(GRO-1272): auto-provision staff record on first OIDC login (#19)

Fixes HTTP 403 on all authenticated routes for new OIDC users by auto-creating
a minimal groomer staff record on first login when a Better-Auth user exists
but no staff record is found.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 14:16:42 +00:00
Flea Flicker 9b24e299db feat(GRO-1445): provision Better-Auth credential accounts in seed.ts
CI / Lint & Typecheck (push) Failing after 6s
CI / Test (push) Failing after 6s
CI / Build & Push Docker Image (push) Has been skipped
GRO-1325 was marked done but never implemented. This adds the missing
Better-Auth user + account seeding for UAT email+password logins.

For each SEED_UAT_*_PASSWORD env var present, the seed now:
1. Creates (or links to existing) a Better-Auth user record with
   emailVerified: true
2. Creates a credential account with providerId: "credential"
   and a bcrypt-hashed password (using better-auth/crypto)
3. Links the staff record to the Better-Auth user via userId

Idempotent: skips user/account creation if already seeded.

Updated UAT_PLAYBOOK.md §4.1 — TC-API-1.4 through 1.9 now reference
the new seed provisioning (GRO-1325 was the missing piece).

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 11:28:30 +00:00
The Dogfather e6803c7061 Merge pull request '[gro-1171] Admin API — Buffer Rules CRUD' (#12) from flea-flicker/gro-1162-pet-buffer-time into dev
CI / Lint & Typecheck (push) Failing after 14s
CI / Test (push) Successful in 20s
CI / Build & Push Docker Image (push) Has been skipped
[gro-1171] Admin API — Buffer Rules CRUD

Merge PR #12: flea-flicker/gro-1162-pet-buffer-time → dev

QA approved (review 3417), CTO approved (review 3423).
CI lint+typecheck+tests all pass.
2026-05-21 10:17:34 +00:00
Flea Flicker 24c1a603ec fix: add missing COPY tsconfig.json to builder stage
CI / Lint & Typecheck (pull_request) Failing after 13s
CI / Test (pull_request) Successful in 20s
CI / Build & Push Docker Image (pull_request) Has been skipped
tsc --project . fails without tsconfig.json in the builder stage.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 10:01:42 +00:00
Flea Flicker 07eb611549 feat(GRO-1427): add buffer rules CRUD — enums, table, routes
Re-implement lost commit from worktree cleanup. PR #12 already has
UAT_PLAYBOOK + factories fix; add all missing core implementation:
- Add petSizeCategoryEnum/coatTypeEnum to schema
- Add bufferRules table with service FK + unique constraint
- Add defaultBufferMinutes column to services table
- Change pets.coatType/petSizeCategory text columns to use enums
- Add routes/buffer-rules.ts: GET/POST/PATCH/DELETE, manager role guard
- Register /api/buffer-rules in index.ts
- Update services.ts PATCH to accept defaultBufferMinutes
- Update pets.ts POST/PATCH to accept sizeCategory/coatType
- Cast coatType/petSizeCategory in book.ts insert to match new enums
- Add 0031_buffer_rules.sql migration
- Fix factories.ts buildService to include defaultBufferMinutes: null

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 10:01:40 +00:00
Flea Flicker 1345db3620 fix(GRO-1171): restore UAT_PLAYBOOK and add coatType/petSizeCategory to buildPet
Address QA review findings on PR #12:
- Add coatType and petSizeCategory to buildPet defaults in packages/db/src/factories.ts
  to fix TypeScript typecheck failure
- Restore UAT_PLAYBOOK.md (was deleted during monorepo extraction) and add
  §4.15 Buffer Rules test cases

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 10:01:39 +00:00
Chris Farhood b067ba8b85 Save petSizeCategory to pet record on booking creation
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 10:01:38 +00:00
Chris Farhood 3d41820f02 feat(GRO-1174): add MedicalAlert/CoatType/AlertSeverity types to @groombook/types
Sync api packages/types with web workspace — add MedicalAlert, AlertSeverity,
CoatType, preferredCuts, medicalAlerts, temperamentScore, temperamentFlags.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 10:01:38 +00:00
Chris Farhood 73f39951b3 feat(GRO-1174): persist petSizeCategory and petCoatType from booking
- Add petSizeCategory and petCoatType to bookingSchema zod validator (optional)
- Save coatType to pets row on booking creation
- Add coatType and petSizeCategory columns to pets DB schema
- Add coatType and petSizeCategory to Pet interface in @groombook/types

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 10:01:37 +00:00
Lint Roller fdd9d62ee9 Merge pull request 'fix(test): resolve petsExtendedFields vi.mock hoisting + invalid UUIDs (GRO-1390)' (#32) from fix/gro-1390-pets-test-mock-hoisting into dev
CI / Lint & Typecheck (push) Successful in 17s
CI / Test (push) Successful in 21s
CI / Build & Push Docker Image (push) Successful in 11s
2026-05-21 07:02:58 +00:00
Chris Farhood c1d28635ba fix(test): fix petsExtendedFields vi.mock hoisting and invalid UUIDs
CI / Lint & Typecheck (pull_request) Successful in 16s
CI / Test (pull_request) Successful in 21s
CI / Build & Push Docker Image (pull_request) Successful in 27s
Two pre-existing bugs prevented petsExtendedFields.test.ts from running:

1. vi.mock factory referenced bare `and`, `eq`, `exists`, `or` variables
   that are undefined at hoist time — replaced with inline mock functions
2. CLIENT_ID/PET_ID used non-UUID strings but Zod schema requires uuid()

All 36 test files (521 tests) now pass.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 05:28:39 +00:00
The Dogfather 51b45b529d Merge pull request 'fix(GRO-1395): add drizzle-orm and postgres to root package.json' (#29) from fix/gro-1395-drizzle-orm-root-dep into dev
CI / Lint & Typecheck (push) Successful in 15s
CI / Test (push) Failing after 20s
CI / Build & Push Docker Image (push) Has been skipped
fix(GRO-1395): add drizzle-orm and postgres to root package.json (#29)

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 04:05:32 +00:00
Flea Flicker 4204bea2b3 fix(GRO-1395): add drizzle-orm and postgres to root package.json
CI / Lint & Typecheck (pull_request) Successful in 16s
CI / Test (pull_request) Failing after 20s
CI / Build & Push Docker Image (pull_request) Has been skipped
Add drizzle-orm ^0.38.4 and postgres ^3.4.5 to root package.json
dependencies so that pnpm --frozen-lockfile install in CI makes
them available at the root node_modules level.

apps/api is not a pnpm workspace member (workspace declares
packages: ["apps/*"]), so CI's pnpm install does not reach into
apps/api/node_modules/. Adding these deps to the root package.json
fixes the ERR_MODULE_NOT_FOUND error that Vitest encountered when
running tests under pnpm --frozen-lockfile.

Also moves drizzle-orm and postgres from apps/api/devDependencies
to dependencies per the issue spec.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 03:19:25 +00:00
Chris Farhood ea825dfdda fix(GRO-1272): address QA review items for rbac.test.ts
CI / Lint & Typecheck (pull_request) Successful in 16s
CI / Test (pull_request) Failing after 21s
CI / Build & Push Docker Image (pull_request) Has been skipped
- Rename insertedStaff to _insertedStaff (ESLint unused var, line 49)
- Rename table param to _table in insert mock (ESLint unused param, line 91)
- Fix buildApp jwtPayload to prefer userLookupResult.id over staffLookupResult.userId
  (corrects auto-provision test failures where sub was 'unknown-sub' instead of 'ba-user-new')

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 02:03:13 +00:00
Chris Farhood f9b68eb932 fix(GRO-1272): fix TS2769 and test mock iterable issues
- Add null guard for newStaff after .returning() in auto-provision block
- Make buildQuery() iterable without .limit() call (for WHERE-only queries)
- Use fallback in .limit() for manager-fallback dev-mode tests

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 02:01:00 +00:00
Chris Farhood 4a80440513 fix(GRO-1272): update rbac tests and UAT playbook for auto-provision
- Add user table mock and db.insert returning chain to rbac.test.ts
- Add three new tests: happy-path auto-provision, email-prefix fallback,
  and miss-path (no user → 403)
- Add TC-API-1.4 to UAT_PLAYBOOK.md §4.1 for first-login auto-provision

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-21 02:01:00 +00:00
Chris Farhood ce83b1847d fix(GRO-1272): auto-provision staff record on first OIDC login
When a user authenticates via OIDC but has no staff record (userId NULL,
oidcSub mismatch, email mismatch), resolveStaffMiddleware now checks for
a Better-Auth user record by jwt.sub and auto-creates a minimal groomer
staff record on first login.

This fixes the UAT regression where all API routes returned 403 for all
authenticated users after GRO-1207, because seedKnownUsers() sets
oidcSub to Authentik integer PKs or emails rather than the actual Authentik
OIDC sub (a UUID). The auto-provision path bridges the gap for all UAT
personas without requiring seed/Terraform changes.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 02:00:46 +00:00
The Dogfather f36a3626a8 Merge pull request 'fix(ci): use REGISTRY_TOKEN for Docker push auth' (#24) from gitea/migrate-workflows into dev
CI / Lint & Typecheck (push) Successful in 16s
CI / Test (push) Failing after 21s
CI / Build & Push Docker Image (push) Has been skipped
Merge gitea/migrate-workflows into dev: fix(ci) REGISTRY_TOKEN, Dockerfile, schema updates
2026-05-21 01:26:29 +00:00
Chris Farhood 90b3811577 Merge dev into gitea/migrate-workflows (allow-unrelated-histories)
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Test (pull_request) Failing after 20s
CI / Build & Push Docker Image (pull_request) Has been skipped
Merges the dev branch history into gitea/migrate-workflows to resolve
PR #24. The two branches had unrelated git histories due to the Gitea
migration. Conflict resolution favors gitea/migrate-workflows for
packages/, src/, .gitea/ structure and dev for apps/, .github/ content.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-21 01:24:41 +00:00
Chris Farhood 467b85abc7 fix(docker): use pnpm --filter for all monorepo package builds
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Test (pull_request) Successful in 20s
CI / Build & Push Docker Image (pull_request) Successful in 27s
Use pnpm --filter consistently for all three package builds in the
Dockerfile instead of mixing filter and cd approaches. Also set
--project . explicitly on tsc invocations to ensure tsconfig resolution
from the package directory rather than workspace root.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-20 12:55:24 +00:00
Chris Farhood e417d8f6a7 fix(docker): use absolute tsconfig.json path for tsc
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Test (pull_request) Successful in 20s
CI / Build & Push Docker Image (pull_request) Failing after 19s
tsc -p /app does not resolve to tsconfig.json at /app/tsconfig.json
without an explicit filename. Pass the full path.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-20 12:51:51 +00:00
Chris Farhood fc82e24ead fix(docker): use absolute tsconfig path for api build
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Test (pull_request) Successful in 21s
CI / Build & Push Docker Image (pull_request) Failing after 20s
When pnpm --filter runs the api package build, tsc cannot find the
tsconfig.json. Use an absolute path to avoid any ambiguity about the
working directory context.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-20 12:49:56 +00:00
Chris Farhood c3c99ad6c4 fix(docker): use -p flag for explicit tsconfig path
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Test (pull_request) Successful in 20s
CI / Build & Push Docker Image (pull_request) Failing after 20s
Both -p . and --project . should be equivalent, but the Docker build
appears to resolve them differently. Use -p for consistency.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-20 12:40:38 +00:00
Chris Farhood a205fe1138 fix(docker): cd into packages/db before building
CI / Lint & Typecheck (pull_request) Successful in 16s
CI / Test (pull_request) Successful in 21s
CI / Build & Push Docker Image (pull_request) Failing after 20s
pnpm --filter runs in the workspace root where tsc finds the root
tsconfig.json instead of packages/db/tsconfig.json. Change into the
package directory so tsc picks up the correct local tsconfig.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-20 12:37:10 +00:00
The Dogfather ff024ab375 Merge pull request 'chore: add Renovate config (GRO-1081)' (#17) from add-renovate-config into dev
CI / Lint & Typecheck (push) Failing after 14s
CI / Test (push) Failing after 20s
CI / Build (push) Has been skipped
CI / Build & Push Docker Images (push) Has been skipped
CI / Update Infra Image Tags (push) Has been skipped
chore: add Renovate config (GRO-1081) (#17)
2026-05-20 12:37:08 +00:00
Chris Farhood 01069f8c6c fix(docker): use explicit tsconfig in db package build
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Test (pull_request) Successful in 20s
CI / Build & Push Docker Image (pull_request) Failing after 20s
tsc without --project traverses up to workspace root, which has a
different tsconfig.json that lacks package-local paths. Fix both
@groombook/types and @groombook/db scripts consistently.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-20 12:33:26 +00:00
Chris Farhood 43f17dc612 fix(docker): use explicit tsconfig in api build command
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Test (pull_request) Successful in 20s
CI / Build & Push Docker Image (pull_request) Failing after 22s
tsc without --project flag picks up tsconfig.json from the workspace
root, which lacks the packages/* paths needed for the monorepo build.
Explicit --project . ensures tsc uses the local tsconfig.json.

Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-20 12:29:40 +00:00
Chris Farhood d9bfed4424 fix(GRO-1350): add missing coatType and petSizeCategory to buildPet defaults
CI / Lint & Typecheck (pull_request) Successful in 15s
CI / Test (pull_request) Successful in 20s
CI / Build & Push Docker Image (pull_request) Failing after 20s
PetRow (pets.$inferSelect) now includes these nullable columns after
the GRO-1174 migration, but buildPet's defaults were never updated.
Adding null defaults fixes the typecheck failure in CI.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-20 11:26:11 +00:00
Chris Farhood 1403517067 fix(GRO-1350): use explicit tsconfig path in packages/types build
CI / Lint & Typecheck (pull_request) Failing after 13s
CI / Test (pull_request) Successful in 21s
CI / Build & Push Docker Image (pull_request) Has been skipped
tsc without --project flag fails to find tsconfig.json when run from
a nested package directory inside a Docker COPY layer that overlays
files after deps install. Use explicit --project . to ensure tsc
finds the local tsconfig.json regardless of working directory context.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-20 11:16:50 +00:00
Chris Farhood 9c5e470737 Save petSizeCategory to pet record on booking creation
CI / Lint & Typecheck (pull_request) Failing after 15s
CI / Test (pull_request) Successful in 23s
CI / Build & Push Docker Image (pull_request) Has been skipped
Co-Authored-By: Paperclip <noreply@paperclip.ing>
2026-05-20 05:25:59 +00:00