[mm-grade=A] (MiniMax-M3 adversarial review, 3 rounds)
Codex quota exhausted 2026-08-19 21:26 UTC. Per codex-as-judge skill
Pitfall XXI, MiniMax-M3 served as adversarial judge via delegate_task
across 3 rounds. Final grade: A. No blocking defects remaining.
Round 1 (initial: C — 14 issues):
CRITICAL/HIGH fixed:
1. Layer-2 delivery idempotency (different event + same session)
2. Mislabeled idempotency test (#2 was layer-1 not layer-2)
3. CRLF test was vacuous (regex matched space-after-colon)
4. Currency: native symbols for EUR/GBP/JPY/etc, ISO code fallback
5. PDF graceful degradation on poison-pill inputs
6. Retry uses claim.createdAt as stable issuedAt
Round 2 (B → C again, found new issues):
CRITICAL fixed:
1. amountCents accepted string/NaN/Infinity/negative → rendered $0.00
silently (financial-document bug)
2. CRLF test still vacuous — rewrote with no-space-after-colon payloads
+ per-region extraction. Mutation-tested: deleting stripControlChars
→ test FAILS.
3. Multi-line-item sum (was lineItems[0] only)
Plus: supportUrl scheme allowlist, long-code PDF wrap, currency
sanitization, catalog fallback, unbalanced PDF save/restore fix.
Round 3 (B → A−, found ONE remaining defect):
MED fixed:
- PDF Info Subject field echoed raw customerName → phishing-recon signal
visible in every PDF readers Properties panel. Now constant.
- PDF body Bill To had raw <script> visible (no XSS but phishing).
Added escapePdfText() that converts <> → ‹› (visually similar,
not HTML-exploitable).
Polish:
- Bridge wiring: claim.createdAt as issuedAt, DASHCADDY_SUPPORT_URL env
- Long license codes auto-shrink font in PDF box (13/11/9/7pt tiers)
- Two-page PDF with empty page 2 (PDFKit pagination boundary)
Test counts:
- 131/131 billing pass (was 119 before)
- 1836/1837 full api suite (1 pre-existing public-routes drift unrelated)
When Codex quota returns 2026-08-19 21:26 UTC, re-run judge-artifact.sh
for the canonical verdict and supersede [mm-grade=A] if needed.