potiuk opened a new pull request, #115:
URL: https://github.com/apache/airflow-steward/pull/115
## Summary
Three related improvements to the "respect active conversations" logic in
`classify-and-act.md`, all prompted by misclassifications hit during a triage
sweep on `apache/airflow`:
1. **F5a (author cooldown) should consider review-thread comments**, not
just general issue comments. A maintainer asking a clarifying question in a
review thread is just as much an active conversation as a top-level comment,
but the existing definition only looked at `comments(last:10)`. PRs where a
maintainer was actively replying in-thread (within the 72h cooldown, after the
author's last commit) were classified as `ping` / `mark-ready-with-ping` and
would have produced auto-comments that talked over the live conversation.
2. **F5b (maintainer-to-maintainer ping)** has the same gap and the same fix.
3. **Row 18 `follow_up_ping` should also be true when the author pushed
within the last 24h.** The push itself is the follow-up — the author is still
actively working through the reviewer's feedback. Pinging immediately reads as
the bot rushing them. 24h is the shortest gap that lets the author finish a
fixup-and-push cycle without an interruption.
## Empirical evidence
During a triage sweep on `apache/airflow` today, four PRs needed manual
override skips because the classifier didn't see the in-thread maintainer
activity:
- **#65943** (@diogosilva30): @jscheffl (MEMBER) had posted a follow-up
review-thread comment (~64h ago) — classifier picked `mark-ready-with-ping`.
Manual skip required.
- **#66469** (@Suraj-kumar00): the maintainer running the skill (@potiuk)
had reviewed with 8 threads ~17h ago. Classifier picked `ping`. Manual skip
required (auto-pinging from your own account on your own freshly-left review is
awkward).
- **#66658** (@SameerMesiah97): same shape — @potiuk's threads ~14h ago.
Manual skip required.
- **#64943** (@Prab-27): @bugraoz93 + author had a back-and-forth ~21h ago,
author pushed 9h ago. Classifier picked `ping` because `follow_up_ping` only
checked for *comments* after the push, not the push itself. Manual skip
required.
One PR also needed override on the row-18 fresh-push side:
- **#65469** (@Pyasma): author pushed 0d ago, no follow-up comment yet.
Classifier suggested `ping`. The author was clearly mid-cycle — pushing the
fix, follow-up comment likely incoming. (We posted the ping anyway in this case
but it was borderline.)
## Changes
`classify-and-act.md`:
- **F5a / F5b**: spell out that the "most recent comment" union includes
both `comments(last:10)` and `reviewThreads.nodes.comments`. F5b's "have they
replied?" check also extends to review-thread comments.
- **`follow_up_ping`**: add a third resolving signal — author's most recent
commit < 24h old. The push is the follow-up.
- **Required GraphQL fields** table: bump F5a/F5b/F6 row and Row 18 row to
mention `reviewThreads.nodes.comments(first:5).nodes.{...}`. Already populated
by the existing batch query (used for unresolved-thread classification), so no
new query needed — only the documentation contract needs updating.
## Test plan
- [x] Re-walked the 4+1 misclassified PRs above with the updated logic. All
5 now classify correctly (4 → skip via F5a, 1 → skip via follow_up_ping
fresh-push branch).
- [x] No other classifications change (verified across the 12-page session
sample).
- [x] `prek run --files` passes (markdownlint, skill-validate, typos, etc.).
- [x] No new GraphQL fields required — `reviewThreads.nodes.comments` is
already fetched by the per-page batch query for unresolved-thread
classification.
---
##### Was generative AI tooling used to co-author this PR?
- [X] Yes — Claude Code (Opus 4.7)
Generated-by: Claude Code (Opus 4.7) following [the
guidelines](https://github.com/apache/airflow/blob/main/contributing-docs/05_pull_requests.rst#gen-ai-assisted-contributions)
--
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
To unsubscribe, e-mail: [email protected]
For queries about this service, please contact Infrastructure at:
[email protected]