feat(orchestrator): soft occupancy threshold requests handoff early (S11 partial)
Coordinator.Soft (default 0.55, ORCHESTRA_OCCUPANCY_SOFT) makes rotate() and TurnDecision request a handoff advisory-only once occupancy crosses the soft threshold, well before Hard forces a release/rotation. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01W1rkJ2hBMybnJctPbcy4tT
This commit is contained in:
+11
-2
@@ -273,8 +273,17 @@ Fixed so far:
|
||||
correct admit token accepted, same-id-different-token rejected as a
|
||||
hijack, same-id-same-token (legitimate restart) still succeeds.
|
||||
|
||||
Not yet started: Codex/opencode Stop-hook-equivalent scripts, S8, S11. See
|
||||
`AUDIT.md` for the full plan.
|
||||
- **S11 (partial — soft threshold only)** — added `Coordinator.Soft`
|
||||
(default 0.55, `ORCHESTRA_OCCUPANCY_SOFT` override). Both `rotate()` and
|
||||
`TurnDecision` now request a handoff once occupancy crosses `Soft`, well
|
||||
before `Hard` forces one; `TurnDecision` returns `prepare_handoff` for this
|
||||
advisory case without requiring a turn boundary, leaving the task leased.
|
||||
Covered by a new `TestTurnDecision` subtest. **Not done:** milestone
|
||||
rotation, thrash detection, agent-initiated `ROTATE` — see AUDIT.md's S11
|
||||
section for why those are bigger than a threshold check.
|
||||
|
||||
Not yet started: Codex/opencode Stop-hook-equivalent scripts, S8, S11's
|
||||
milestone/thrash/agent-`ROTATE` pieces. See `AUDIT.md` for the full plan.
|
||||
|
||||
**Phase 0 done (2026-07-27):** this box has live TCP reachability to the real
|
||||
herdr instance at `192.168.1.105:9245` — verified by hand (raw JSON-RPC
|
||||
|
||||
Reference in New Issue
Block a user