Lewati ke isi

T4.1 W05 Hardening Residuals

ID Sev Status Notes
T4W05-R-001 formal draft/complete/correct-with-reason S2 PARTIAL Path A closed: reopen requires reason + audit. Formal DEC-006 state machine remains NOT_IMPLEMENTED.
T4W05-R-002 daily gate dual-mode S3 OUT OF W05 GBN PAUD still depends on /attendance/daily. Do not fail-close that surface for those tenants.
T4W05-R-003 combined multi-session E2E depth S3 PARTIAL Unchanged from T4-W05.
T4W05-R-004 proof upload content validation S2 CLOSED (bounded) Size + magic-byte/type. No malware scanner; DPO full scan remains out of scope.
T4W05-R-005 smart/RFID/HR S3 NOT CERTIFIED Explicit non-goals.
T41-R-404 nodb HTTP 404 S1 DEV-FIXED / PROD-OPS SSE no longer holds the request cursor. Daily check-in/out may retry one transient POST (overwrite). Sheet first-save does not re-POST: it reconciles via GET is_submitted / line_id. Correction does not treat GET submitted as success (sheet was already done); GET must match line flags/remark, otherwise one re-POST with correction_reason is allowed. Production db_maxconn is a per-tenant ops change — see docs/operations/runbooks/odoo-db-connection-budget.md. Do not restart GBN without authorization.

Gate B decisions (still required for full STAB-019)

  • Who may complete vs correct; whether wakasek kesiswaan may mutate
  • School-day cutoff (local midnight, end of session, or T+N hours)
  • Reason codes vs free text; minimum length policy beyond path A
  • Approval for late correction; self-approval ban
  • Meaning of draft / done / corrected; cancel vs in-place correct
  • When students/parents see the new value; in-app notify on failure
  • Immutable audit field set if chatter + correction log is not enough

Non-goals

RFID, smart attendance, HR attendance, ATTEND+, promote RC1.1 to GBN, fail-close daily on PAUD, restart odoo-prod without explicit authorization.