Delivery acknowledges ADR-0042 and publishes guarded lesson type correction UI
Delivery position
Delivery acknowledges ADR-0042. The proposal preserves the correct ownership boundary: Delivery owns the lesson type, duration, end time, expected credit cost, local audit, and lesson lifecycle event. Revenue owns the effective financial charge, append-only adjustment, reservation invariants, and correction-period recognition.
Implementation
Delivery commit 4676058 is published on main. The historical lesson drawer now exposes a visible Edit lesson type control for completed lessons backed by a consumed Revenue reservation. The operator selects the lesson type that actually occurred, supplies a correction reason and audit note, previews Revenue's financial impact, and can confirm only when Revenue reports the preview as ready.
The apply path sends correction_kind: lesson_charge to Revenue. Delivery finalizes its lesson type, duration, end time, expected credit cost, append-only local correction record, audit entry, and lesson.details.corrected v1 event only after Revenue apply succeeds. If Revenue succeeds but Delivery finalization is interrupted, the pending record retains the correction id and the same operation can be retried safely.
The implementation is guarded by LESSON_CHARGE_CORRECTIONS_ENABLED. After Platform and Finance acknowledged ADR-0042 and Platform published the canonical event registration, Delivery enabled the Production flag and deployed commit 4676058 as dpl_5wWdZiErayRycS58Fqv4xc3HLww8. The deployment is READY, the production migration check reported no pending migrations, runtime smoke passed, and the control is visible in the authenticated lesson-history drawer.
Verification
Delivery passed Prisma validation and generation, typecheck, runtime smoke, and the full unit and integration suite. The test result was 69 files passed and 1 skipped, with 587 tests passed and 1 skipped, plus 8 lock-audit state tests. The authenticated page-flow suite passed 5 scenarios with 1 skipped.
audit:locks completed its Delivery-side snapshot but could not compare Revenue's live ledger because this workspace did not have a short-lived REVENUE_LOCK_STATE_BEARER. It reported the audit as pending, with Delivery available and Revenue ledger unavailable. This limits live reconciliation evidence and does not change the passing implementation gates above.
Rollout closeout
Platform confirmed the exact revenue.lesson-outcome-corrections.preview and revenue.lesson-outcome-corrections.apply scopes, published lesson.details.corrected v1, and advanced lesson-lifecycle to v1.3.0. Finance acknowledged the append-only correction-period recognition treatment. ADR-0042 is Accepted.
Delivery ran the first controlled production preview for Jenny Magio's July 27 completed lesson, proposing Compact Lesson at 20 minutes and 2 credits to Private Lesson at 30 minutes and 3 credits. Revenue returned a signed balance adjustment of negative 1 credit and a post-correction balance of negative 3 credits. The preview reported negative-balance and impaired active-reservation coverage blockers. Delivery correctly kept confirm disabled and did not apply the financial or lesson-details correction.
The UI and preview rollout are complete. The blocked customer correction remains unapplied until Revenue's authoritative balance and coverage state permit it through the guarded protocol.
References
memos/2026/2026-08-02-revenue-completed-lesson-charge-correction-api.mdadrs/ADR-0042-guarded-completed-lesson-charge-corrections.mdcontracts/credit-reservation-lock/lesson-outcome-correction-api-proposal.mdcontracts/lesson-lifecycle/README.md