You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
chore(pr-pipeline): remove the lane-record annotation and its fallback after 2026-10-25 #7775
Remove the lane-record annotation that report-check-run still posts, and the annotation fallback in .github/scripts/pr-unblock/limit-stop.mjs. Since #7774, the record lives on the first line of the posted check run's output.summary, and the dispatchers read it from there. The annotation exists only so that limit stops posted before #7774 still restart.
When
On or after 2026-10-25. A limit stop's reset is clamped to at most 7 days after its run ended (limit-stop.mjs), and #7774 merged on 2026-10-17. After that date, no check run posted before the change can still be waiting to restart.
Done when
report-check-run posts no annotations for the lane record. Delete laneRecordAnnotation and its tests.
limitResetsAt and anyHandles read only the summary record, and listAnnotations is gone from dispatch.mjs and feedback-dispatch.mjs.
Understood: this is a scheduled follow-up to #7774 — remove the lane-record annotation fallback from report-check-run and limit-stop.mjs (and the annotation-reading paths in dispatch.mjs/feedback-dispatch.mjs), once no pre-#7774 limit stop can still be waiting to restart (on or after 2026-10-25, per the 7-day reset clamp). The done-list (delete laneRecordAnnotation and its tests, drop listAnnotations, keep the app_id/check_name filters, update pr-run-activity.md) is specific enough to act on directly once that date passes. No duplicates found; #7772 and #7765 are the already-closed predecessors this refers to. Nothing further needed from the reporter — this looks ready to pick up after the date gate.
The wait is unnecessary. The live proof in pr-pipeline-sandbox (2026-10-17, run 39056191404, check run 117464603970) showed that GitHub sets every check-run annotation title to <path>#L<line> when it is posted without one. limit-stop.mjs keeps only annotations with no title, so the fallback has never matched an annotation report-check-run posted, and no limit stop waits on it. Removing the fallback and the annotation now changes no behavior.
The same proof confirmed the summary path end to end:
The real report-lane-outcome and report-check-run posted lane=pr-unblock activity=resolve-conflicts class=rate-limit resets=… turns=1 max-turns=30.
The real dispatchConflicting skipped the PR before completed_at + 1h (also at 1h−1s) and dispatched exactly once at 1h+1s.
Activity
github-actions commentedon Oct 17, 2026
Understood: this is a scheduled follow-up to #7774 — remove the lane-record annotation fallback from
report-check-runandlimit-stop.mjs(and the annotation-reading paths indispatch.mjs/feedback-dispatch.mjs), once no pre-#7774 limit stop can still be waiting to restart (on or after 2026-10-25, per the 7-day reset clamp). The done-list (deletelaneRecordAnnotationand its tests, droplistAnnotations, keep theapp_id/check_namefilters, updatepr-run-activity.md) is specific enough to act on directly once that date passes. No duplicates found; #7772 and #7765 are the already-closed predecessors this refers to. Nothing further needed from the reporter — this looks ready to pick up after the date gate.Automated triage. A maintainer reviews it.
kyle-sexton commentedon Oct 17, 2026
The wait is unnecessary. The live proof in pr-pipeline-sandbox (2026-10-17, run 39056191404, check run 117464603970) showed that GitHub sets every check-run annotation title to
<path>#L<line>when it is posted without one.limit-stop.mjskeeps only annotations with no title, so the fallback has never matched an annotationreport-check-runposted, and no limit stop waits on it. Removing the fallback and the annotation now changes no behavior.The same proof confirmed the summary path end to end:
report-lane-outcomeandreport-check-runpostedlane=pr-unblock activity=resolve-conflicts class=rate-limit resets=… turns=1 max-turns=30.dispatchConflictingskipped the PR beforecompleted_at + 1h(also at 1h−1s) and dispatched exactly once at 1h+1s.