Add orch strict worktree dispatch
This commit is contained in:
@@ -0,0 +1,63 @@
|
||||
# Orch Strict Worktree Support
|
||||
|
||||
## Status
|
||||
|
||||
- `completed`
|
||||
|
||||
## Owner
|
||||
|
||||
- codex
|
||||
|
||||
## Started At
|
||||
|
||||
- `2026-03-19`
|
||||
|
||||
## Goal
|
||||
|
||||
- implement dispatch-time strict worktree support so `orch` can resolve a committed base, create a branch and worktree per attempt, and persist workspace metadata into attempt storage and inbox payload
|
||||
|
||||
## Scope
|
||||
|
||||
- extend `orch dispatch` to support Git-backed worktree creation
|
||||
- enforce strict-mode base resolution and dirty-repo checks
|
||||
- persist `base_ref`, `base_commit`, `branch_name`, `worktree_path`, and `workspace_status`
|
||||
- add integration tests for successful worktree dispatch and strict-mode rejection on dirty repositories
|
||||
- update project-level implementation roadmap after the work is validated
|
||||
|
||||
## Checklist
|
||||
|
||||
- [x] inspect current worktree design docs and dispatch constraints
|
||||
- [x] implement git helpers for repo discovery, base resolution, branch naming, and worktree creation
|
||||
- [x] wire worktree metadata into `orch dispatch` attempt storage and inbox payload
|
||||
- [x] add integration coverage for strict worktree success and dirty-repo failure
|
||||
- [x] run `go test ./...`
|
||||
- [x] update `docs/implementation-roadmap.md`
|
||||
- [x] archive this roadmap with completion summary
|
||||
|
||||
## Files
|
||||
|
||||
- `docs/roadmaps/archive/orch-strict-worktree-support.md`
|
||||
- `docs/implementation-roadmap.md`
|
||||
- `internal/cli/orch/dispatch.go`
|
||||
- `internal/cli/orch/integration_test.go`
|
||||
- `internal/cli/orch/worktree.go`
|
||||
- `internal/store/orch.go`
|
||||
|
||||
## Decisions
|
||||
|
||||
- use the current working directory as the default source repo for `orch dispatch`, with an explicit override flag only if implementation needs it
|
||||
- keep worktree creation tied to dispatch so failed workspace creation cannot silently leave a task marked as dispatched
|
||||
|
||||
## Blockers
|
||||
|
||||
- none
|
||||
|
||||
## Next Step
|
||||
|
||||
- implement `orch wait`, then continue with retry/reassign/cancel/cleanup on top of the now worktree-aware dispatch model
|
||||
|
||||
## Completion Summary
|
||||
|
||||
- `orch dispatch` now supports strict Git-backed worktree provisioning with repo discovery, committed base resolution, branch naming, and per-attempt worktree paths
|
||||
- dispatch persists workspace metadata on attempts and includes the same metadata in inbox task payloads for worker runtimes
|
||||
- integration tests now cover successful strict worktree creation, dirty-repo rejection without `--base-ref`, and explicit-base dispatch on dirty repositories
|
||||
Reference in New Issue
Block a user