Skip to content

fix(seer): Don't run/score Smart Assignment against automatic assignments - #121368

Merged
hobzcalvin merged 5 commits into
masterfrom
sa-scoring-human
Aug 5, 2026
Merged

fix(seer): Don't run/score Smart Assignment against automatic assignments#121368
hobzcalvin merged 5 commits into
masterfrom
sa-scoring-human

Conversation

@hobzcalvin

Copy link
Copy Markdown
Contributor

This fixes the biggest current hole in our scoring strategy: we were running Smart Assignment and scoring against "ground truths" that came from automated assignments that the Smart Assignment agent can read:

  • ownership rules
  • CODEOWNERS file
  • suspect commit feature

For example, an ownership rule would trigger auto-assignment of an issue to a user/team. This would trigger a Smart Assignment run, assuming that assignment as ground truth. The SA agent would look at the ownership rule and suggest the user (or user from the team), then we would check if the suggestion matched the assignment -> we got it correct! This isn't a fair test.

So we collect the set of ActivityIntegrations that indicate automated assignment, and a) don't run Smart Assignment on these assignments, and b) don't consider these assignments as sources of ground truth during scoring.

@hobzcalvin
hobzcalvin requested a review from a team as a code owner August 5, 2026 20:59
@github-actions github-actions Bot added the Scope: Backend Automatically applied to PRs that change backend components label Aug 5, 2026

@saponifi3d saponifi3d left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, i really like how you separated out all the concerns here!

@hobzcalvin
hobzcalvin merged commit 828fd4e into master Aug 5, 2026
61 checks passed
@hobzcalvin
hobzcalvin deleted the sa-scoring-human branch August 5, 2026 22:17
hobzcalvin added a commit that referenced this pull request Aug 5, 2026
…t ASSIGNED (#121375)

We were only pulling issue assignee data if the activity that triggered
Smart Assignment was `ActivityType.ASSIGNED`. But really, we can/should
pull the issue's current assignee, if any, regardless of why SA is
running. (For example, if it's running because of `SEER_RCA_STARTED`,
that doesn't mean we shouldn't record the issue's existing assignee from
long ago as the ground truth.)

Here, we just pull the current assignee if we have one. (Note that
#121368 which we're stacked upon ensures that only human-involved
assignees are recorded, not automated ones.) We continue falling back on
a resolving human if this is a `RESOLUTION_ACTIVITIES` type, since that
implies assignee in the absence of one.

Other tweak is to skip scoring / updating the `SeerAgentRun` if
nothing's actually changing: now that many activities may generate a
truthy return for `_ground_truth_updates()`, we should actually confirm
there's new information before running the rest of the scoring/update
flow.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Scope: Backend Automatically applied to PRs that change backend components

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants