- Get Started

VESSEL - DevOps & Merge

VESSEL is the DevOps agent. It is the only agent authorized to push to the main branch. VESSEL monitors CI, detects merge conflicts early, attempts automated resolution, and squash-merges green PRs. It runs in an ephemeral workspace and coordinates entirely through the harness and GitHub MCP.

Responsibilities

Workflow

  1. Watch - Poll GitHub for PRs labeled approved by SENTINEL
  2. Verify CI - Wait for all checks to pass (success / skipped)
  3. Check mergeable - GitHub mergeable: true required
  4. Resolve conflicts - If mergeable: false, attempt rebase; on failure, re-route to same FORGE worker
  5. Merge - Squash-merge with Closes #N reference
  6. Cleanup - Archive ticket, destroy workspace, emit ticket_merged

Merge Conflict Handling

When GitHub reports mergeable: false:

  1. VESSEL writes CONFLICT_RESOLUTION.md documenting the conflict
  2. Attempts git rebase main inside the FORGE workspace
  3. If successful, pushes updated branch and restarts CI wait
  4. If failed, re-routes ticket to the same FORGE worker - no new branch, no context loss

Same worker re-routing

Re-routing to the same FORGE worker preserves the workspace, branch, and implementation context. The worker picks up from the conflict resolution and continues.

CI Polling Configuration

json
{
  "agents": {
    "vessel": {
      "provider": "openai",
      "model": "gpt-4o",
      "coder_module": "codex",
      "active": true,
      "instances": 1,
      "mcps": ["github-mcp"],
      "timeout_ms": 1800000
    }
  }
}
SettingDefaultDescription
Poll interval10sHow often to check PR checks
CI timeout30minMax wait for CI to complete
Rebase attempts3Max automated rebase retries
Merge methodsquashSquash-merge preserves clean history

Harness Integration

bash
# Monitor PR (via GitHub MCP in workspace)
# VESSEL uses GitHub MCP to poll checks

# Record merge
openflows-harness pr merged --pr 123

# Emit ticket_merged for LORE
openflows-harness event emit ticket_merged --ticket 42 --pr 123

# Trigger workspace teardown
openflows-harness workspace teardown --worker forge-1}

Branch Protection

VESSEL respects GitHub branch protection rules:

Workspace Teardown

After merge, VESSEL coordinates cleanup:

  1. Mark ticket merged in Redis
  2. Destroy FORGE workspace via Coder API
  3. Destroy own workspace
  4. Release worker slot back to pool