Skip to content

Fix Runtime Failure Observer GitHub deduplication - #1728

Merged
davidnguyen-tech merged 7 commits into
dotnet:mainfrom
vitek-karas:fix-runtime-observer-github-search
Sep 16, 2026
Merged

davidnguyen-tech merged 7 commits into
dotnet:mainfrom
vitek-karas:fix-runtime-observer-github-search

Conversation

@vitek-karas

@vitek-karas vitek-karas commented Sep 14, 2026

Copy link
Copy Markdown
Member

Summary

  • Route Step 4 deduplication through the configured GitHub MCP issue and pull-request search tools.
  • Remove the unsupported search toolset and the shell gh fallback.
  • Require title-filtered MCP queries and regenerate the checked-in lock workflow.

Problem

Runtime Failure Observer run 34794411696 failed at the Fail incomplete observer scan post-step after the agent reported missing_tool.

The underlying runtime build (1594486) contained four MacCatalyst XHarness TIMED_OUT failures. Their logs already included the configured 10,800-second timeout and the existing --timeout guidance, so there was no missing XHarness diagnostic to implement.

The observer action declares a GitHub MCP server with issue and pull-request read tools. In the failing run, the server started and registered the search tools, but the agent did not invoke them and instead treated deduplication as unavailable. The invalid search toolset also produced a startup warning. Because incomplete scans are intentionally failed, this turned an otherwise complete scan into a failed workflow without creating a PR.

Fix

Step 4 now treats the declared GitHub MCP read tools as the action's GitHub read path and explicitly requires search_issues and search_pull_requests with a repository and [runtime-observer] title filter. The unscoped shell fallback has been removed, so it can no longer suppress a candidate based on unrelated issues or pull requests. If a required MCP search genuinely cannot be used, the observer reports missing_tool and stops rather than guessing.

This keeps the existing incomplete-scan guard for genuinely unavailable evidence while avoiding both the observed false incomplete result and the fallback's unrelated-match risk.

AW fixer incident links

aw-fixer fingerprint
{
  "aw_fixer": {
    "schema": 1,
    "kind": "fix-pr",
    "occurrence_keys": ["issue:5444008215", "run:34794411696", "issue-comment:5657624948"],
    "incident_fingerprint": "d482db69d43cf993cacd",
    "source_runs": ["https://github.com/dotnet/xharness/actions/runs/34794411696"],
    "source_issues": ["https://github.com/dotnet/xharness/issues/1724", "https://github.com/dotnet/xharness/issues/1697", "https://github.com/dotnet/xharness/issues/1697#issuecomment-5657624948"]
  }
}

Use the registered GitHub MCP issue and pull-request search tools for observer deduplication, and remove the unsupported search toolset configuration. This prevents valid scans from being marked incomplete before duplicate checks run.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 28be38e0-781b-41aa-a258-04f8ed8b4f0d
Resolve the observer workflow lock-file conflict while retaining the GitHub MCP deduplication fix.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 28be38e0-781b-41aa-a258-04f8ed8b4f0d

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

The fallback deduplication searches can match unrelated pull requests because they omit the required title filter.

Get a fresh assessment by requesting another Copilot review.

Pull request overview

This pull request updates Runtime Failure Observer GitHub deduplication to use supported MCP search tools and regenerates the locked workflow configuration.

Changes:

  • Routes issue and pull-request deduplication through GitHub MCP searches.
  • Removes the unsupported search toolset.
  • Retains shell fallback searches and regenerates lock metadata.
File summaries
File Summary
.github/workflows/runtime-failure-observer.agent.md Updated MCP configuration and deduplication guidance. The fallback searches still need the required runtime-observer title filter.
.github/workflows/runtime-failure-observer.agent.lock.yml Regenerated workflow lock configuration and MCP settings.
Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

Comment thread .github/workflows/runtime-failure-observer.agent.md Outdated
The action declares the GitHub MCP read tools as part of its environment, so do not fall back to an unscoped shell search. Require title-filtered MCP queries and fail explicitly when the declared capability is unavailable.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 28be38e0-781b-41aa-a258-04f8ed8b4f0d

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Deduplication searches may miss matching PRs and fail to reliably constrain issue results.

Get a fresh assessment by requesting another Copilot review.

Review details

Suppressed comments (1)

.github/workflows/runtime-failure-observer.agent.md:274

  • The configured search_issues MCP tool is documented as natural-language search with explicit owner/repo parameters, not as GitHub qualifier syntax. Embedding repo:dotnet/xharness in:title in this shared query therefore does not reliably enforce repository/title scope for issue searches, so unrelated results can be returned despite this PR's deduplication requirement. Pass the repository parameters separately and verify every result's repository and title (or use a title-aware search API) before applying the result.
Use the configured GitHub MCP read tools `search_issues` and
`search_pull_requests`; these tools are part of the action environment and are
the only permitted GitHub read path. Search with
`repo:dotnet/xharness in:title "[runtime-observer]" $sig_short` and confirm
each result before applying deduplication. If either required MCP search cannot
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

Comment thread .github/workflows/runtime-failure-observer.agent.md Outdated
Scope GitHub MCP searches explicitly, process complete result sets, verify candidate signatures, and require every generated observer PR to carry its exact signature marker.

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

Copilot-Session: 28be38e0-781b-41aa-a258-04f8ed8b4f0d

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🟡 Changes recommended

Add explicit title qualifiers to both MCP searches.

Get a fresh assessment by requesting another Copilot review.

Review details
  • Files reviewed: 2/2 changed files
  • Comments generated: 1
  • Review effort level: Lite

Comment thread .github/workflows/runtime-failure-observer.agent.md Outdated
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>

@davidnguyen-tech davidnguyen-tech left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

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

Thanks! :)

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@davidnguyen-tech
davidnguyen-tech merged commit 22d4210 into dotnet:main Sep 16, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants