[Debt] Adopt the recovery ledger for module lifecycle and installer effects #281

Closed
opened 2026-08-03 02:11:46 +02:00 by zemion · 2 comments
Owner

Parent: GovOPlaN/govoplan#36.

Objective

Apply Core’s own recovery contract to module installation, activation, migration, package changes, and runtime reconciliation.

Acceptance criteria

  • Lifecycle operations have canonical plan/request hashes, durable preconditions, migration/backup evidence, and deployment-wide fencing before effects.
  • Package, database, manifest, and active-graph mutations have explicit recovery modes and verified terminal evidence.
  • Interrupted and outcome-unknown lifecycle operations remain visible in Ops and block conflicting work.
  • Retry, crash, stale-fence, tamper, and incompatible-release tests cover the paths.
  • Administrator documentation identifies safe resume, rollback, and forward-recovery actions.
Parent: GovOPlaN/govoplan#36. ## Objective Apply Core’s own recovery contract to module installation, activation, migration, package changes, and runtime reconciliation. ## Acceptance criteria - [ ] Lifecycle operations have canonical plan/request hashes, durable preconditions, migration/backup evidence, and deployment-wide fencing before effects. - [ ] Package, database, manifest, and active-graph mutations have explicit recovery modes and verified terminal evidence. - [ ] Interrupted and outcome-unknown lifecycle operations remain visible in Ops and block conflicting work. - [ ] Retry, crash, stale-fence, tamper, and incompatible-release tests cover the paths. - [ ] Administrator documentation identifies safe resume, rollback, and forward-recovery actions.
Author
Owner

Codex State: started

Summary

  • Starting recovery-ledger adoption for module lifecycle, installer, migration, package, and runtime reconciliation boundaries.

Next / Blocked

  • Inventory the existing lifecycle transaction boundaries and preserve current module/package semantics while adding deployment-wide fencing and evidence.

Suggested status label: status/in-progress

## Codex State: started ### Summary - Starting recovery-ledger adoption for module lifecycle, installer, migration, package, and runtime reconciliation boundaries. ### Next / Blocked - Inventory the existing lifecycle transaction boundaries and preserve current module/package semantics while adding deployment-wide fencing and evidence. Suggested status label: `status/in-progress`
Author
Owner

Codex State: done

Summary

  • Adopted the durable recovery ledger for installer package, migration, destructive retirement, and live active-graph effects.
  • Added deployment-wide unresolved-predecessor blocking, hashed backup/command evidence, supervised health finalization, and verified rollback compensation.

Changed Files

  • src/govoplan_core/core/module_lifecycle_recovery.py
  • src/govoplan_core/core/module_installer.py
  • src/govoplan_core/core/lifecycle.py
  • docs/MODULE_LIFECYCLE_RECOVERY.md

Verification

  • tools/checks/check-focused.sh: passed, including 65/65 manifests and module permutation checks
  • tests/test_recovery_runtime.py: 14 passed with unresolved-resource, stale-fence, and tamper coverage
  • tests.test_module_system: passed, including lifecycle success, failure blocking, rollback, and live graph tests

Next / Blocked

  • Parent GovOPlaN#36 remains open for the planned Files, Mail IMAP-mutation, and production connector-mutation rows.
## Codex State: done ### Summary - Adopted the durable recovery ledger for installer package, migration, destructive retirement, and live active-graph effects. - Added deployment-wide unresolved-predecessor blocking, hashed backup/command evidence, supervised health finalization, and verified rollback compensation. ### Changed Files - `src/govoplan_core/core/module_lifecycle_recovery.py` - `src/govoplan_core/core/module_installer.py` - `src/govoplan_core/core/lifecycle.py` - `docs/MODULE_LIFECYCLE_RECOVERY.md` ### Verification - `tools/checks/check-focused.sh: passed, including 65/65 manifests and module permutation checks` - `tests/test_recovery_runtime.py: 14 passed with unresolved-resource, stale-fence, and tamper coverage` - `tests.test_module_system: passed, including lifecycle success, failure blocking, rollback, and live graph tests` ### Next / Blocked - Parent GovOPlaN#36 remains open for the planned Files, Mail IMAP-mutation, and production connector-mutation rows.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: GovOPlaN/govoplan-core#281