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.
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.