Skip to content

[FLO-3.3] Persist versioned plans, runs, checkpoints, and recovery decisions #49

Description

@szmyty

Complete: PR #63 merged on 2026-09-26 at 711fbe3c19c0e080ab6c67b74d7945cd29675a74; all five default-branch CI jobs passed. #31 is now active through #64 → #65 → #66.

Parent: #3
Suite roadmap: #11
Depends on: #29 and #30
Unblocks: #31 and the provider-adapter checkpoints

Outcome

Persist Flow's plans, runs, checkpoints, artifacts, authority decisions, validation results, and recovery choices as versioned durable state. A process restart must never silently lose or reinterpret execution intent.

Acceptance criteria

  • Define versioned schemas for plans, runs, checkpoints, artifacts, authority/approval decisions, validation evidence, and recovery state.
  • Persist state atomically inside an explicit workspace with stable run and artifact identities.
  • Bind every checkpoint to plan digest, input digests, provider identity/version, configuration, and capability contract.
  • Support deterministic reopen, status inspection, resume eligibility, and typed refusal when evidence is stale or incompatible.
  • Detect corruption, partial writes, unsupported schema versions, and identity mismatches without guessing.
  • Document schema migration and rollback policy before the first breaking change.
  • Avoid persisting secrets or unnecessary source content; document retention and cleanup behavior.
  • Add restart, cancellation, crash, corruption, and concurrent-open tests.
  • Keep the existing in-memory path available to unit tests while making the supported execution path durable.
  • CI, schemas, docs, and cross-platform tests are green.

Non-goals

  • Real provider integrations.
  • A distributed scheduler or remote state service.
  • The final user-facing CLI.
  • Automatic mutation or recovery without explicit authority.

Verification and handoff

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions