T6B Result¶
Mode: server · workspace /home/scola/odoo
Docs read: AGENTS.md, AI_AGENT_MASTER_GUIDE, development-guide, workspace-governance, architecture-api, release-environment-promotion, environment-isolation-and-promotion, testing-guidelines, 01-product-contract, 05 W10, 07 W10/PKG-FEES-W10, 08 STAB-014, 10 T6B, T6A independent verdict/runtime/preflight, DEC-003/008/014 as referenced, package catalog, product-tier/feature-flags, T0-E2 dispositions, T0-C SC-FEES baseline, current scola_fees / bundle / bridges / route registry / financeApp.js.
RC1-A remains:
CORE RC1 CERTIFIED — BOUNDED CORE V1 — GOLDEN/DEV/DEMO — GBN EXCLUDED — PRODUCTION NOT AUTHORIZED
Independent T6A remains:
T6A COMPLETE — W03 / SC-ADM CERTIFIED FOR DEV AND GOLDEN — DEMO/PRODUCTION NOT PROMOTED
T6A does not certify SC-FEES. This tranche did not extend T6A, did not mutate GBN, and did not promote demo or production.
This file preserves the historical T6B-B product-gate stop, then records the T6B.1 engineering tranche after product approval.
Historical T6B-B (do not rewrite)¶
Engineering label at issue: T6B ENTRY BLOCKED — NAMED PRODUCT DECISIONS REQUIRED
Exit verdict for that prompt:
T6B NOT CLOSED
Not T6B COMPLETE. Not T6B PARTIAL — NAMED FIXES REMAIN (architecture is not yet a signed V1; the blocker is missing product decisions, not a bounded S1 on an approved machine). Not certified. Production is not authorized.
Why not implement W10¶
The prompt forbids inventing unsigned behavior. All 30 required Fees/W10 properties are unsigned. Catalog and RT-W10-* remain BLOCKED for STAB-014, refund/reversal, and journal/bridge ownership. Current controllers (fee_enrollment_api.py, payment_accounting_api.py, public gateway callbacks, financeApp.js SC-FIN shell) are not an approved lifecycle.
Implementing a state machine, payment idempotency, or FE billing UI now would freeze inferred code as policy.
What was done (Phase 0–1, source map only)¶
- Independent preflight and isolation PASS
- Decision gate FAIL with 30 named properties
- Explicit unsigned contract artefact
- Independent recompute of declared SC-FEES closure (matches T0-C checksum
df64d2e7…) - Authorization inventory of Fees routes/sudo/registry gaps
- Runtime matrix recorded as 0 executed / 11 blocked
- Manifest bound to FE/BE application trees (no application edit)
What was not done (by design)¶
- No Fees/W10 application code
- No disposable
install scola_bundle_fees - No PKG-FEES-W10 runtime
- No
t6b.uat.*accounts - No Core W01/W02/W05 re-run (no application descendant)
- No demo candidate
- No production change
- No sudo/route budget increase
Trace (requirement → decision → code → test → runtime → identity)¶
| Layer | Status |
|---|---|
| Requirement (catalog W10) | Optional Supported; blocked by STAB-014 |
| Product decision | missing (PRODUCT_DECISION_REQUIRED) |
| Code | pre-existing; not treated as contract |
| Static/unit | topology CI PASS; Fees unit tests exist but are not W10 certification |
| Runtime evidence | none for T6B |
| Immutable identity | FE tree 8362e7db… / BE tree a31fe594… recorded; served dev BE SHA stale |
Next gate¶
A requesting-user (or named Finance/Billing owner) must sign T6B-FEES-approved-product-contract.md by answering the 30 questions in T6B-FEES-decision-gate.md. Only then may engineering enter Phases 2-runtime through 12 on disposable DB / dev / demo.
Do not declare SC-FEES or W10 certified until an independent auditor publishes a verdict after that work.
T6B.1 descendant engineering (2026-08-17)¶
Current engineering label:
T6B.1 ENGINEERING COMPLETE — READY FOR INDEPENDENT AUDIT
This is not T6B COMPLETE. This is not an independent certification. Production is not authorized. No demo candidate was created. GBN, Golden canonical (scola_golden / :8090), scoladev, and all production tenants remained unchanged.
Why this label¶
Approved T6B.1 scope is implemented in source, QC'd on the server, executed on a disposable Golden clone overlay, rebound to immutable FE/BE commits, and accompanied by Core regression plus E1.2 evidence. Remaining residuals are named and out of T6B.1 certification scope (antivirus proof, FE/BE role drift, T6B.2 bridge, gateway/journal, served-dev stale identity).
Runtime (disposable overlay only)¶
| Suite | Result | Target |
|---|---|---|
| PKG-FEES-W10 | 11/11 PASS (post-restart) | scola_t6b_audit_20260817 :8093 |
| E1.2 | 29/29 PASS | same overlay |
| W01 | 64/64 PASS after _company_domain reload |
same overlay |
| W02 | 33/33 PASS | same overlay |
| W05 | 16/16 PASS | same overlay |
Isolation --live |
PASS | workspace |
W01 9/48 failures before overlay reload are retained as pre-restart evidence. They are not a T6A Golden regression.
Identities (application tips)¶
| Side | Application commit | Application tree |
|---|---|---|
FE develop |
2f716594ee769fe3cd8338ae5bcebb3f2e470d46 |
8606e7bbe49db194c7bdc8f5ef2cde67674ef125bbd468ee5518285f17a80a85 |
BE main |
e78d06d1ff64477fb73f2017e85cab034b56f188 |
6d13752ccbe11c63044b96a34420975f86a104213b700c8b986ff0367802de7f |
FE docs in this descendant commit are --allow-docs-tip relative to the application commit above. Local dist/version.json after QC build: 2f716594ee76+mswypqnk. Served-dev/demo docroots were not updated.
What was not done¶
- No
T6B COMPLETE/ W10 CERTIFIED claim - No T6B.2 SC-ADM↔SC-FEES bridge implementation
- No T6B.3 gateway; callbacks remain
gateway_excluded - No SC-FIN journal posting; accounting routes remain
accounting_excluded - No Golden start, no Golden/
scola_goldenmodule install - No scoladev upgrade/restart, no demo/production promotion
Artefacts¶
- Historical T6B-B set preserved
T6B-FEES-approved-product-contract.md(immutable approval)- This descendant result
T6B-residuals.md,T6B-runtime-matrix.md,T6B-authorization-traceability.md,T6B-package-denominator.mdT6B-evidence/overlay matrices and E1.2 rebind
T6B.1 antivirus follow-up (2026-08-17, after independent PARTIAL)¶
Independent verdict remains:
T6B.1 PARTIAL — NAMED CONTRACT SECURITY FINDING REMAINS
Engineering follow-up for T6B1-AUD-002 (do not treat as a new independent closure):
classify_proof()now scans via approvedclamscanpaths after magic/size/MIME checks. Missing scanner, timeout, or non-zero/unknown status is fail-closed.- Infected payloads raise
proof_infectedbeforescola.w10.payment/scola.payment.proofpersist. - Manual
/api/v1/payment/manual/<id>/proofuses the same classifier (PDF/JPG/PNG only). - Overlay W10 11/11 PASS including VAL infected: error
proof_infected,infected_stored.count = 0. Evidence:T6B-evidence/T6B-W10-runtime-matrix-av-fix-20260817.json. - BE application tip for this follow-up:
ff95e3bcca8f5e1176052e0e4b5edd522cc6c480(descendant ofe78d06d1…).
This does not overturn the independent PARTIAL. Demo/production remain unauthorized. A new independent re-audit is required after the immutable BE tip is published.
T6B V1 engineering addendum (2026-08-18)¶
Engineering label:
T6B V1 ENGINEERING_COMPLETE_PENDING_INDEPENDENT
Prior interim label T6B V1 ENGINEERING COMPLETE — READY FOR INDEPENDENT UMBRELLA AUDIT is superseded for status hygiene only; runtime evidence below is unchanged.
This is not T6B COMPLETE, not QG-01–QG-17 package certification, and not T6 COMPLETE. Independent T6A / T6B.1 / T6B.2 historical verdicts are not rewritten. Payung close requires a separate umbrella audit with 0 S0/S1 in-scope and a committed verdict under docs/release-readiness/audit/.
V1 qualification: cash/transfer only. Gateway remains T6B.3. Journal/accounting remains T6G. Demo/production are not promoted.
Bound recert on disposable :8094 / :8095 after portal fail-close and FE role alignment:
| Suite | Result |
|---|---|
| Portal upload | HTTP 410, attachment count unchanged |
| W10 | 11/11 |
| T6B.2 | 19/19 skip 0 |
| W03 | 31/31 |
| E1.2 | 29/29 + validator --allow-docs-tip |
| W01 / W02 / W05 | 64/64 · 33/33 · 16/16 on :8095 |
Isolation --live |
PASS |
Identities: FE application 43045280… tree e00180e1…; BE 8bc21d26… tree 0bc7689b…. Register: T6B-V1-residuals.md, T6B-V1-runtime-manifest.json, T6B-V1-reaudit-input.md, T6B-V1-evidence/.
Independent umbrella (2026-08-18, integrity correction 2026-08-26): execution docs previously pointed at docs/release-readiness/audit/T6B-V1-independent-umbrella-verdict-20260818.md. That file is not present in the repository; do not treat the tranche as independently closed. Interim status remains ENGINEERING_COMPLETE_PENDING_INDEPENDENT until an auditor publishes a verdict bound to the exact FE/BE pair (T6B-V1-reaudit-input.md). Not T6 COMPLETE. Demo/production not promoted.
Current-tip sync (2026-08-26)¶
| Item | Aug 18 engineering pair | Current tip |
|---|---|---|
| FE / BE | 43045280… / 8bc21d26… |
Repo @fe5f8443… / @f581285…; served FE @1051c957… |
Bridge scoladev |
Recorded uninstalled | Installed 17.0.2.0.0 |
| Served dev FE | Local dist | 1051c957… @ /var/www/dev-scola/dist |
| Evidence index | — | V1-current-tip-evidence-index.json |