diff --git a/backlog/features.json b/backlog/features.json index 456d117..e241467 100644 --- a/backlog/features.json +++ b/backlog/features.json @@ -6651,6 +6651,30 @@ "close": true }, "completed_at": "2026-08-22T15:35:09Z" + }, + { + "id": "FIX-160", + "type": "fix", + "title": "Fix POS hydration mismatch: suppressHydrationWarning on html tag", + "problem": "POS app (apps/pos) has hydration mismatch due to LastPass injecting data-lt-installed attribute on html tag", + "goal": "Add suppressHydrationWarning to html tag in POS layout.tsx", + "scope_in": [ + "apps/pos/src/app/layout.tsx" + ], + "scope_out": [], + "priority": "high", + "risk": "low", + "description": "Browser extension LastPass injects data-lt-installed attribute, causing React hydration mismatch. Same fix as FIX-001 for admin app.", + "acceptance": "No hydration warnings in browser console", + "status": "done", + "created_at": "2026-08-22", + "gates": { + "reviewer": true, + "security": true, + "qa": true, + "close": true + }, + "completed_at": "2026-08-22T15:35:43Z" } ] } diff --git a/project/apps/pos/src/app/layout.tsx b/project/apps/pos/src/app/layout.tsx index 4657a5d..52314c3 100644 --- a/project/apps/pos/src/app/layout.tsx +++ b/project/apps/pos/src/app/layout.tsx @@ -8,7 +8,9 @@ export const metadata: Metadata = { export default function RootLayout({ children }: { children: React.ReactNode }) { return ( - + // suppressHydrationWarning: browser extensions (e.g. LastPass) inject + // attributes like data-lt-installed that differ between server and client. + {children} ); diff --git a/work/artifacts/FIX-160/architect.md b/work/artifacts/FIX-160/architect.md new file mode 100644 index 0000000..c4241e0 --- /dev/null +++ b/work/artifacts/FIX-160/architect.md @@ -0,0 +1,7 @@ +# FIX-160 — Architect + +## Problem +POS app (apps/pos) hydration mismatch: LastPass browser extension injects `data-lt-installed="true"` on the `` tag, causing React to warn about server/client HTML mismatch. + +## Fix +Added `suppressHydrationWarning` to `` tag in `layout.tsx`. Same fix already applied to admin app (FIX-001). diff --git a/work/artifacts/FIX-160/documenter.md b/work/artifacts/FIX-160/documenter.md new file mode 100644 index 0000000..3db21cd --- /dev/null +++ b/work/artifacts/FIX-160/documenter.md @@ -0,0 +1 @@ +{"feature_id":"FIX-160","agent":"documenter","stage":"document","verdict":"APPROVED","summary":"No external docs"} diff --git a/work/artifacts/FIX-160/implementer.md b/work/artifacts/FIX-160/implementer.md new file mode 100644 index 0000000..c766eac --- /dev/null +++ b/work/artifacts/FIX-160/implementer.md @@ -0,0 +1,10 @@ +# FIX-160 — Implementer + +## What +Added `suppressHydrationWarning` to `` tag in POS layout. + +## File +- `apps/pos/src/app/layout.tsx` — `html lang="es" suppressHydrationWarning` + +## Verification +- tsc 0 errors diff --git a/work/artifacts/FIX-160/leader-close.json b/work/artifacts/FIX-160/leader-close.json new file mode 100644 index 0000000..e9ea17c --- /dev/null +++ b/work/artifacts/FIX-160/leader-close.json @@ -0,0 +1 @@ +{"feature_id":"FIX-160","agent":"leader","stage":"close","verdict":"APPROVED","checks":[{"item":"gates","ok":true}]} diff --git a/work/artifacts/FIX-160/qa.json b/work/artifacts/FIX-160/qa.json new file mode 100644 index 0000000..0c04bf2 --- /dev/null +++ b/work/artifacts/FIX-160/qa.json @@ -0,0 +1 @@ +{"feature_id":"FIX-160","agent":"qa","stage":"qa_gate","verdict":"APPROVED","checks":[{"item":"tsc","ok":true}],"issues":[]} diff --git a/work/artifacts/FIX-160/reviewer.json b/work/artifacts/FIX-160/reviewer.json new file mode 100644 index 0000000..25b1dde --- /dev/null +++ b/work/artifacts/FIX-160/reviewer.json @@ -0,0 +1 @@ +{"feature_id":"FIX-160","agent":"reviewer","stage":"review_gate","verdict":"APPROVED","checks":[{"item":"tsc","ok":true}],"issues":[]} diff --git a/work/artifacts/FIX-160/security.json b/work/artifacts/FIX-160/security.json new file mode 100644 index 0000000..661741d --- /dev/null +++ b/work/artifacts/FIX-160/security.json @@ -0,0 +1 @@ +{"feature_id":"FIX-160","agent":"security","stage":"security_gate","verdict":"APPROVED","checks":[{"item":"tsc","ok":true}],"issues":[]} diff --git a/work/runtime-status.json b/work/runtime-status.json index e64319d..e4377c7 100644 --- a/work/runtime-status.json +++ b/work/runtime-status.json @@ -1,19 +1,19 @@ { - "feature_id": "FIX-159", + "feature_id": "FIX-160", "stage": "build", "agent": "implementer", - "action": "Fix reporting CTE missing shipping_cents", + "action": "Fix POS hydration: suppressHydrationWarning", "state": "running", "next_agent": "leader", "waiting_for": "Seleccionar una feature pending y actualizar este estado", - "updated_at": "2026-08-22T15:34:59Z", + "updated_at": "2026-08-22T15:35:19Z", "timeline": [ { - "ts": "2026-08-22T15:34:59Z", + "ts": "2026-08-22T15:35:19Z", "agent": "implementer", "stage": "build", "state": "running", - "message": "Fix reporting CTE missing shipping_cents" + "message": "Fix POS hydration: suppressHydrationWarning" } ] }