dispatch: invert surface-to-isolation mapping main vs worktree+branch #35

Closed
opened 2026-05-28 10:55:41 +00:00 by coilysiren · 1 comment
Owner

Consumer-driven by coilysiren/coily#145.

Isolation should track concurrency, not churn velocity. Today only the interactive surface uses a worktree, while the detached surfaces (headless, cascade) share the canonical checkout - exactly backwards, since the detached surfaces are the ones that fan out into multiple concurrent workers in one repo and race on a shared working tree/index.

Invert the mapping in cli-guard/dispatch:

  • headless, cascade (detached, parallel) -> per-issue worktree+branch. Each worker gets its own isolated working dir; lands by merging its branch into main when green.
  • interactive, consult (supervised, serial) -> run directly on the default branch in the canonical checkout. No worktree, no auto-merge dance; commit to main as the operator watches. Drops the --no-worktree escape hatch.

Worktree placement moves off interactive.go into worktree.go and onto runDetached; reaping follows the detached surfaces.

Consumer-driven by coilysiren/coily#145. Isolation should track concurrency, not churn velocity. Today only the `interactive` surface uses a worktree, while the detached surfaces (`headless`, `cascade`) share the canonical checkout - exactly backwards, since the detached surfaces are the ones that fan out into multiple concurrent workers in one repo and race on a shared working tree/index. Invert the mapping in `cli-guard/dispatch`: - `headless`, `cascade` (detached, parallel) -> per-issue worktree+branch. Each worker gets its own isolated working dir; lands by merging its branch into main when green. - `interactive`, `consult` (supervised, serial) -> run directly on the default branch in the canonical checkout. No worktree, no auto-merge dance; commit to main as the operator watches. Drops the `--no-worktree` escape hatch. Worktree placement moves off `interactive.go` into `worktree.go` and onto `runDetached`; reaping follows the detached surfaces.
Author
Owner

Landed on GitHub main as cli-guard 02f4153. Closing manually: the cli-guard GitHub and Forgejo remotes have diverged (see #36), so the closes #35 trailer pushed to GitHub did not reach this Forgejo issue. Consumer bump landed in coilysiren/coily#145.

Landed on GitHub main as cli-guard `02f4153`. Closing manually: the cli-guard GitHub and Forgejo remotes have diverged (see #36), so the `closes #35` trailer pushed to GitHub did not reach this Forgejo issue. Consumer bump landed in coilysiren/coily#145.
Sign in to join this conversation.
No labels
P0
P1
P2
P3
P4
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/cli-guard#35
No description provided.