From b63fc12f1a1229520d0227143b496079a12f2253 Mon Sep 17 00:00:00 2001 From: Ben Sima Date: Thu, 20 Nov 2025 23:15:49 -0500 Subject: docs(agent): add rigorous git/state learnings to design --- Omni/Agent/DESIGN.md | 3 +++ 1 file changed, 3 insertions(+) (limited to 'Omni') 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/`). - 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 -- cgit v1.2.3