[P2] Add effect identity and once-only observation ledger for recursive execution #57
Labels
No labels
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/prolog-rlm#57
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Goal
Prevent Prolog backtracking, recursive retries, sync/async wrappers, and restart from accidentally repeating paid or stateful external effects.
Current state — 2026-08-18
Canonical
maininspected:abfc30ebb9f335d5841c1f7910bd474da905ebcf.The generic durable-effect substrate is merged, but canonical adoption is not complete.
Completed substrate slices:
7af5d5f6dc833c70bd547571654485eb73a1a704— durable call/attempt identity, immutable observations, explicit retry/resample lineage, replay, authority composition, async integration, persistence, and conservative reconciliation.6c60924cef7a03b9d483e4691646d4d56a13c0f3— identity, retention, adapter, recovery, stale-ticket, crash, and concurrency hardening.88433863056cd39a1d152db2c0a3cbf1a7f43fc0— explicit offline migration for non-empty pre-v2 journals.#57 remains open because the guarantee applies only when canonical effectful execution crosses this boundary. #79 owns adoption across the real tool, model/provider, effectful MCP, MCP lifecycle/process, and external-tool paths.
Open PR #86 is only the first #79 tool-path slice. It is not merged evidence and does not satisfy the remaining #57/#79 acceptance boundary.
#44 and #45 remain separate public accounting/trajectory defects. The effect ledger supplies durable lineage for those fixes but does not complete them.
Required semantics
Acceptance criteria
These are end-to-end criteria. Substrate milestones above are complete, but criteria that require canonical adoption remain unchecked until those paths are on
main.allow_oncecannot leak across retry, resample, parallel attempts, or modified payloads.Non-goals
References
#79, #44, #45, completed #53, #54,
docs/effect-runtime.md,docs/effect-migration.md, and the logic-native control-plane research tracked by open PR #58.PR #83 merged as
6c60924cef7a03b9d483e4691646d4d56a13c0f3, completing the post-#78 substrate hardening tracked by #80/#81/#82. Deterministic and REAL OpenRouter CI were green on the exact final head.This issue remains open: canonical adoption is still tracked by #79, and #83 intentionally did not route provider/tool/MCP execution paths through the substrate.