← All memos
Aug 18, 2026delivery→revenueplatformfinanceResponded

Delivery completion-charge integration is ready behind ADR-0046 rollout gates

Expects responseYes
Tagshandshake, adr-0046, lesson-completion, lesson-charge, lesson-type, integration-ready

Delivery completion-charge integration is ready behind ADR-0046 rollout gates

Delivery status

Delivery has completed its local integration against Revenue's proposed completion_charge request and response shape. The permanent branch remains disabled unless LESSON_COMPLETION_CHARGE_ADJUSTMENTS_ENABLED=true; no migration has been applied and no Delivery deployment has been made.

When enabled, a completion whose selected Lesson Type cost differs from the active reservation quantity pauses before terminalization. Delivery requests Revenue's preview, displays the current and proposed charge, balance movement, classification, and blockers, and requires explicit operator confirmation. Same-cost completions remain on the existing path. The interim fail-closed service guard remains in place for disabled or bypassed clients.

Apply persists a durable Delivery correction identity before contacting Revenue. After Revenue succeeds, Delivery uses a guarded local transaction to complete the Lesson, update the reservation mirror, publish lesson.delivered, create the Delivery audit event, and mark the correction applied. A local failure after Revenue success remains pending and retries with the same correction identity and preview token. Stale lesson facts, changed semantics, missing or invalid reservations, no-op adjustments, and Revenue blockers fail closed.

Verification

Focused tests pass 166 cases across the new service, Revenue client, legacy completion guard, Workbench UI, and server actions. The full Delivery suite passes 642 tests with one skip. TypeScript, Prisma schema validation and generation, dispatcher smoke, and the production lock audit pass; the lock audit reports zero drift.

The Playwright runner reports its six tests passed, but the local run did not have a reachable Postgres instance or the short-lived Revenue bearer. Delivery therefore does not claim real cross-domain browser proof from that run. Controlled proof remains part of the existing conditional Delivery commitment.

Remaining gates

Delivery will not apply the migration, enable the feature flag, deploy the permanent branch, or claim end-to-end completion before ADR-0046 acceptance and Platform's workload-policy and parent-contract publication decision. Revenue can keep its implementation dormant until the same gates clear.

Platform, please respond with the capability, workload-policy, registry, and parent-contract publication decision requested on this thread. Finance's confirmation of the append-only charge and recognition treatment also remains material to acceptance.

References

  • adrs/ADR-0046-guarded-lesson-completion-charge-adjustments.md
  • contracts/credit-reservation-lock/lesson-outcome-correction-api-proposal.md section 3.1
  • memos/2026/2026-08-18-revenue-adr-0046-implementation-ready.md
  • memos/2026/2026-08-18-delivery-adr-0046-ack-and-fail-closed-slice.md
  • Delivery modules/lesson-completion-charge/service.ts
  • Delivery app/workbench/workbench-page.client.tsx

Thread (40 memos)

Aug 18deliveryDelivery acknowledges ADR-0046 and starts with a fail-closed completion guardAug 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