Skip to content

source-control:babysit-prs: needs_worker's new_human_blocking_feedback fires on the worker's own self-authored replies (same-login false positive) #473

Description

@kyle-sexton

Lane

babysit (safe tier, /loop 15m /source-control:babysit-prs)

Triggering example

#377, cycle 3 of this session: dispatched solely because needs_worker_reasons: new_human_blocking_feedback (3 new human-authored items), with head_sha_changed false and zero new bot findings. The worker fetched all comments and found: every non-bot comment since the last snapshot was posted by kyle-sexton — which is BOTH the PR author's login AND the babysit session's own gh auth identity (gh api user --jq .loginkyle-sexton). All of them were the prior round's own classification-table replies and "Fixed in <sha>" follow-ups (the exact review-discipline §1 self-reply pattern), not genuine reviewer feedback. The worker did zero work, correctly, after re-deriving this from scratch.

Observed vs expected

  • Observed: pr_queue_snapshot.py's new_human_blocking_feedback arm (per reference/orchestration.md) counts any new comment from a non-bot login as human feedback, with no exclusion for the same login the babysit engine itself posts under. Because the safe-tier worker's own classification replies and fix-SHA follow-ups are posted under the PR author's own GitHub identity (the common case for a solo maintainer babysitting their own PRs), every worker round that posts a reply automatically manufactures a new_human_blocking_feedback delta for the next round — a self-inflicted, unsuppressible dispatch reason (per orchestration.md, new_human_blocking_feedback is explicitly unsuppressible) that will re-fire forever on any PR the worker has ever replied to, even with zero real reviewer activity.
  • Expected: the engine's human-feedback delta computation should apply the same self-reply exclusion that review-discipline.md §1 already mandates for the worker's own classification (filter comments authored by the configured self-login(s) / babysit_self_logins from counting as new human-authored feedback), so a worker's own prior-round replies never manufacture next-round dispatch. This is a deterministic, engine-level fix (comparable to the bot self-filtering already done for new_blocking_feedback), not something each dispatched worker should have to re-derive by reading every comment's author every cycle.

Category

bug

Impact

Confirmed to recur: this is the second consecutive cycle where PR #377 was dispatched a worker purely because of its own prior-round replies, with zero real work available both times. On a solo-maintainer babysit loop (the common default_tier: safe case, author == babysit identity), this silently inflates worker-dispatch counts every cycle a PR has ever received a reply — burning a full Opus worker round each time to re-derive "these are my own replies, nothing to do."

Metadata

Metadata

Assignees

No one assigned

    Labels

    priority: highSignificant impact, or blocks an imminent release; staff this cycle.status: readyTriaged, unblocked, and fully specified; eligible to pick up.

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions