T6B.2 Residuals¶
Classification after T6B.2 engineering. Historical T6A / T6B-B / T6B.1 residual files are not rewritten.
| ID | Severity | Class | Disposition |
|---|---|---|---|
| T6B2-R001 | S2 | Product | No W03 post-enrollment reversal route. enrolled is terminal (T6A contract). Operator helper cancel_if_unbilled is recovery-only, not a W03 API. |
| T6B2-R002 | S2 | Product | Amended by T6C (2026-08-29): pre-enrollment formulir may bill via W10 bill_kind=spmb_formulir (cash/transfer). Legacy /api/SPMB/payment* + Odoo invoice paths remain fail-closed (accounting_excluded). Post-enrollment T6B.2 handoff unchanged. |
| T6B2-R003 | S2 | UI | Odoo backend Fee Templates page is visible when the bridge module is installed even if an entitlement is off; writes fail closed. FE picker is entitlement-gated. |
| T6B2-R004 | S2 | Topology | Historical: bridge uninstalled on scoladev/scoladev_demo. Current-tip (2026-08-26): scola_admission_fees_bridge installed on scoladev; scoladev_demo still uninstalled. |
| T6B2-R005 | S2 | Predecessor | T6B-R002/R003 FE/BE role drift for treasurer/head_admin finance capabilities remains. T6B.2 does not grant finance authority to Enrollment Officer on BE. |
| T6B2-R006 | S2 | Predecessor | scola_fees still hard-depends Odoo account + openeducat_fees (T6B-R004). Bridge does not add SC-FIN. |
| T6B2-R007 | S3 | Deferred | T6B.3 gateway still excluded. Native /my/child/.../upload remains a T6B.1 residual, not a T6B.2 lifecycle. |
| T6B2-R008 | S2 | Identity | Historical: served-dev stale vs application tip. Current-tip (2026-08-26): served dev FE @1051c957… matches live version.json; repo tip @fe5f8443… (+3) ahead of served; demo docroot not promoted. |
| T6B2-R009 | S3 | Scholarship | Affirmation type remains informational. Mapping to an approved W10 discount rule is a downstream product decision. |
| T6B2-R010 | S2 | Ops | Failed first overlay scola_t6b2_audit_20260817T094758Z left after view-domain install error; not Golden. Unique successor overlay used for certification. |
| T6B2-R011 | S2 | Ops | Disposable clones scola_t6b2_adm_*, scola_t6b2_fees_*, scola_t6b2_core_*, and HTTP :8094/:8095 remain for audit; not Golden. Do not dropdb without an explicit ops request. |
| T6B2-R013 | S2 | Identity | Independent T6B.1/T6B.2 auditor files remain untracked in docs/release-readiness/audit/ and are not committed or rewritten. E1.2 dirty-tree checks now ignore those untracked audit paths; --frontend-application-commit binds the application SHA while HEAD may be docs-only. |
| T6B2-R014 | S3 | Test | Overlay t6b2.manager still lacks admissions.period.edit, so registers/update returns Access denied in TEN-01/VAL-01. Inactive rejection is proven on the model write path (UserError / attach ok: false). |
Closed in this tranche (not residual): tautological RT-T6B2-VAL-01; raw PostgreSQL serialize on concurrent W03; E1.2 manifest recording a docs tip as the FE application commit; matrix JSON without source identity; 30s clamscan timeout that failed RT-T6B2-XINT-G on the first 2026-08-18 rerun (now 60s fail-closed budget in f5e7008). Combined-topology Odoo controller MRO collision (AdmissionConfigApiController._company_domain) remains closed from the prior tranche.
No S0/S1 is left open for T6B.2 in-scope behavior. None of these residuals authorizes demo or production promotion.