diff options
| author | Ben Sima <ben@bsima.me> | 2025-11-20 23:15:49 -0500 |
|---|---|---|
| committer | Ben Sima <ben@bsima.me> | 2025-11-20 23:15:49 -0500 |
| commit | b63fc12f1a1229520d0227143b496079a12f2253 (patch) | |
| tree | bec2229c7956d69fa9cf67e3c801d0a969531dc3 /Omni/Agent/DESIGN.md | |
| parent | 3eeffaaed05e6fbe547d9c56937fa3e2738777d7 (diff) | |
docs(agent): add rigorous git/state learnings to design
Diffstat (limited to 'Omni/Agent/DESIGN.md')
| -rw-r--r-- | Omni/Agent/DESIGN.md | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/Omni/Agent/DESIGN.md b/Omni/Agent/DESIGN.md index eb30ecb..a53c802 100644 --- a/Omni/Agent/DESIGN.md +++ b/Omni/Agent/DESIGN.md @@ -91,6 +91,9 @@ The Haskell implementation should replicate the logic of `start-worker.sh` but w - If the task depends on another task that is *not* yet in `live` (e.g., in `Review`), the worker should branch off the dependency's branch (`task/<dep-id>`). - Otherwise, branch off `live` (via the worker's base branch). - **Clean State**: The worker should ensure the workspace is clean (no uncommitted changes) before starting a new loop iteration. +- **Rebase Safety**: Always check the exit code of `git rebase`. If it fails (conflicts), abort immediately (`git rebase --abort`) to avoid leaving the repo in a broken interactive rebase state. +- **Status Verification**: Verify that task status updates actually succeed. Check `task ready` output against `live` state to prevent "zombie" tasks (completed in live but stuck in local loop) from being re-claimed. +- **Binary Freshness**: Ensure the `task` binary used by the worker is rebuilt/updated when source code changes, otherwise logic fixes (like `task ready` filtering) won't take effect. ## 5. Migration Strategy |
