_revision_count read verdict.get("decision"), but verdicts are keyed "verdict"
(both reviewer and synthetic human-gate), so the count was always 0 and the
plan_node MAX_PLAN_REVISIONS self-park was dead code. Now reads "verdict" first
(fallback "decision"), matching _format_review_feedback's precedence; the
existing .strip().upper()==_REQUEST_CHANGES compare covers both request_changes
and REQUEST_CHANGES. Counts reviewer + human request_changes.
Cap composition: the review-loop round cap and MAX_PLAN_GATE_VISITS govern the
live loops; the planner MAX_PLAN_REVISIONS is now a correct backstop (was inert),
not a behavior change to the gate. Tests drive the real "verdict" key and prove
the previously-dead park fires. 1487 passed.
|
||
|---|---|---|
| .. | ||
| __init__.py | ||
| build_verify_subgraph.py | ||
| builders.py | ||
| builders_llm.py | ||
| clarifier.py | ||
| clarifier_llm.py | ||
| dispatch_invoker.py | ||
| fixer.py | ||
| handbook.py | ||
| planner.py | ||
| review_loop.py | ||
| review_loop_llm.py | ||
| verifier.py | ||
| verifier_llm.py | ||