Files
cleveragents-core/scripts
drew a6610a022c feat(auto-agents): launcher sidecars for conflict-drive + merge-drive
Two new long-lived sidecars folded into the dispatcher launcher,
each gated by an env var for safe enable/disable:

**Conflict driver** (``DISPATCHERS_DISABLE_CONFLICT_DRIVE``, default
enabled). Watches Forgejo for ``auto/needs-conflict-resolution``
labels, dispatches ``conflict-resolver-worker`` (the new agent;
bound to ``local-claude/claude-opus-4-6`` for high-quality rebases)
to rebase + resolve conflicts, force-with-leases the result, and
clears the label. Decoupled from approval — keeps PRs mergeable
so the merge driver doesn't have to wait at approval time.

**Merge driver** (``DISPATCHERS_DISABLE_MERGE_DRIVE``, default
DISABLED in this test launcher to avoid accidental merges during
validation runs). Watches Forgejo for APPROVED PRs without blocking
labels, rebases against current master, runs the local CI gate,
merges via squash with force-with-lease semantics. Terminal stage
of the pipeline.

Both sidecars follow the existing warmer pattern: best-effort
respawn on failure, no contribution to the dispatcher crash-loop
budget, clean shutdown on launcher exit. PRs that get
``auto/needs-conflict-resolution`` would sit forever without the
conflict-driver sidecar — the implementer and reviewer don't act
on that label.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-18 00:05:47 -04:00
..