Check loop.qnt's properties against the real loop (M2.1, PR D part 1)
CI / checks (push) Skipped

test_loop_properties.py walks the new loop with a seeded mix of operator
and Gitea actions (go-aheads, stale go-aheads, answers, comments, merges,
the comment-then-merge race, closes, abandon, a crash and restart) and an
adaptive scripted model, checking every loop.qnt property after every
step. It found two bugs, both fixed with regression tests: abandoning an
item left its open PR open (the model's fix 1, now in code), and after a
review fix became a follow-up PR, the next fix went to the merged branch.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01PPQ14L3LikyefCMFBqEbKE
This commit is contained in:
dongarandClaude Opus 5.5 committed 2026-10-03 14:19:19 +00:00
1 parent 21744efac1
commit 266b5dbbd7
5 files changed
+318 -4

No files matched your search

+2 -1
View File
@@ -32,6 +32,7 @@ class Fixed:
kind: Literal["pushed", "nothing", "new-pr", "closed", "failed"]
note: str
pr: PullRequest | None = None
branch: str = "" # a new PR's branch, which later fixes go to
class Milestones:
@@ -177,7 +178,7 @@ class Milestones:
summary=f"PR #{pr} merged before this review fix landed.",
issue=0,
)
return Fixed("new-pr", new.note, new.pr)
return Fixed("new-pr", new.note, new.pr, follow)
if state.state != "open":
return Fixed("closed", f"PR #{pr} was closed", state)
return Fixed("pushed", f"pushed {sha[:8]}", state)