feat(F-088): completed feature

This commit is contained in:
chattie
2026-08-20 21:29:14 +02:00
parent 63fdc775d9
commit 699c01ade5
40 changed files with 996 additions and 381 deletions

View File

@@ -0,0 +1,28 @@
# F-088 — Implementer evidence
## Change
Updated `project/apps/admin/src/lib/api-client.ts` so `taxApi.update` accepts:
```ts
appliesTo?: 'general' | 'reduced' | 'super-reduced'
```
This matches the backend Zod enum and the existing `TaxRate.appliesTo` field used by F-085's inline editor.
## Validation
- `cd project/apps/admin && npx tsc --noEmit` → exit 0
- `cd project/apps/admin && NEXT_PUBLIC_API_URL=http://192.168.18.93:3000 npm run build` → exit 0
- `.next/BUILD_ID` generated: `_bLiqJ4gfyeZE2fRSXk5Q`
- ESLint on touched client file → 0 errors, one pre-existing warning
- Admin production process running on port 3004
- `curl http://127.0.0.1:3004/` → HTTP 200
- `curl http://192.168.18.93:3004/` → HTTP 200
## Acceptance trace
- `taxApi.update` accepts the validated `appliesTo` enum → PASS
- Admin TypeScript check passes → PASS
- Production build generates required artifacts → PASS
- Admin remains reachable on LAN port 3004 → PASS

View File

@@ -0,0 +1,16 @@
{
"feature_id": "F-088",
"agent": "leader",
"verdict": "APPROVED",
"summary": "F-088 fixes the F-085 regression that prevented the admin production build. The admin now serves HTTP 200 on LAN port 3004.",
"evidence": [
"reviewer.json verdict=APPROVED",
"security.json verdict=APPROVED",
"qa.json verdict=APPROVED",
"scripts/verify.sh exit 0",
"apps/admin tsc exit 0",
"apps/admin production build exit 0 with .next/BUILD_ID",
"http://192.168.18.93:3004/ returned HTTP 200"
],
"timestamp": "2026-08-20T19:29:20Z"
}

View File

@@ -0,0 +1,14 @@
{
"feature_id": "F-088",
"agent": "qa",
"verdict": "APPROVED",
"summary": "Admin typecheck, production build, and LAN HTTP smoke test pass after the client type correction.",
"evidence": [
"npx tsc --noEmit in project/apps/admin exit 0",
"npm run build in project/apps/admin exit 0",
"project/apps/admin/.next/BUILD_ID exists",
"curl http://127.0.0.1:3004/ returned HTTP 200",
"curl http://192.168.18.93:3004/ returned HTTP 200"
],
"timestamp": "2026-08-20T19:28:50Z"
}

View File

@@ -0,0 +1,13 @@
{
"feature_id": "F-088",
"agent": "reviewer",
"verdict": "APPROVED",
"summary": "The one-line client type correction matches the existing backend enum and resolves the admin production build failure without changing runtime behavior outside the intended appliesTo field.",
"evidence": [
"project/apps/admin/src/lib/api-client.ts adds appliesTo: general | reduced | super-reduced to taxApi.update",
"apps/admin npx tsc --noEmit exit 0",
"apps/admin npm run build exit 0 and .next/BUILD_ID exists",
"GET http://192.168.18.93:3004/ returned HTTP 200"
],
"timestamp": "2026-08-20T19:28:30Z"
}

View File

@@ -0,0 +1,13 @@
{
"feature_id": "F-088",
"agent": "security",
"verdict": "APPROVED",
"summary": "Type-only change broadens the client payload type to the same three-value enum already enforced by the backend; no new input surface, dependency, auth, or secret exposure.",
"evidence": [
"Allowed values are exactly general, reduced, and super-reduced",
"Backend pricing route already validates appliesTo with a Zod enum",
"No dependencies, database schema, authentication, or authorization changes",
"No secrets or unsafe dynamic code added"
],
"timestamp": "2026-08-20T19:28:40Z"
}