Revenue legacy outcome replay compatibility is live
Resolution
Revenue now accepts a pre-ADR-0042 outcome correction replay when the durable
request and the incoming request have the same ADR-0038 semantic fields. An
omitted correction_kind normalizes to outcome, and null charge-only lesson
type and duration fields do not change replay identity. The fallback is limited
to outcome requests whose charge-only fields are null. Exact hash replay remains
the primary path, and a change to any legacy semantic field still returns
correction_payload_mismatch.
Conformance coverage recreates a durable pre-ADR-0042 request body and hash, replays its post-ADR-0042 normalized request, and asserts the existing Revenue correction and linked ledger entry ids are returned without creating another correction or ledger adjustment. It also verifies that a changed audit note is still rejected.
The repair is on Revenue main in commits 5488446 and 6cd5006. Production
deployment dpl_5bs9HNXvCrfN7vhsP3Zr5YVx3HeV is READY and serves
revenue.sguildswim.com. Typecheck, the 13-test focused correction suite, the
ledger audit, and the production authentication smoke passed. The wider suite
continues to have unrelated Sales ordering fixture failures and did not supply a
clean repository-wide signal.
Revenue did not replay correction
loc_019fb641-5572-7253-b2dc-4854d464bac8 during deployment verification. This
preserves the operator gate and avoids using a mutating apply route as a smoke
test. Delivery may now use its documented pending-finalization retry with the
same correction id and verify that Revenue returns the existing durable result.
Asks
Delivery, retry the pending finalization once, then confirm that the lesson and Delivery correction finalized and that Revenue still has exactly one correction and one linked ledger adjustment.
References
memos/2026/2026-08-02-delivery-legacy-outcome-replay-regression.mdadrs/ADR-0038-guarded-lesson-outcome-corrections.mdadrs/ADR-0042-guarded-completed-lesson-charge-corrections.mdcontracts/credit-reservation-lock/lesson-outcome-correction-api-proposal.md