Skip to content

Effect Truth Slice A-C: Characterise, type, and settle (Epic) #198

Description

@George-RD

What to build

Effect Truth track: typed effect disposition and disposition-driven settlement (T1→T2→T3 critical path).

Sequence

T1: Effect Truth Slice A — Characterise and reproduce (#173, #174)
Map the current action → connector → reservation → audit flow; document every conversion that can lose attempted/not-attempted/unknown information; add regression tests reproducing the defects.

Stop condition: If the defects cannot be reproduced, STOP the track, write up observations, re-plan T2/T3.

T2: Effect Truth Slice B — Typed EffectDisposition
Introduce EffectDisposition (NotAttempted / ConfirmedSuccess / ConfirmedFailure / DeliveryUnknown) at the provider boundary. Gmail classifies 429/5xx/timeout-after-transmission as DeliveryUnknown unless the response proves non-occurrence. Behaviour unchanged except the proven defects.

T3: Effect Truth Slice C — Disposition-driven settlement
Settlement determined solely by disposition (NotAttempted/ConfirmedFailure cancel; ConfirmedSuccess finalizes; DeliveryUnknown retains and fences). Remove caller-side interpretation of generic errors. Production-entering tests for all four dispositions. Closes #173, #174.

Users served

Lyra, Bell, Unattended workhorse, Auditor. Promise: Ledger.

Evidence

Fold comments on #173 and #174 carry the review shape notes and are the authoritative source for this track.

Blocks

T17 action mediation deepening (#128, #133), T19 WhatsApp connector (#131), T22 responsibility composition (#132).


Parented by wayfinder map #182.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions