Fix Runtime Failure Observer GitHub deduplication - #1728
Merged
davidnguyen-tech merged 7 commits intoSep 16, 2026
Merged
davidnguyen-tech merged 7 commits into
davidnguyen-tech merged 7 commits into
Conversation
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
There was a problem hiding this comment.
🟡 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
searchtoolset. - 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.
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
There was a problem hiding this comment.
🟡 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_issuesMCP tool is documented as natural-language search with explicitowner/repoparameters, not as GitHub qualifier syntax. Embeddingrepo:dotnet/xharness in:titlein 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
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
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
This was referenced Sep 15, 2026
davidnguyen-tech
approved these changes
Sep 16, 2026
This was referenced Sep 16, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
searchtoolset and the shellghfallback.Problem
Runtime Failure Observer run 34794411696 failed at the
Fail incomplete observer scanpost-step after the agent reportedmissing_tool.The underlying runtime build (1594486) contained four MacCatalyst XHarness
TIMED_OUTfailures. Their logs already included the configured 10,800-second timeout and the existing--timeoutguidance, 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
searchtoolset 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_issuesandsearch_pull_requestswith 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 reportsmissing_tooland 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"] } }