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
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.
.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:
mailman handoff and handoff-check exit non-zero for any draft whose target is one of those three threads, with the reason printed.
provenance --superseded-by prints the same rule once, so the operator sees it at the moment the case is closed.
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.
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
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.mdwas 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.mailman handoff,handoff-checkorprovenance --superseded-byrefuses or warns about a draft aimed at the issue, the closed PR or the superseding PR.Environment
Mailman
819e00conmain, Windows 11,gh2.x. Provenance for the run now recordssuperseded_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:
mailman handoffandhandoff-checkexit non-zero for any draft whose target is one of those three threads, with the reason printed.provenance --superseded-byprints the same rule once, so the operator sees it at the moment the case is closed.Land with a test that a superseded run's handoff for the superseding PR is refused.