This repository has been archived on 2026-03-28. You can view files and clone it. You cannot open issues or pull requests or push a commit.
Files
bootstrap/docs/DEVELOPER-GUIDE/orchestrator-matrix/macp-phase1.md
Jarvis e5eac889ec fix: address review findings — backward compat, ACP safety, result timing, security
- Fix 1: tasks_md_sync only sets MACP fields when columns exist in table headers
- Fix 2: ACP dispatch now escalates instead of falsely completing
- Fix 3: Removed premature collect_result() from dispatch_task()
- Fix 4: Yolo brief staged via temp file (0600) instead of process args
- Fix 5: cleanup_worktree validates path against configured worktree base
2026-03-27 19:48:52 -05:00

1.6 KiB

MACP Phase 1

MACP Phase 1 extends tools/orchestrator-matrix/ without replacing the existing deterministic controller model.

What Changed

  1. Task and event schemas now describe MACP dispatch metadata, new lifecycle statuses, and dispatcher-originated events.
  2. tools/orchestrator-matrix/dispatcher/macp_dispatcher.py manages task worktrees, dispatch command generation, result files, and cleanup.
  3. mosaic_orchestrator.py routes MACP-aware tasks through the dispatcher while leaving legacy non-dispatch tasks on the original shell path.
  4. bin/mosaic-macp adds manual submit, status, drain, and history operations for .mosaic/orchestrator/.

Dispatch Modes

  1. exec: runs the task's command directly inside the task worktree.
  2. yolo: launches mosaic yolo <runtime> via a PTY wrapper and stages the brief in a temporary file so the brief body is not exposed in process arguments.
  3. acp: escalates immediately with ACP dispatch requires OpenClaw integration (Phase 2) until real ACP/OpenClaw spawning exists.

Result Contract

MACP writes task result JSON under .mosaic/orchestrator/results/ by default. Result files capture:

  1. Task status and timing
  2. Attempt counters
  3. Runtime and dispatch metadata
  4. Changed files seen in the task worktree
  5. Quality-gate command results
  6. Error or escalation details

Compatibility

Legacy tasks that omit dispatch still behave like the original matrix controller. tasks_md_sync.py only injects MACP fields when the corresponding markdown headers exist, which keeps existing tasks.json workflows functional while allowing orchestrators to opt into MACP incrementally.