* feat(parallel): add slice-level parallelism with dependency-aware dispatch
Fixes#2340
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
* fix(parallel): handle missing slice lock, add worktree cleanup, remove dead code
- state.ts: When GSD_SLICE_LOCK is set but the locked slice ID is not
found in activeMilestoneSlices, log a warning and return a blocked
state with a clear error message instead of silently continuing with
activeSlice=undefined. Applied in both DB-backed and legacy paths.
- slice-parallel-orchestrator.ts: Add worktree cleanup via removeWorktree
in stopSliceParallel (after killing workers) and in the catch block of
startSliceParallel (for partially created worktrees). Store basePath in
SliceOrchestratorState so stopSliceParallel can reference it.
- status-guards.ts: isInactiveStatus does not exist on this branch
(only isClosedStatus is defined), so no removal needed.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* fix(state): remove duplicate logWarning import after rebase conflict resolution
The rebase merge left two import lines for logWarning from workflow-logger.
Consolidated into a single import including logError.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: trek-e <trek-e@users.noreply.github.com>