Skip to content

dev-lead retry sweep posts blank-looking PR comments: dispatch guards and retry markers are marker-only bodies that stay on the PR #2200

Open

Description

@don-petry

Problem

scripts/dev-lead-retry.sh records its state as PR comments whose whole body is an HTML comment. GitHub renders those as empty comment boxes. A stalled PR collects one per retry attempt and per dispatch, so maintainers see a stream of "empty comments" from dev-lead.

Evidence

Comment Body built at Posted at Lifecycle
Dispatch guard: <!-- dev-lead-dispatch-guard sha=… at=… --> post_dispatch_guard, dev-lead-retry.sh:312-319 :595, :706, :727 Never deleted
Bot-comment retry marker: <!-- dev-lead-bot-comment-retry id=… version=… attempt=… at=… --> bcr_retry_marker, scripts/lib/bot-comment-retry.sh:292-295 :943 Withdrawn only when the dispatch is skipped or fails; stays forever after a successful dispatch
Bot-thread retry marker: <!-- dev-lead-bot-thread-retry threads=… attempt=… at=… --> btr_retry_marker, scripts/lib/bot-thread-retry.sh:217-219 :1174 Same as the bot-comment marker

Acceptance criteria

  1. No dev-lead comment renders blank. Each of the three bodies gets one short visible line after the marker, for example _dev-lead: retry dispatched for review thread(s) (attempt 2/3)._. Readers that match these markers keep working, since they match the marker, not the whole body; verify each reader, including the maintainer-comment gate, which must still treat them as automation.
  2. Spent markers stop piling up. Either minimize them (OUTDATED) once the attempt they guard has finished or expired, or move this dedup state off the PR timeline (for example to a single edited status comment per PR).
  3. Tests. A bats case asserts every body posted by dev-lead-retry.sh has non-marker visible text.

Related

Filed from a Claude Code session auditing dev-lead gaps, 2026-10-10.

Activity

  1. github-actions commented on Oct 10, 2026

    @github-actions
    Contributor

    Thanks for the detailed report and the line-level evidence, which makes this easy to follow. The acceptance criteria are clear, so I have one question about the second one. Should spent markers be minimized (OUTDATED) once their attempt finishes or expires, or should the dedup state move into a single edited status comment per PR? The first option is a smaller change. The second removes the timeline noise entirely but means reworking how the readers find that state.

  2. don-petry commented on Oct 10, 2026

    @don-petry
    CollaboratorAuthor

    Two more examples, both from the bot-comment retry marker, on PR #2205 within 10 minutes of each other:

    Comment Posted (UTC) Entire body
    6100358832 2026-10-10 17:40 <!-- dev-lead-bot-comment-retry id=IC_kwDOR9SdIs8AAAABa5W5ig version=2026-10-10T17:15:41Z attempt=1 at=2026-10-10T17:40:11Z -->
    6100449286 2026-10-10 17:50 <!-- dev-lead-bot-comment-retry id=IC_kwDOR9SdIs8AAAABa5YW1Q version=2026-10-10T16:58:23Z attempt=1 at=2026-10-10T17:50:37Z -->

    Both were posted by donpetry-bot and render as empty comment boxes on the PR.

    The first is retrying CodeRabbit's "Review limit reached" comment. That notice is edited in place every few minutes while the rate limit counts down, and each edit gets a new version. If nothing filters these out, a rate-limited PR can collect a fresh blank retry marker every time CodeRabbit updates its countdown.


    Generated by Claude Code

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugBug reports

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions