Observed
This was observed on published v1.1.0 (Action e3c6cb0c7657d9c53d4e29b2061d04dcf99a4e9b, PyPI 1.1.0) in the public synthetic fixture https://github.com/ThreeMoonsLab/agents-shipgate-hosted-fixture. In the same PR comment, the human summary and the agent block count different things under the same word:
| PR / run |
Review question |
control.reason |
| PR 1 / 35773922210 |
"these 2 declared capability changes (from 4 rows)" |
"4 repository-declared host capability change(s)" |
| PR 1, second push / 35774315551 |
4 changes (from 5 rows) |
5 change(s) |
| PR 2 / 35774377665 |
1 change (from 2 rows) |
2 change(s) |
| PR 8 / 35774401670 |
3 changes (from 5 rows) |
5 change(s) |
| PR 7, PR 9 (fork, job summary) |
2 changes (from 4 rows) |
4 change(s) |
Only PR 3 is consistent (1 row, 1 change).
Cause (at e3c6cb0c)
src/agents_shipgate/cli/verify/orchestrator.py:6925 builds the reason from len(host_comparison.rows) and labels it "change(s)". The review summary counts paired changes, so a replacement's two rows count as one change.
Expected
control.reason uses the review's change count, or labels its number as rows. One comment never gives two different counts for "changes".
Acceptance
Found in the hosted v1.1.0 run recorded on #780 and #570.
Observed
This was observed on published
v1.1.0(Actione3c6cb0c7657d9c53d4e29b2061d04dcf99a4e9b, PyPI 1.1.0) in the public synthetic fixture https://github.com/ThreeMoonsLab/agents-shipgate-hosted-fixture. In the same PR comment, the human summary and the agent block count different things under the same word:control.reasonOnly PR 3 is consistent (1 row, 1 change).
Cause (at
e3c6cb0c)src/agents_shipgate/cli/verify/orchestrator.py:6925builds the reason fromlen(host_comparison.rows)and labels it "change(s)". The review summary counts paired changes, so a replacement's two rows count as one change.Expected
control.reasonuses the review's change count, or labels its number as rows. One comment never gives two different counts for "changes".Acceptance
control.reason's number agrees withreview.summary's change count, or the reason says "rows".control.reason) still passes. STABILITY.md records the changed reason text if it is a documented surface.Found in the hosted v1.1.0 run recorded on #780 and #570.