feat(F-092): completed feature

This commit is contained in:
chattie
2026-08-20 21:51:46 +02:00
parent 4d0970df5d
commit 715a8dac56
10 changed files with 181 additions and 70 deletions

View File

@@ -0,0 +1,15 @@
# F-092 — Implementer evidence
## Change
Moved the existing `Fecha de caducidad` date input in `project/apps/admin/src/features/products/components/ProductEditor.tsx` from the SEO tab section into the General tab section.
The same `expirationDate` state, `onChange` handler, load behavior, and save payload remain unchanged. The SEO tab no longer renders the field.
## Deployment validation
- Admin `npm run build` → exit 0
- Admin `npx tsc --noEmit` → exit 0
- Admin ESLint on `ProductEditor.tsx` → 0 errors (pre-existing warnings only)
- Admin restarted on port 3004 → HTTP 200
- Backend rebuilt/restarted so the existing brand and expiration serialization is live in `dist`.

View File

@@ -0,0 +1,15 @@
{
"feature_id": "F-092",
"agent": "leader",
"verdict": "APPROVED",
"summary": "F-092 moves Fecha de caducidad from SEO to General and redeploys the admin while keeping data behavior unchanged.",
"evidence": [
"reviewer.json verdict=APPROVED",
"security.json verdict=APPROVED",
"qa.json verdict=APPROVED",
"Admin build exit 0",
"Admin HTTP smoke test returned 200",
"scripts/verify.sh exit 0"
],
"timestamp": "2026-08-20T19:51:50Z"
}

View File

@@ -0,0 +1,14 @@
{
"feature_id": "F-092",
"agent": "qa",
"verdict": "APPROVED",
"summary": "The expiration date placement and rebuilt admin deployment pass the available checks.",
"evidence": [
"Admin npm run build exit 0",
"Admin npx tsc --noEmit exit 0",
"Admin ESLint ProductEditor exit 0 with warnings only",
"GET http://192.168.18.93:3004/ returned HTTP 200",
"scripts/verify.sh exit 0"
],
"timestamp": "2026-08-20T19:51:40Z"
}

View File

@@ -0,0 +1,13 @@
{
"feature_id": "F-092",
"agent": "reviewer",
"verdict": "APPROVED",
"summary": "The expiration date control is now in General and retains the existing state, API payload, and date input behavior; SEO no longer contains the operational field.",
"evidence": [
"ProductEditor renders Fecha de caducidad inside the general tab block",
"SEO tab expiration block was removed",
"expirationDate state and save payload are unchanged",
"Admin production build succeeds"
],
"timestamp": "2026-08-20T19:51:20Z"
}

View File

@@ -0,0 +1,13 @@
{
"feature_id": "F-092",
"agent": "security",
"verdict": "APPROVED",
"summary": "This is a presentation-only move. Existing date input validation, API payload, authorization, and backend handling remain unchanged.",
"evidence": [
"No backend or database changes",
"Existing type=date control remains in use",
"No new input or data exposure introduced",
"Existing product update authorization and validation are unchanged"
],
"timestamp": "2026-08-20T19:51:30Z"
}