Repository navigation
Hamsterdan CV3 retry: seeded-review-finding - #26
henriquebastos wants to merge 1 commit into
Conversation
Hamsterdan PR readiness dashboardGeneration: Actions: green, attempt 1 (flaky=False) · run 30725049489 Coordinating agent review: blocking Findings / lineage
Human approved: True · Review requested: False · Required approvals: 0 · Distinct approval: False Base policy: strict / update required · Observed base: Mergeable: True · Conflict: False · Unresolved conversations: 2 Mutation pending: False · Provisional: False Capabilities: Actions blocking=False; human blocking=False; dashboard blocking=False; conversation reply blocking=False; finding publication blocking=False; readiness publication blocking=False Readiness: not ready · Waiting for: finding disposition or change Advisory only; humans keep merge authority. I keep the dashboard current, not the merge button. |
Release readiness ignores mergeabilityThe readiness predicate returns true for an otherwise-ready pull request even when Generation: Evidence: Lineage: |
| @@ -0,0 +1,3 @@ | |||
| def ready_for_release(draft: bool, approvals: int, checks_green: bool, mergeable: bool) -> bool: | |||
| """Latent defect: mergeability is accepted but accidentally ignored.""" | |||
| return not draft and approvals > 0 and checks_green | |||
There was a problem hiding this comment.
Release readiness ignores mergeability
Blocking: the readiness predicate still returns true for an otherwise-ready pull request when mergeable is false. Include mergeable in the conjunction and add a negative test for that case; this gate has one seed loose in the machinery.
Generation: 1 · Head: dc80e0e01ee2c84410ade6500802d2baea15b4c8
Evidence: ready_for_release(False, 1, True, False) evaluates to True because line 3 checks draft status, approvals, and checks but never checks the mergeable argument.
Lineage: {"finding_id": "correctness-001", "state": "still_open", "supersedes": null}
Primary location: scenario-fixtures/seeded_review_finding.py:3
| return not draft and approvals > 0 and checks_green | |
| return not draft and approvals > 0 and checks_green and mergeable |
| @@ -0,0 +1,3 @@ | |||
| def ready_for_release(draft: bool, approvals: int, checks_green: bool, mergeable: bool) -> bool: | |||
| """Latent defect: mergeability is accepted but accidentally ignored.""" | |||
| return not draft and approvals > 0 and checks_green | |||
There was a problem hiding this comment.
Release readiness ignores mergeability
Blocking: the readiness predicate still returns true for an otherwise-ready pull request when mergeable is false. Include mergeable in the conjunction and add a negative test for that case; this gate has one seed loose in the machinery.
Generation: 1 · Head: dc80e0e01ee2c84410ade6500802d2baea15b4c8
Evidence: ready_for_release(False, 1, True, False) evaluates to True because line 3 checks draft status, approvals, and checks but never checks the mergeable argument.
Lineage: {"finding_id": "correctness-001", "state": "still_open", "supersedes": null}
Primary location: scenario-fixtures/seeded_review_finding.py:3
| return not draft and approvals > 0 and checks_green | |
| return not draft and approvals > 0 and checks_green and mergeable |
Expected deterministic outcome: CI passes, while review identifies the seeded semantic finding
ready-for-release-ignores-mergeablein the admitted fixture.Do not merge automatically.