{ "feature_id": "F-187", "agent": "reviewer", "stage": "review_gate", "verdict": "APPROVED", "checks": [ { "item": "Soft deletion preserves backoffice user UUID and historical joins", "ok": true }, { "item": "Lifecycle check constraint permits only coherent active/inactive/deleted states", "ok": true }, { "item": "Login lookup and live session authentication both reject unavailable accounts", "ok": true }, { "item": "Deactivation/deletion revokes sessions in the lifecycle transaction", "ok": true }, { "item": "Cash-session opening and lifecycle mutations serialize on the same user row lock", "ok": true }, { "item": "Open cash sessions block deactivation/deletion", "ok": true }, { "item": "Only admin can mutate and only pos_cashier rows can be targeted", "ok": true }, { "item": "Lifecycle audit event is atomic with each successful mutation", "ok": true }, { "item": "Admin UI exposes explicit statuses and confirmations", "ok": true }, { "item": "Migration, integration regression, typecheck and builds pass", "ok": true } ], "issues": [], "notes": [ "Deleted cashier email is intentionally retained and remains unique to keep historical receipts human-readable; recreating the same address is not supported.", "Manager/editor/admin lifecycle remains out of F-187 scope." ] }