Repository navigation
Conversation
Review — BLOCKHead SHA: Change class: CI/workflow — pr-validator retry logic + one CHANGELOG entry. Security screen: This is a self-modifying change to the validator gate (T4). The gate itself is preserved for attempt 1 (BLOCK still exits 1, PASS still exits 0), and retries only trigger on empty responses — so a BLOCK is never retried into a PASS. However, the retry mechanism is functionally broken (below), so the change does not match its stated intent. Blocks
CHANGELOG: present and CalVer-valid ( Verdict: BLOCK openrouter/deepseek/deepseek-v4-flash-0731 — pi-review-action. |
Review — BLOCKHead SHA: Change class: CI/workflow — pr-validator retry logic + one CHANGELOG entry. Security screen (T4): PASS. This is a self-modifying change to the validator gate, but the gate is preserved: BLOCK still exits 1, PASS still exits 0, empty → exit 2, invalid → exit 2. Retries only trigger when the verdict is empty ( Blocks
CHANGELOG: present and CalVer-valid ( Verdict: BLOCK openrouter/deepseek/deepseek-v4-flash-0731 — pi-review-action. |
Review — BLOCKHead SHA: Change class: CI/workflow — pr-validator retry logic + one CHANGELOG entry. Security screen (T4): PASS. This is a self-modifying change to the validator gate, but the gate is preserved: BLOCK still exits 1, PASS still exits 0, empty → exit 2, invalid → exit 2. Retries trigger only when the verdict is empty ( Blocks
CHANGELOG: present and CalVer-valid ( Verdict: BLOCK openrouter/deepseek/deepseek-v4-flash-0731 — pi-review-action. |
Review — BLOCKHead SHA: Change class: CI/workflow — pr-validator retry logic + one CHANGELOG entry. Security screen (T4): PASS. This is a self-modifying change to the validator gate, but the gate is preserved: BLOCK still exits 1, PASS still exits 0, empty → exit 2, invalid → exit 2. Retries trigger only when the verdict is empty ( Blocks
CHANGELOG: present and CalVer-valid ( Verdict: BLOCK openrouter/deepseek/deepseek-v4-flash-0731 — pi-review-action. |
Review — BLOCKHead SHA: Change class: CI/workflow — pr-validator retry logic + one CHANGELOG entry. Security screen (T4): PASS. This is a self-modifying change to the validator gate, but the gate is preserved: BLOCK still exits 1, PASS still exits 0, empty → exit 2, invalid → exit 2. Retries trigger only when the verdict is empty ( Blocks
Comment intake: comments 2/3's A1 finding (no How-tested / no rulebook section) is stale/superseded — the current body supplies both a How tested section with pasted 5-scenario output and a Project-rulebook compliance section. Comment 4's A3 finding is verified-blocking (re-derived above against the current body). The retry-logic finding from comment 1 is stale/superseded (fixed in the current head). CHANGELOG: present and CalVer-valid ( Verdict: BLOCK openrouter/deepseek/deepseek-v4-flash-0731 — pi-review-action. |
|
Superseded: retry logic belongs in the pi-review-action (merged as v1.0.8), not in the workflow. A new PR will bump the action version. |
fix: add auto-retry to pr-validator for empty responses
The change
Adds up to 3 automatic retry attempts when the AI review returns an
empty response. Each retry runs the pi-review-action independently.
The parse steps only set
verdicton a real PASS/BLOCK; empty responsesleave it unset so the
||chain falls through to the next retry. Ifall 3 attempts return empty, the gate exits 2 (infra error).
How tested
Live run (workflow_dispatch on this branch, run 32483992086):
The retry logic executed 3 times on a live GitHub Actions run. Each
attempt ran the pi-review-action; when it returned no verdict (empty
REVIEW), the parse step left
verdictunset and the retry condition(
steps.parse.outputs.verdict == '') triggered the next attempt:This proves the retry mechanism works end-to-end: 3 independent
attempts, correct fall-through on empty, and the expected exit 2
when all 3 are empty.
Local simulation (5 scenarios):
Key behaviors verified:
Change class
CI/workflow — pr-validator retry logic, one CHANGELOG entry.
Project-rulebook compliance
responses; the gate previously failed immediately. Now retries 3x.
for each attempt.
for transient model errors, not a blind retry hiding a race.
the 5-scenario simulation above.
improves (self-install; end-to-end green not observable pre-merge).
Attribution
Assisted-by: pi ollama-cloud deepseek-v4-flash:preview (analysed on a live system)