Open Source · Safe retry

A timeout is not a retry instruction.

After dispatch, the next action depends on evidence of the external effect—not merely on whether the caller received a response.

dispatch under one-use authority
        ↓
response lost / timeout
        ↓
preserve unresolved effect
        ↓
reconcile postcondition evidence
        ↓
confirmed success → do not retry
confirmed no-effect → fresh authority + new attempt
ambiguous → independent/manual verification

Operator flow

node packages/cli/bin/ruleoak.js effect pending
node packages/cli/bin/ruleoak.js effect reconcile --limit 20
node packages/cli/bin/ruleoak.js effect show --id <effect-id>
node packages/cli/bin/ruleoak.js effect retry-plan --id <effect-id>

Rules