Skip to content

epic: make Dispatch the harness-agnostic agent control plane #392

@joryirving

Description

@joryirving

Goal

Make Dispatch usable by any harness with the same simple loop:

  1. ask Dispatch for one task
  2. if idle, stop before starting a model
  3. execute exactly that task
  4. report the result
  5. stop

Harnesses include OpenClaw, Hermes, Claude Code, Codex, OpenCode, and manual/CLI runners.

Problem

Too much required behavior currently lives outside Dispatch: cron prompts, helper scripts, heartbeat state, workflow repos, and harness-specific glue. That makes the product hard to explain and harder to run.

Non-goals

  • Do not require upstream changes to any harness.
  • Do not make Dispatch an agent runner.
  • Do not make this OpenClaw-specific.
  • Do not require a second runtime repo.
  • Do not let worker tasks merge PRs.

Target contract

Dispatch owns task selection, queue state, claims, follow-up detection, stop conditions, and allowed/forbidden actions.

A harness only executes the returned task.

Child issues

Child issues will cover:

  • task contract/schema
  • next-task endpoint
  • report endpoint
  • PR follow-up detection
  • groomer task mode
  • harness docs/examples
  • runtime sprawl cleanup

Acceptance criteria

  • A generic harness can integrate with Dispatch using documented HTTP calls.
  • A worker can get implement, followup-pr, or idle.
  • A groomer can get groom or idle.
  • Idle is cheap and does not require starting an LLM.
  • Runtime prompts/scripts are no longer required from a second repo.
  • Worker task contract explicitly forbids merge/groom/claim-another-issue actions.
  • Existing queue behavior remains compatible while the new contract is introduced.

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or improvement.priority/p0Critical priority.status/backlogNot ready for worker pickup yet.

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions