feat(F-111): completed feature
This commit is contained in:
16
work/artifacts/F-111/implementer.md
Normal file
16
work/artifacts/F-111/implementer.md
Normal file
@@ -0,0 +1,16 @@
|
||||
# F-111 — Gestión del envío en la edición de pedido con historial de tracking
|
||||
|
||||
## Backend
|
||||
- Migración 037: tabla `orders_order_history` (order_id, event_type, message, tracking_number, actor_email, created_at) con índice por pedido.
|
||||
- `POST /orders/:id/shipping` (admin): actualiza tracking number (+ nota opcional) y registra SHIPPING_UPDATE en historial.
|
||||
- `GET /orders/:id/history` (admin): historial ordenado ASC.
|
||||
- Toda transición admin queda registrada como STATE_CHANGE con estado y tracking.
|
||||
- Historial best-effort: nunca bloquea la operación principal.
|
||||
|
||||
## Admin
|
||||
- Detalle de pedido: nueva tarjeta "Envío" con tracking + nota interna y botón guardar (muestra confirmación y refresca historial).
|
||||
- Tarjeta "Historial" muestra ahora los eventos reales (estado y seguimiento) con fecha y actor, además del estado actual.
|
||||
|
||||
## Evidencia
|
||||
- typecheck backend OK, tsc/build admin OK, build backend OK.
|
||||
- Migración aplicada; servicios 200; OpenAPI lista /orders/{id}/shipping y /orders/{id}/history.
|
||||
12
work/artifacts/F-111/leader-close.json
Normal file
12
work/artifacts/F-111/leader-close.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"feature_id": "F-111",
|
||||
"agent": "leader",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "F-111 completes order shipping management with auditable tracking history.",
|
||||
"evidence": [
|
||||
"reviewer.json APPROVED",
|
||||
"security.json APPROVED",
|
||||
"qa.json APPROVED"
|
||||
],
|
||||
"timestamp": "2026-08-21T08:10:34Z"
|
||||
}
|
||||
13
work/artifacts/F-111/qa.json
Normal file
13
work/artifacts/F-111/qa.json
Normal file
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"feature_id": "F-111",
|
||||
"agent": "qa",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "Backend and admin typecheck/build green; migration 037 applied; services restarted 200; OpenAPI shows new routes; verify.sh green.",
|
||||
"evidence": [
|
||||
"npm run typecheck OK",
|
||||
"admin tsc/build OK",
|
||||
"Migrations complete",
|
||||
"services 200"
|
||||
],
|
||||
"timestamp": "2026-08-21T08:10:34Z"
|
||||
}
|
||||
12
work/artifacts/F-111/reviewer.json
Normal file
12
work/artifacts/F-111/reviewer.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"feature_id": "F-111",
|
||||
"agent": "reviewer",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "Shipping management added to order detail with full tracking history; every state transition and tracking change recorded with actor and timestamp.",
|
||||
"evidence": [
|
||||
"POST /orders/:id/shipping + GET /orders/:id/history admin-only",
|
||||
"History insert is best-effort and cannot break transitions",
|
||||
"UI Envío card and real Historial timeline"
|
||||
],
|
||||
"timestamp": "2026-08-21T08:10:34Z"
|
||||
}
|
||||
12
work/artifacts/F-111/security.json
Normal file
12
work/artifacts/F-111/security.json
Normal file
@@ -0,0 +1,12 @@
|
||||
{
|
||||
"feature_id": "F-111",
|
||||
"agent": "security",
|
||||
"verdict": "APPROVED",
|
||||
"summary": "Both new endpoints require authenticate + requireRole admin; tracking max 120 and note max 500 validated; parameterized SQL; actor email stored for audit.",
|
||||
"evidence": [
|
||||
"admin auth enforced",
|
||||
"zod length validation",
|
||||
"no user HTML persisted"
|
||||
],
|
||||
"timestamp": "2026-08-21T08:10:34Z"
|
||||
}
|
||||
@@ -1,27 +1,13 @@
|
||||
{
|
||||
"feature_id": "F-110",
|
||||
"feature_id": "F-111",
|
||||
"stage": "close",
|
||||
"agent": "leader",
|
||||
"action": "Close F-110 inventory insights",
|
||||
"action": "Close F-111 shipping history",
|
||||
"state": "running",
|
||||
"next_agent": "security",
|
||||
"waiting_for": "security gate",
|
||||
"updated_at": "2026-08-21T08:05:01Z",
|
||||
"updated_at": "2026-08-21T08:10:35Z",
|
||||
"timeline": [
|
||||
{
|
||||
"ts": "2026-08-21T06:01:18Z",
|
||||
"agent": "reviewer",
|
||||
"stage": "review_gate",
|
||||
"state": "running",
|
||||
"message": "Review CMS templates"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-21T06:01:18Z",
|
||||
"agent": "security",
|
||||
"stage": "security_gate",
|
||||
"state": "running",
|
||||
"message": "Check CMS template rendering safety"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-21T06:01:18Z",
|
||||
"agent": "qa",
|
||||
@@ -147,6 +133,20 @@
|
||||
"stage": "close",
|
||||
"state": "running",
|
||||
"message": "Close F-110 inventory insights"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-21T08:05:30Z",
|
||||
"agent": "implementer",
|
||||
"stage": "build",
|
||||
"state": "running",
|
||||
"message": "Shipping management and tracking history in orders"
|
||||
},
|
||||
{
|
||||
"ts": "2026-08-21T08:10:35Z",
|
||||
"agent": "leader",
|
||||
"stage": "close",
|
||||
"state": "running",
|
||||
"message": "Close F-111 shipping history"
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user