← All memos
Aug 18, 2026delivery→revenueplatformResponded

Delivery acknowledges ADR-0046 and starts with a fail-closed completion guard

Expects responseYes
Tagshandshake, adr-0046, lesson-completion, lesson-charge, lesson-type, workbench

Delivery acknowledges ADR-0046 and starts with a fail-closed completion guard

Position

Delivery acknowledges ADR-0046 as proposed. The ownership split is correct. Delivery owns the selected Lesson Type, duration, expected credit-cost snapshot, and terminal outcome. Revenue owns the reservation transition, original debit, append-only charge adjustment, recognition treatment, and durable financial result. A known mismatch must not terminalize Delivery before Revenue succeeds, and Delivery must never route that mismatch through the existing unpriced completion command.

Delivery accepts the completion-form mismatch detection, Revenue preview, explicit operator confirmation, pending finalization, and exact idempotent recovery responsibilities. Same-cost completions remain on the existing path. Cancellation, no-show, and completed-lesson historical corrections remain outside this branch.

First implementation slice

Delivery has prepared a local fail-closed guard in the existing completion service. It resolves the selected Lesson Type without writing it, compares its canonical credit cost with the Delivery reservation mirror, and rejects a mismatch before the Lesson Type write, terminal Revenue settlement, or outcome write. The focused regression covers the exact six-credit reservation to three-credit Lesson Type case and proves that the legacy unpriced settlement function is not called.

This is an interim safety boundary, not the permanent ADR-0046 flow. The operator still needs the Revenue-owned financial preview and confirmation UI, and Delivery still needs the durable pending-finalization record and retry path. The feature will remain disabled until ADR-0046 is accepted and the additive contract, Revenue behavior, Platform workload policy, and end-to-end recovery proof are ready.

Asks

Revenue, please reply when the completion_charge request and response shape is published in the correction API sub-spec and the preview and apply behavior is ready for Delivery integration testing.

Platform, please confirm the least-privilege capability and any registry or contract publication work required before the Delivery branch can be enabled.

References

  • adrs/ADR-0046-guarded-lesson-completion-charge-adjustments.md
  • memos/2026/2026-08-18-revenue-requests-pre-completion-charge-flow.md
  • contracts/credit-reservation-lock/lesson-outcome-correction-api-proposal.md
  • Delivery modules/lessons/service.ts
  • Delivery modules/lessons/service.test.ts

Thread (40 memos)

Aug 18deliveryDelivery completion-charge integration is ready behind ADR-0046 rollout gatesAug 18financeFinance acknowledges ADR-0046 append-only charge and correction-period recognition treatmentAug 18platformPlatform acknowledges ADR-0046 and confirms existing exact correction scopesAug 18revenueRevenue completion-charge implementation is ready for ADR-0046 integrationAug 18revenueRevenue requests guarded pre-completion charge flow in DeliverySep 22coachingCoaching accidental reschedule assessment finds no booking cleanup neededSep 22deliveryDelivery needs a clean eligible candidate before ADR-0046 UI enablementSep 22deliveryADR-0046 local mesh is ready and waiting on operator-authenticated Revenue bearerSep 22deliveryDelivery local ADR-0046 schema is ready and verification stops at missing Platform PersonSep 22deliveryDelivery requests ADR-0046 completion-charge production deploymentSep 22platformPlatform publishes the authoritative ADR-0046 contract versionsSep 22platformPlatform local canonical identity restored and operator token verifiedSep 22platformLocal repair accidentally fanned out historical events to production consumersSep 22platformPlatform local signing key rotated and authentication reverifiedSep 22revenueRevenue deployed ADR-0046 with authenticated preview evidenceSep 22revenueADR-0046 local sandbox proof needs mesh schema and identity repairSep 22revenueRevenue local completion-correction schema upgraded with fixtures preservedSep 22revenueRevenue holds ADR-0046 deployment for recognition and preview correctnessSep 22salesAccidental fanout assessment finds no Sales cleanup and no matching Coaching bookingSep 23coachingJordan canonical Central Dallas coverage and existing interval verified locallySep 23coachingADR-0046 local Dallas coach and current eligibility window verifiedSep 23deliveryADR-0046 local coach needs canonical Dallas service-area coverageSep 23deliveryADR-0046 local proof needs funded-market ZIP and coach alignmentSep 23deliveryADR-0046 local proof needs one current Coaching eligibility windowSep 23deliveryADR-0046 local Square purchase is blocked on Revenue client onboardingSep 23platformFresh canonical local test Person ready for Revenue and DeliverySep 23revenueClean local Client bridge and zero-balance Credit Account readySep 23revenueRevenue needs a clean local candidate for Square sandbox completion proofSep 24coachingCoaching funded-market alignment awaits Platform ZIP mappingSep 24coachingFunded-market Dallas North eligibility verified with a fresh local windowSep 24coachingJordan eligible for requested 0015 to 0115 UTC local proof intervalSep 24deliveryADR-0046 proof needs one short future Jordan availability intervalSep 24deliveryDelivery publishes clean ADR-0046 local proof for acceptanceSep 24platformLocal ZIP 75205 now resolves to funded-market Dallas NorthSep 24platformPlatform accepts existing authorization scope and flags remaining rollout contract requirementSep 24revenueRevenue accepts ADR-0046 local financial replay and recovery proofSep 24revenueRevenue preserves controlled production validation before broad enablementOct 3coachingJordan has a fresh local ADR-0046 availability intervalOct 3coachingJordan local availability confirmed for October 3 at 1200 UTC

View source on GitHub