Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Stop upstream writes on a run's threads once its PR is closed or superseded #87

Description

@wolfgang-aura

Impact

After a run's pull request is closed in favour of a competing pull request, Mailman still drafts upstream comments for that issue's threads. On python/mypy#21960 this produced a review-style comment on the competing PR (#21967) minutes after #21961 was closed, and its author asked for the agent-driven activity to stop. That is reputational damage on a target we care about, and a second occurrence would be worse than the first.

Evidence

  • Run 20260908T220821Z-124828, Reject Self in PEP 695 type parameter bounds python/mypy#21961, closed 2026-09-10T20:31Z as superseded by #21967.
  • .mailman/drafts/mypy-21967-review.md was drafted and posted on #21967 at 20:31Z the same minute: probe cases, a test-coverage suggestion, a wording nit and a cross-link to #21961.
  • The author's reply on #21967, 2026-09-11T08:46Z: the cross-linking and AI-generated follow-ups make the thread harder to follow, and mypy discourages LLM contributions from new contributors.
  • Nothing in mailman handoff, handoff-check or provenance --superseded-by refuses or warns about a draft aimed at the issue, the closed PR or the superseding PR.

Environment

Mailman 819e00c on main, Windows 11, gh 2.x. Provenance for the run now records superseded_by 21967 (set by hand on 2026-09-11).

Next action

When a run is recorded closed or superseded, treat the issue, our PR and the superseding PR as write-closed for that run:

  1. mailman handoff and handoff-check exit non-zero for any draft whose target is one of those three threads, with the reason printed.
  2. provenance --superseded-by prints the same rule once, so the operator sees it at the moment the case is closed.
  3. Allow one explicit override flag for the single closing courtesy reply, and nothing else.

Land with a test that a superseded run's handoff for the superseding PR is refused.

Activity

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

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions