Skip to content

[Phase 4] Continuous Reconciliation During Batch Execution #403

Description

@frankbria

Summary

During batch execution, periodically check if tasks have been externally modified (GitHub issue closed, task manually completed, dependency resolved) and adjust the running batch accordingly. Inspired by Symphony's per-tick reconciliation loop.

Motivation

Currently cf work batch run operates on a snapshot of task states taken at batch start. If someone closes a GitHub issue, manually marks a task DONE, or resolves a blocker while the batch is running, CodeFrame won't notice until the agent tries to work on the (now irrelevant) task.

Symphony handles this with reconciliation on every poll tick — checking tracker state for all running issues and killing/adjusting as needed.

Sub-Issues

Dependency Graph

#404 (engine) ──┬──> #405 (conductor integration)
                └──> #406 (GitHub sync)

#405 and #406 are independent of each other and can be done in parallel.

Dependencies

  • Benefits from Phase 4 multi-agent work (long-running batches)
  • No hard prerequisites

Acceptance Criteria

  • Running/queued tasks checked for external state changes every N seconds (configurable)
  • Tasks closed externally → agent killed, task skipped in batch
  • Tasks completed externally → agent killed, task marked DONE
  • Blockers resolved externally → blocked tasks re-queued
  • GitHub issue state changes reflected in batch execution
  • Reconciliation failures logged but don't crash the batch
  • Integration tests for external state change → batch adjustment

Metadata

Metadata

Assignees

No one assigned

    Labels

    architectureSystem architecture and design patternsenhancementNew feature or requestphase-4.4Phase 4.4: Batch Execution & Reconciliationsymphony-inspiredInspired by OpenAI Symphony spec analysis

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions