Source: MIZOKI audit 2026-09-06 (pinned fc8b03f9) → work-order backlog 2026-09-08 (docs/audits/AUDIT_WORK_ORDERS_2026-09-08.md). Findings are hypotheses until reproduced on current main (WO-00).

Finding: Portfolio exposure and reconciliation freezes are process-local dicts; two $70 checks against a $100 cap both passed → $140 exposure [R19]. Files: services/service-action-runner/execution_adapters/portfolio.py, base.py. Fix: move reservations/freezes to a transactional store (Firestore transaction or equivalent); check-and-reserve is one atomic op keyed by tenant/account. Acceptance: two workers, two processes, $70+$70 vs $100 cap → exactly one passes; restart mid-reservation → reservation survives. Depends on: WO-18.

← All docsView source on GitHub →