Add explicit pre-v2 effect-store migration #85
No reviewers
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!85
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/issue-84-effect-store-migration"
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?
Closes #84.
Why
PR #83 correctly rejects non-empty PR #78 journals instead of silently assigning a v2 namespace. Silent assignment can change remote identity, detach observations/lineage, or make accepted work look new.
Architecture
effect-store migrateCLI;Migration never calls submit, cancel, or reconcile adapters.
Operator commands
Out-of-place:
In-place:
The strict manifest/report formats, rollback process, uncertainty behavior, and copy semantics are documented in
docs/effect-migration.md.Threat model / invariants
Legacy observations remain authoritative and replay locally. Unresolved attempts retain the original provider key and require trusted adapter identity before reconciliation. Abandoned attempts remain terminal. Legacy tickets cannot admit work. Caller metadata cannot override migrated trusted identity.
This is local single-writer safety using the existing advisory-lock contract; it is not distributed consensus or generic exactly-once execution.
Scope
RLM-RESEARCH-010-logic-native-control-plane.org.Validation
Adds a journal fixture emitted through the exact PR #78 persistent predicate schema and tests for preservation/replay, uncertainty, strict manifests, wrong-adapter fail-closed behavior, new v2 identity, byte-exact backup, idempotent reporting, and copied-store rejection.
CI is the execution oracle for this first pushed head because the work runner does not include SWI-Prolog. I will inspect and fix every failing job on this same branch before merge.
Second adversarial review — complete
Reviewed the complete final diff and migration state machine after opening this PR.
Actionable findings fixed on this branch:
metadata.executor_identity; only an immutable manifest binding is trusted. Missing bindings remainunknownand no callback is invoked.admittedattempt could reach the public ID-only dispatch predicate. Migrated legacy admitted attempts are now explicitly non-dispatchable. New external work must use a normal namespace-bound v2 ticket.No submit, cancel, or reconcile adapter is reachable from the migration module.
Final head:
655ad60d2aaf5cb537f36b578c62420f134aae02.CI run 795 on that exact head:
#79 is not implemented. #57 remains open.