Phase 2: durable state machine and autonomous reconciliation #2

Merged
jon merged 2 commits from phase/02-durable-reconciliation into main 2026-08-18 15:09:58 +00:00
Owner

Purpose

Make approved development phases durable across orchestrator restarts and recover automatically without requiring a second human approval.

Changes

  • Records development approval once with durable provenance.
  • Automatically reconciles in-flight phases after orchestrator restart.
  • Handles approved, developing, validating, pr_open, and legacy interrupted states.
  • Adds durable per-task checkpoints.
  • Uses stable task branch identities across retries.
  • Reuses previously pushed branches instead of recreating them.
  • Reuses existing Forgejo pull requests instead of duplicating them.
  • Reconciles already-completed merges into the phase manifest.
  • Suppresses duplicate in-process runners for the same phase.
  • Fails closed if a pull request head changes after validation.
  • Re-executes incomplete pre-push work rather than trusting ambiguous local state.
  • Changes manual resume into an operator retry rather than a second development approval.

Governance

Human approval is required once to start a development phase.

After approval, restart and interruption recovery are autonomous unless the orchestrator reaches a policy or unrecoverable failure boundary.

Deployment remains a separate explicit human gate.

Validation

  • 31 tests passed.
  • Python compile check passed.
  • git diff --check passed.
  • No production deployment performed.
  • Running orchestrator remains unchanged.

Deployment

None.

This PR changes source only.

## Purpose Make approved development phases durable across orchestrator restarts and recover automatically without requiring a second human approval. ## Changes - Records development approval once with durable provenance. - Automatically reconciles in-flight phases after orchestrator restart. - Handles approved, developing, validating, pr_open, and legacy interrupted states. - Adds durable per-task checkpoints. - Uses stable task branch identities across retries. - Reuses previously pushed branches instead of recreating them. - Reuses existing Forgejo pull requests instead of duplicating them. - Reconciles already-completed merges into the phase manifest. - Suppresses duplicate in-process runners for the same phase. - Fails closed if a pull request head changes after validation. - Re-executes incomplete pre-push work rather than trusting ambiguous local state. - Changes manual resume into an operator retry rather than a second development approval. ## Governance Human approval is required once to start a development phase. After approval, restart and interruption recovery are autonomous unless the orchestrator reaches a policy or unrecoverable failure boundary. Deployment remains a separate explicit human gate. ## Validation - 31 tests passed. - Python compile check passed. - git diff --check passed. - No production deployment performed. - Running orchestrator remains unchanged. ## Deployment None. This PR changes source only.
jon changed title from WIP: Phase 2: durable state machine and autonomous reconciliationtart-reconcilable to Phase 2: durable state machine and autonomous reconciliation 2026-08-18 15:09:52 +00:00
jon merged commit b7936431de into main 2026-08-18 15:09:58 +00:00
jon deleted branch phase/02-durable-reconciliation 2026-08-18 15:10:03 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
jon/steve-os-orchestrator!2
No description provided.