Skip to content

Unify build-failure analysis comments and fix warning guidance - #10458

Merged
Evangelink merged 4 commits into
microsoft:mainfrom
YuliiaKovalova:propagate-review-fixes
Aug 5, 2026
Merged

Unify build-failure analysis comments and fix warning guidance#10458
Evangelink merged 4 commits into
microsoft:mainfrom
YuliiaKovalova:propagate-review-fixes

Conversation

@YuliiaKovalova

@YuliiaKovalova YuliiaKovalova commented Aug 5, 2026

Copy link
Copy Markdown
Contributor

What changed

  • Build-failure analyses from the automatic and command workflows now supersede older comments produced by either workflow.
  • The analyst guidance no longer passes the unsupported top argument to binlog_warnings; it documents the supported code and project filters instead.
  • Command outputs continue to target the verified GH_AW_PR_NUMBER explicitly. The reviewed target: "triggering" change was removed because the pinned gh-aw runtime honors explicit summary destinations before target resolution and does not reconstruct centralized command context for inline review comments.

Verification

  • Compiled both build-failure workflows in strict mode with the repository-pinned gh-aw v0.84.3 toolchain.
  • Action pin audit passed: 2177 references across 47 files.

…iding

Propagates the review round from dotnet/sdk#55539 to testfx, applying only the
items that actually apply here (this repo already digest-pins the binlog-mcp
container via gh-aw v0.84.3, and the centralized router already enforces the
slash-command position before dispatching).

- `/analyze-build-failure` now posts with `target: "triggering"` instead of
  `"*"`, for both `add-comment` and `create-pull-request-review-comment`, so a
  prompt-injected agent cannot redirect its output to an arbitrary issue or PR.
  This works despite `strategy: centralized` making the workflow arrive as a
  `workflow_dispatch`: gh-aw's `resolveInvocationContext` reads the router's
  `aw_context`, restores `event_type: issue_comment` and rebuilds
  `payload.pull_request` / `payload.issue` from `item_type` / `item_number`, so
  `resolveTarget` resolves the triggering PR (verified by reading
  invocation_context_helpers.cjs, safe_output_helpers.cjs and aw_context.cjs at
  the exact SHA this repo pins, github/gh-aw-actions@c863074).
  The automatic workflow keeps `"*"`: it is triggered by `check_run`, which is
  not an issue/PR context, and its PR number comes from the ADO build.

- `hide-older-comments` now uses the object form with
  `match: [build-failure-analysis, build-failure-analysis-command]`. Hiding is
  scoped to the posting workflow's id, so previously each workflow only hid its
  own comments and a `/analyze-build-failure` re-run left the stale automatic
  analysis visible beside the fresh one.

- Dropped the non-existent `top: 10` argument from the `binlog_warnings` example
  in the analyst agent. The tool accepts only `binlog_file` plus the optional
  `code` and `project` filters (verified against Microsoft.AITools.BinlogMcp
  2.0.1 over stdio: passing `top` changes nothing, it is silently ignored).

Compiled with gh-aw v0.84.3: 32/32 succeeded, 0 warnings. `fetch-binlog` is
still byte-identical across both locks (414 lines), `bash -n` is clean on all 94
generated run blocks, concurrency groups stay distinct, `retention-days` stays
`"1"`, and `check_action_pins.py` passes (2177 refs / 47 files).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: e5db9021-5257-4cf5-83ba-486a3e398391
Copilot AI balanced review requested due to automatic review settings August 5, 2026 15:38

Copilot AI 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.

Pull request overview

Scopes command-triggered build analysis comments to the originating PR and improves cross-workflow comment supersession.

Changes:

  • Pins command workflow comments to the triggering PR.
  • Hides superseded analyses from either workflow.
  • Corrects binlog_warnings usage guidance.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated 1 comment.

Show a summary per file
File Description
.github/workflows/build-failure-analysis.md Adds cross-workflow comment supersession.
.github/workflows/build-failure-analysis.lock.yml Regenerates automatic workflow configuration.
.github/workflows/build-failure-analysis-command.md Restricts comment targets and adds supersession matching.
.github/workflows/build-failure-analysis-command.lock.yml Regenerates command workflow configuration.
.github/agents/build-failure-analyst.agent.md Removes the unsupported warning count argument.

Comment thread .github/workflows/build-failure-analysis-command.md Outdated
@Evangelink
Evangelink enabled auto-merge (squash) August 5, 2026 18:47
@Evangelink Evangelink added the state/needs-review Awaiting review from the team. label Aug 5, 2026
Keep both command safe outputs on the verified GH_AW_PR_NUMBER path because the pinned gh-aw runtime does not enforce triggering targets consistently.

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

Copilot-Session: 880db896-e2cb-47dd-86e8-146b5f865084
Copilot AI review requested due to automatic review settings August 5, 2026 18:55
@Evangelink Evangelink changed the title Scope the build-failure command's comments to the triggering PR Unify build-failure analysis comments and fix warning guidance Aug 5, 2026

Copilot AI 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.

Review details

Suppressed comments (13)

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hans.xlf:862

  • This overwrites the existing Simplified Chinese target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.tr.xlf:862

  • This overwrites the existing Turkish target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.zh-Hant.xlf:862

  • This overwrites the existing Traditional Chinese target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ru.xlf:862

  • This overwrites the existing Russian target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pt-BR.xlf:862

  • This overwrites the existing Brazilian Portuguese target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.pl.xlf:862

  • This overwrites the existing Polish target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ko.xlf:862

  • This overwrites the existing Korean target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.ja.xlf:863

  • This overwrites the existing Japanese target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.it.xlf:862

  • This overwrites the existing Italian target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.fr.xlf:862

  • This overwrites the existing French target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.es.xlf:862

  • This overwrites the existing Spanish target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.de.xlf:862

  • This overwrites the existing German target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>

src/Platform/Microsoft.Testing.Platform/Resources/xlf/PlatformResources.cs.xlf:862

  • This overwrites the existing Czech target with English and marks it as new, so localized --help output regresses to English even though the source resource did not change. Restore the existing target; XLF updates should come from the localization pipeline.
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For the full list, see https://github.com/microsoft/testfx/blob/main/docs/glossary.md#exit-codes.</target>
  • Files reviewed: 18/18 changed files
  • Comments generated: 0 new
  • Review effort level: Balanced

@Evangelink
Evangelink merged commit 1bb3d27 into microsoft:main Aug 5, 2026
19 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

state/needs-review Awaiting review from the team.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants