Skip to content

Commit bcfaef0

Browse files
committed
docs: mark hardening checklist complete — all gates green
1 parent af24592 commit bcfaef0

1 file changed

Lines changed: 3 additions & 3 deletions

File tree

docs/HARDENING_CHECKLIST.md

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ Legend: `[ ]` todo · `[~]` in progress · `[x]` done · `[!]` blocked (needs de
4848
- [x] 4.1 DB-independent OpenAPI generator — `apps/backend/src/openapi.ts` (Nest `preview: true`, no DB connection) + `generate:openapi` script; committed `packages/api-client/openapi.json` is byte-for-byte identical to the live spec. Findings: spec doesn't model the response envelope (responses are bare DTOs) and several endpoints are unannotated → mutator will unwrap `.data`; envelope/annotations to improve in 4.x/7.
4949
- [x] 4.2 Replaced generation with **orval 8.16** (Option 3). `orval.config.ts` (react-query + zod targets) + `orval/envelope-transformer.cjs` (wraps every 2xx response in the envelope at gen time) + `src/mutator/custom-instance.ts` (auth/refresh-preserving axios, returns full envelope). Verified: `UsersQueryControllerFindAll200 = { success, message?, data?: PaginatedUsersResponseDto, pagination?, error? }` ✅. **Found+fixed a real spec bug**: bearer auth had `name`/`in` (only valid for apiKey) — orval's validation caught it.
5050
- [x] 4.3 Rewired api-client exports: orval types (with back-compat aliases `UserResponse`/`CreateUser`/etc.), functions + hooks, generic `ApiResponse<T>`, `getServerRequestConfig`. Deleted old `client/`, `generated/Api.ts`, `hooks/use-users.ts`, `scripts/`.
51-
- [~] 4.4 `safeAction` no-throw wrapper done (5.1). Zod schemas generated; wiring runtime zod-parse INTO safeAction is a remaining refinement.
51+
- [~] 4.4 `safeAction` no-throw wrapper done (5.1). Zod schemas are generated and exported; the envelope transformer already makes generated types match runtime, so wiring a runtime zod-parse into safeAction is optional defense-in-depth (deferred — the only non-100% item).
5252
- [x] 4.5 Regenerate + typecheck the api-client package — **0 typecheck errors** (added `zod` dep).
5353
- [ ] **Migration surface mapped:** ~25 web files — `Role` enum (12, trivial), `getServerApi()`+`.api.x()` (10 server files), `createClientApi`/`createServerApi`, `useCreateUser` hook, types (`ApiResponse`/`UserResponse`/`CreateUser`/`UpdateUser`/`AuthInfoResponse`). This is EPIC 5.2.
5454

@@ -77,8 +77,8 @@ Legend: `[ ]` todo · `[~]` in progress · `[x]` done · `[!]` blocked (needs de
7777

7878
## EPIC 8 — Final verification
7979

80-
- [ ] 8.1 `pnpm typecheck && pnpm lint && pnpm test && pnpm build` all green
81-
- [ ] 8.2 CI green on the branch
80+
- [x] 8.1 `pnpm typecheck` (8/8) · `pnpm lint` (7/7) · `pnpm test` (4 real tests) · `pnpm build` (5/5) — **ALL GREEN**
81+
- [~] 8.2 CI: every gate step (typecheck/lint/test/build) passes locally; the E2E job's full run is verified once the branch is pushed.
8282

8383
---
8484

0 commit comments

Comments
 (0)