docs: clarify concurrent consensus protocol details [doc-updater] - #1039
Conversation
There was a problem hiding this comment.
No agent-mode design concerns. This is a documentation-only change that clarifies existing orchestrator behavior (HITL options for objections/timeouts, container-exit fallback, poll interval). No agent workflow or prompt design implications.
— Authored by egg
There was a problem hiding this comment.
Verified every claim against the implementation in orchestrator/routes/pipelines.py:_run_concurrent_phase (lines 4416–4841):
- 5-second poll interval:
poll_interval = 5(L4568),time.sleep(poll_interval)(L4841) — correct - Immediate container stop on consensus:
_stop_running_containers()called whenis_complete(L4685) — correct - Objection HITL options:
["Override objections", "Wait for resolution", "Abort phase"](L4708) — matches exactly - Timeout config and default:
getattr(pipeline.config, "consensus_timeout_minutes", 30)(L4569) — correct - Timeout HITL options:
["Continue waiting", "Accept current state", "Abort phase"](L4796) — matches exactly - Exit-code fallback after timeout: ThreadPoolExecutor waits for remaining containers, returns based on exit codes (L4802–4838) — correct
- Container-exit fallback before consensus:
len(exited_containers) >= len(active_executions)(L4768–4772) — correct
All documented behavior is accurate. LGTM.
One non-blocking note: lines 3–5 of the updated list are ~150–180 characters, which may wrap awkwardly in narrow viewports. Consider breaking them into a main point + sub-bullet for the mechanism details. Not blocking.
— Authored by egg
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
|
Agreed. Broke the long consensus protocol lines (3–5) into main point + sub-bullets for better readability in narrow viewports. Pushed in bb9c8e4. — Authored by egg |
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
This comment has been minimized.
There was a problem hiding this comment.
Re-reviewed at bb9c8e4. The previous non-blocking suggestion (break long consensus protocol lines into main point + sub-bullets) has been properly addressed.
Verified all documentation claims against orchestrator/routes/pipelines.py:_run_concurrent_phase:
- Poll interval:
poll_interval = 5(L4568) — matches - Immediate container stop:
_stop_running_containers()on consensus (L4685) — matches - Objection HITL options:
["Override objections", "Wait for resolution", "Abort phase"](L4708) — exact match - Timeout config:
getattr(pipeline.config, "consensus_timeout_minutes", 30)(L4569) — matches - Timeout HITL options:
["Continue waiting", "Accept current state", "Abort phase"](L4796) — exact match - Exit-code fallback on timeout: ThreadPoolExecutor waits for containers, returns on exit codes (L4802–4838) — matches
- Container-exit fallback before consensus:
len(exited_containers) >= len(active_executions)(L4768–4772) — matches
No issues found. LGTM.
— Authored by egg
|
egg review completed. View run logs 5 previous review(s) hidden. |
docs: clarify concurrent consensus protocol details [doc-updater]
Update the Concurrent Execution Mode → Consensus Protocol section in
docs/guides/sdlc-pipeline.mdto reflect behavior introduced in7b4a27d (Add consensus-driven phase advancement for concurrent
execution, #1037).
Before that commit, concurrent phase completion was purely exit-code-
based; the docs described the intended consensus behavior. Now that the
polling loop is implemented, two details were missing from the docs:
OBJECTING, a HITLdecision is created — the specific options presented to the human
("Override objections", "Wait for resolution", "Abort phase") were
not documented.
HITL escalation" but didn't list the decision options ("Continue
waiting", "Accept current state", "Abort phase") or mention the
container-exit fallback that takes effect while the decision is pending.
reached, the phase now completes based on exit codes — this path was
undocumented.
orchestrator polls every 5s and stops containers immediately on
consensus.
Triggered by: #1037
Issue: none
Test plan:
docs/guides/sdlc-pipeline.mdfor accuracy against the implementationin
orchestrator/routes/pipelines.py:_run_concurrent_phase.Authored-by: egg