Merge pull request #314 from cndgrr/build/307-issueflow-ruling-preread-pin

test/issueflow-reconcile.test.sh — pin the claimed-branch ruling pre-read (#307)
This commit is contained in:
Daniel Marin 2026-08-04 21:11:57 +01:00 committed by GitHub
commit d24a3142a6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 25 additions and 0 deletions

6
changelog.d/307.md Normal file
View file

@ -0,0 +1,6 @@
### Added
- The issue-flow sweep's `claimed`-branch ruling pre-read is pinned: an
unassigned claim under `needs-ruling` must draw its board diagnostic and
its ruling nudge in one sweep, so a read that drifts below the diagnostic
reds instead of silently costing the escalation 7 days (#284, #307).

View file

@ -945,6 +945,25 @@ check "an hour-old claim does not silence a ruling 9 days quiet" 0 "" \
check "...and the fresh assignment is not reclaim bait either" 1 "" \
grep -q 'reclaimed' <<<"$claimed_fresh"
# The claimed branch's top read, pinned. `claimed` + `needs-ruling` with no
# assignee is the one composition where this branch posts BEFORE the ruling
# block: `claim_decision` returns FLAG_UNASSIGNED and the
# `claimed-unassigned` comment goes out, so a ruling clock read down there
# would date the issue by the sweep's own writing and buy the escalation
# another 7 quiet days — the #274 hazard, on the very branch #284 D6 exists
# to hold. Probe 101 does not reach it: it carries an assignee and an open
# PR. One sweep, both outputs — the board diagnostic and the nudge it must
# not silence — because asserting only the nudge would pass with the
# diagnostic silently gone. Reds the moment the top read drifts below the
# post, and the deletion of that read is what proved it (#284 D6, #307).
ruling_quiet 110
timeline_add 110 assigned 3600
unassigned_flag="$(issue_probe 110 $'claimed\nneeds-ruling' 0 false)"
check "an unassigned claim under a ruling still draws its board flag" 0 "1" \
grep -cF '<!-- issueflow:claimed-unassigned -->' "$TMP/posted-110"
check "...and the ruling nudge fires beside it, undated by it" 0 "" \
grep -q 'ruling nudge' <<<"$unassigned_flag"
# The clock rule alone, no assignee in the way: an assigned/unassigned pair
# in the timeline is the claim's history, not activity toward the ruling.
ruling_quiet 102