Skip to content

[main] Update dependencies from dotnet/xharness#35488

Open
dotnet-maestro[bot] wants to merge 2 commits into
mainfrom
darc-main-6a1e8005-f556-4791-bfe8-44f81eccde28
Open

[main] Update dependencies from dotnet/xharness#35488
dotnet-maestro[bot] wants to merge 2 commits into
mainfrom
darc-main-6a1e8005-f556-4791-bfe8-44f81eccde28

Conversation

@dotnet-maestro
Copy link
Copy Markdown
Contributor

@dotnet-maestro dotnet-maestro Bot commented May 18, 2026

This pull request updates the following dependencies

From https://github.com/dotnet/xharness

…60514.1

On relative base path root
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 11.0.0-prerelease.26230.4 -> To Version 11.0.0-prerelease.26264.1
@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented May 18, 2026

🚀 Dogfood this PR with:

⚠️ WARNING: Do not do this without first carefully reviewing the code of this PR to satisfy yourself it is safe.

curl -fsSL https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.sh | bash -s -- 35488

Or

  • Run remotely in PowerShell:
iex "& { $(irm https://raw.githubusercontent.com/dotnet/maui/main/eng/scripts/get-maui-pr.ps1) } 35488"

@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented May 24, 2026

/review -b feature/refactor-copilot-yml

@MauiBot MauiBot added s/agent-review-incomplete s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review) labels May 24, 2026
kubaflo
kubaflo previously approved these changes May 25, 2026
@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented May 28, 2026

/review -b feature/refactor-copilot-yml

@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented May 30, 2026

/review -b feature/refactor-copilot-yml -p ios

@MauiBot

This comment has been minimized.

…60529.1

On relative base path root
Microsoft.DotNet.XHarness.CLI , Microsoft.DotNet.XHarness.TestRunners.Common , Microsoft.DotNet.XHarness.TestRunners.Xunit From Version 11.0.0-prerelease.26230.4 -> To Version 11.0.0-prerelease.26279.1
@kubaflo
Copy link
Copy Markdown
Contributor

kubaflo commented Jun 1, 2026

/review -b feature/enhanced-reviewer

Copy link
Copy Markdown
Collaborator

@MauiBot MauiBot left a comment

Choose a reason for hiding this comment

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

AI Review Summary

@dotnet-maestro[bot] — new AI review results are available based on this last commit: 63b73b2.
Update dependencies from https://github.com/dotnet/xharness build 20260529.1 To request a deterministic rerun after new comments or commits, comment /review rerun.

Gate Skipped Code Review In Review Confidence Medium Platform Android Device

Review Sessions — click to expand
Gate — Test Before & After Fix

Gate Result: ⚠️ SKIPPED

No tests were detected in this PR.

Recommendation: Add tests to verify the fix using the write-tests-agent.


Pre-Flight — Context & Validation

Issue: N/A - Automated dependency update from dotnet/xharness
PR: #35488 - [main] Update dependencies from dotnet/xharness
Platforms Affected: Android device-test infrastructure (also any XHarness-based device-test platform)
Files Changed: 3 implementation/configuration, 0 test

Key Findings

  • PR updates Microsoft.DotNet.XHarness.CLI, Microsoft.DotNet.XHarness.TestRunners.Common, and Microsoft.DotNet.XHarness.TestRunners.Xunit from 11.0.0-prerelease.26230.4 to 11.0.0-prerelease.26279.1.
  • Version metadata is consistent across .config/dotnet-tools.json, eng/Version.Details.xml, and eng/Versions.props.
  • Gate result was already skipped because no tests were detected in this PR; no gate verification was re-run.
  • No UI test categories are directly affected by source changes; impact is device-test tooling, with Android requested as the test platform.

Code Review Summary

Verdict: LGTM
Confidence: medium
Errors: 0 | Warnings: 0 | Suggestions: 0

Key code review findings:

  • No correctness issues found in the dependency metadata changes.
  • External XHarness behavior can affect Android device-test execution/result parsing, so confidence depends on CI/device-test evidence rather than repository-local code review.

Fix Candidates

# Source Approach Test Result Files Changed Notes
PR PR #35488 Flow all three XHarness packages and the CLI tool manifest to 11.0.0-prerelease.26279.1 / SHA 2cee83bf4841d72c9734a343f3003aeabdd46edf. ⚠️ SKIPPED (Gate: no tests detected) .config/dotnet-tools.json, eng/Version.Details.xml, eng/Versions.props Original automated dependency flow.

Code Review — Deep Analysis

Code Review — PR #35488

Independent Assessment

What this changes: Updates the XHarness dependency version consistently across .config/dotnet-tools.json, eng/Version.Details.xml, and eng/Versions.props from 11.0.0-prerelease.26230.4 / xharness SHA 92962e5c46ac08a66ded4c5696209cc60f1a232f to 11.0.0-prerelease.26279.1 / SHA 2cee83bf4841d72c9734a343f3003aeabdd46edf.
Inferred motivation: Standard Maestro dependency flow from dotnet/xharness to consume a newer XHarness build for CLI and test runner packages.

Reconciliation with PR Narrative

Author claims: The PR is an automated dependency update from dotnet/xharness build 20260529.1, moving Microsoft.DotNet.XHarness.CLI, Microsoft.DotNet.XHarness.TestRunners.Common, and Microsoft.DotNet.XHarness.TestRunners.Xunit from 11.0.0-prerelease.26230.4 to 11.0.0-prerelease.26279.1.
Agreement/disagreement: The diff matches the dependency-flow claim exactly: all three package versions and their source SHA references were updated consistently, with the dotnet tool manifest updated for the CLI package.

Findings

No correctness issues found in the dependency metadata changes.

Devil's Advocate

The main risk is not visible in MAUI source code: XHarness changes can affect Android/iOS/MacCatalyst device-test invocation, result parsing, or Helix behavior. Because this PR contains no regression tests and the gate was skipped, validation depends on CI/device-test coverage rather than local unit tests. The metadata itself is internally consistent.

Verdict: LGTM

Confidence: medium
Summary: The dependency update is mechanically consistent and limited to XHarness version/SHA metadata. Confidence is medium because behavioral impact is external to this repository and no PR-specific tests were detected.


Fix — Analysis & Comparison

Fix Candidates

# Source Approach Test Result Files Changed Notes
1 try-fix Update only Microsoft.DotNet.XHarness.TestRunners.Common and Microsoft.DotNet.XHarness.TestRunners.Xunit; keep Microsoft.DotNet.XHarness.CLI on 11.0.0-prerelease.26230.4. ✅ PASS local restore 3 files Not selected: creates split XHarness version/SHA state between CLI and test runners, which is riskier for Android device-test orchestration than the PR.
2 try-fix Hold back the entire XHarness dependency flow at 11.0.0-prerelease.26230.4. ✅ PASS local restore + consistency check 3 files Not selected: internally consistent, but it does not implement the dependency update objective.
3 try-fix Update only Microsoft.DotNet.XHarness.CLI; keep test-runner packages on 11.0.0-prerelease.26230.4. ✅ PASS local restore + CLI smoke 2 files Not selected: creates split CLI/test-runner versions and is not demonstrably safer for Android device tests.
PR PR #35488 Coherently update CLI and both test-runner packages to 11.0.0-prerelease.26279.1 / SHA 2cee83bf4841d72c9734a343f3003aeabdd46edf. ⚠️ SKIPPED (Gate: no tests detected) 3 files Original PR; remains the best dependency-flow-consistent option.

Iterative Learning

  • Candidate 1 showed that local dotnet tool restore can pass even when dependency metadata is split across old/new XHarness builds; restore alone is insufficient to prove a better fix.
  • Candidate 2 showed that reverting/holding back the flow is mechanically safe but fails the PR objective of consuming the newer dotnet/xharness build.
  • Candidate 3 showed that updating only the CLI preserves the visible Android xharness command surface, but still leaves a mixed CLI/test-runner state that could create harder-to-debug device-test behavior.
  • No candidate passed validation while also being demonstrably better than the PR's coherent dependency flow.

Cross-Pollination

Model Round New Ideas? Details
maui-expert-reviewer 2 No The remaining alternatives are trivial variations of partial update, full holdback, or coherent full update. For Maestro dependency flow, coherent full update is preferable unless CI identifies an XHarness regression.

Exhausted: Yes
Selected Fix: PR's fix — it is the only explored approach that preserves dependency-flow consistency across .config/dotnet-tools.json, eng/Version.Details.xml, and eng/Versions.props while actually consuming the new XHarness build.


Candidate try-fix-1

Approach: Limit the dependency change to the XHarness test-runner packages used by device tests, while keeping the XHarness CLI tool manifest and CLI version property on the previous known-good version to reduce CLI blast radius for Android test orchestration.

Diff:

diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index e8ebcf35ee..a06771ae32 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -24,7 +24,7 @@
       "rollForward": false
     },
     "microsoft.dotnet.xharness.cli": {
-      "version": "11.0.0-prerelease.26279.1",
+      "version": "11.0.0-prerelease.26230.4",
       "commands": [
         "xharness"
       ],
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index e1f24daf5b..503a96fdf2 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -174,9 +174,9 @@
       <Uri>https://github.com/dotnet/xharness</Uri>
       <Sha>2cee83bf4841d72c9734a343f3003aeabdd46edf</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.XHarness.CLI" Version="11.0.0-prerelease.26279.1">
+    <Dependency Name="Microsoft.DotNet.XHarness.CLI" Version="11.0.0-prerelease.26230.4">
       <Uri>https://github.com/dotnet/xharness</Uri>
-      <Sha>2cee83bf4841d72c9734a343f3003aeabdd46edf</Sha>
+      <Sha>92962e5c46ac08a66ded4c5696209cc60f1a232f</Sha>
     </Dependency>
   </ProductDependencies>
   <ToolsetDependencies>
diff --git a/eng/Versions.props b/eng/Versions.props
index 2ba02d13ee..75b1b1d8f6 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -139,7 +139,7 @@
     <MicrosoftTemplateEngineTasksVersion>7.0.120</MicrosoftTemplateEngineTasksVersion>
     <MicrosoftDotNetXHarnessTestRunnersCommonVersion>11.0.0-prerelease.26279.1</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
     <MicrosoftDotNetXHarnessTestRunnersXunitVersion>11.0.0-prerelease.26279.1</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
-    <MicrosoftDotNetXHarnessCLIVersion>11.0.0-prerelease.26279.1</MicrosoftDotNetXHarnessCLIVersion>
+    <MicrosoftDotNetXHarnessCLIVersion>11.0.0-prerelease.26230.4</MicrosoftDotNetXHarnessCLIVersion>
     <TizenUIExtensionsVersion>0.9.2</TizenUIExtensionsVersion>
     <SvgSkiaPackageVersion>2.0.0.4</SvgSkiaPackageVersion>
     <FizzlerPackageVersion>1.3.0</FizzlerPackageVersion>

Test Results:

dotnet tool restore

Tool 'cake.tool' (version '4.0.0') was restored. Available commands: dotnet-cake
Tool 'powershell' (version '7.4.0') was restored. Available commands: pwsh
Tool 'api-tools' (version '1.3.5') was restored. Available commands: api-tools
Tool 'microsoft.dotnet.xharness.cli' (version '11.0.0-prerelease.26230.4') was restored. Available commands: xharness
Tool 'androidsdk.tool' (version '0.19.0') was restored. Available commands: android

Restore was successful.

Result: PASS

Failure Analysis: N/A.


Candidate try-fix-2

Approach: Hold back the XHarness dependency flow entirely, keeping CLI and test-runner packages on the previous known-good build to avoid any Android device-test infrastructure behavior change.

Diff:

diff --git a/.config/dotnet-tools.json b/.config/dotnet-tools.json
index e8ebcf35ee..a06771ae32 100644
--- a/.config/dotnet-tools.json
+++ b/.config/dotnet-tools.json
@@ -24,7 +24,7 @@
       "rollForward": false
     },
     "microsoft.dotnet.xharness.cli": {
-      "version": "11.0.0-prerelease.26279.1",
+      "version": "11.0.0-prerelease.26230.4",
       "commands": [
         "xharness"
       ],
diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index e1f24daf5b..acff08c44c 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -166,17 +166,17 @@
       <Uri>https://github.com/dotnet/dotnet</Uri>
       <Sha>7b29526f2107416f68578bcb9deaca74fcfcf7f0</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Common" Version="11.0.0-prerelease.26279.1">
+    <Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Common" Version="11.0.0-prerelease.26230.4">
       <Uri>https://github.com/dotnet/xharness</Uri>
-      <Sha>2cee83bf4841d72c9734a343f3003aeabdd46edf</Sha>
+      <Sha>92962e5c46ac08a66ded4c5696209cc60f1a232f</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="11.0.0-prerelease.26279.1">
+    <Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="11.0.0-prerelease.26230.4">
       <Uri>https://github.com/dotnet/xharness</Uri>
-      <Sha>2cee83bf4841d72c9734a343f3003aeabdd46edf</Sha>
+      <Sha>92962e5c46ac08a66ded4c5696209cc60f1a232f</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.XHarness.CLI" Version="11.0.0-prerelease.26279.1">
+    <Dependency Name="Microsoft.DotNet.XHarness.CLI" Version="11.0.0-prerelease.26230.4">
       <Uri>https://github.com/dotnet/xharness</Uri>
-      <Sha>2cee83bf4841d72c9734a343f3003aeabdd46edf</Sha>
+      <Sha>92962e5c46ac08a66ded4c5696209cc60f1a232f</Sha>
     </Dependency>
   </ProductDependencies>
   <ToolsetDependencies>
diff --git a/eng/Versions.props b/eng/Versions.props
index 2ba02d13ee..e127635424 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -137,9 +137,9 @@
     <_HarfBuzzSharpVersion>8.3.0.1</_HarfBuzzSharpVersion>
     <_SkiaSharpNativeAssetsVersion>0.0.0-commit.e57e2a11dac4ccc72bea52939dede49816842005.1728</_SkiaSharpNativeAssetsVersion>
     <MicrosoftTemplateEngineTasksVersion>7.0.120</MicrosoftTemplateEngineTasksVersion>
-    <MicrosoftDotNetXHarnessTestRunnersCommonVersion>11.0.0-prerelease.26279.1</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
-    <MicrosoftDotNetXHarnessTestRunnersXunitVersion>11.0.0-prerelease.26279.1</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
-    <MicrosoftDotNetXHarnessCLIVersion>11.0.0-prerelease.26279.1</MicrosoftDotNetXHarnessCLIVersion>
+    <MicrosoftDotNetXHarnessTestRunnersCommonVersion>11.0.0-prerelease.26230.4</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
+    <MicrosoftDotNetXHarnessTestRunnersXunitVersion>11.0.0-prerelease.26230.4</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
+    <MicrosoftDotNetXHarnessCLIVersion>11.0.0-prerelease.26230.4</MicrosoftDotNetXHarnessCLIVersion>
     <TizenUIExtensionsVersion>0.9.2</TizenUIExtensionsVersion>
     <SvgSkiaPackageVersion>2.0.0.4</SvgSkiaPackageVersion>
     <FizzlerPackageVersion>1.3.0</FizzlerPackageVersion>

Test Results:

dotnet tool restore

Tool 'cake.tool' (version '4.0.0') was restored. Available commands: dotnet-cake
Tool 'powershell' (version '7.4.0') was restored. Available commands: pwsh
Tool 'api-tools' (version '1.3.5') was restored. Available commands: api-tools
Tool 'microsoft.dotnet.xharness.cli' (version '11.0.0-prerelease.26230.4') was restored. Available commands: xharness
Tool 'androidsdk.tool' (version '0.19.0') was restored. Available commands: android

Restore was successful.

dependency consistency check

All XHarness values held at 11.0.0-prerelease.26230.4 / 92962e5c46ac08a66ded4c5696209cc60f1a232f.

Result: PASS

Failure Analysis: Local tooling restore passes and metadata is internally consistent, but this candidate does not implement the dependency update requested by the PR and is therefore not a better fix.


Candidate try-fix-3

Approach: Update only the XHarness CLI/tooling package to the new build while leaving test-runner package references on the previous version, minimizing changes to test-runner libraries consumed by Android device tests.

Diff:

diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index e1f24daf5b..472c10604b 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -166,13 +166,13 @@
       <Uri>https://github.com/dotnet/dotnet</Uri>
       <Sha>7b29526f2107416f68578bcb9deaca74fcfcf7f0</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Common" Version="11.0.0-prerelease.26279.1">
+    <Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Common" Version="11.0.0-prerelease.26230.4">
       <Uri>https://github.com/dotnet/xharness</Uri>
-      <Sha>2cee83bf4841d72c9734a343f3003aeabdd46edf</Sha>
+      <Sha>92962e5c46ac08a66ded4c5696209cc60f1a232f</Sha>
     </Dependency>
-    <Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="11.0.0-prerelease.26279.1">
+    <Dependency Name="Microsoft.DotNet.XHarness.TestRunners.Xunit" Version="11.0.0-prerelease.26230.4">
       <Uri>https://github.com/dotnet/xharness</Uri>
-      <Sha>2cee83bf4841d72c9734a343f3003aeabdd46edf</Sha>
+      <Sha>92962e5c46ac08a66ded4c5696209cc60f1a232f</Sha>
     </Dependency>
     <Dependency Name="Microsoft.DotNet.XHarness.CLI" Version="11.0.0-prerelease.26279.1">
       <Uri>https://github.com/dotnet/xharness</Uri>
diff --git a/eng/Versions.props b/eng/Versions.props
index 2ba02d13ee..0c32844f09 100644
--- a/eng/Versions.props
+++ b/eng/Versions.props
@@ -137,8 +137,8 @@
     <_HarfBuzzSharpVersion>8.3.0.1</_HarfBuzzSharpVersion>
     <_SkiaSharpNativeAssetsVersion>0.0.0-commit.e57e2a11dac4ccc72bea52939dede49816842005.1728</_SkiaSharpNativeAssetsVersion>
     <MicrosoftTemplateEngineTasksVersion>7.0.120</MicrosoftTemplateEngineTasksVersion>
-    <MicrosoftDotNetXHarnessTestRunnersCommonVersion>11.0.0-prerelease.26279.1</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
-    <MicrosoftDotNetXHarnessTestRunnersXunitVersion>11.0.0-prerelease.26279.1</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
+    <MicrosoftDotNetXHarnessTestRunnersCommonVersion>11.0.0-prerelease.26230.4</MicrosoftDotNetXHarnessTestRunnersCommonVersion>
+    <MicrosoftDotNetXHarnessTestRunnersXunitVersion>11.0.0-prerelease.26230.4</MicrosoftDotNetXHarnessTestRunnersXunitVersion>
     <MicrosoftDotNetXHarnessCLIVersion>11.0.0-prerelease.26279.1</MicrosoftDotNetXHarnessCLIVersion>
     <TizenUIExtensionsVersion>0.9.2</TizenUIExtensionsVersion>
     <SvgSkiaPackageVersion>2.0.0.4</SvgSkiaPackageVersion>

Test Results:

dotnet tool restore

Tool 'cake.tool' (version '4.0.0') was restored. Available commands: dotnet-cake
Tool 'powershell' (version '7.4.0') was restored. Available commands: pwsh
Tool 'api-tools' (version '1.3.5') was restored. Available commands: api-tools
Tool 'microsoft.dotnet.xharness.cli' (version '11.0.0-prerelease.26279.1') was restored. Available commands: xharness
Tool 'androidsdk.tool' (version '0.19.0') was restored. Available commands: android

Restore was successful.

xharness command smoke test

[11.0.0-prerelease.26279.1+2cee83bf4841d72c9734a343f3003aeabdd46edf] XHarness command issued: --help
android test Executes test .apk on an Android device, waits up
to a given timeout, then copies files off the
device and uninstalls the test app
android device Get ID of the device compatible with a given .apk /
architecture
android install Install an .apk on an Android device without
running it
android run Run tests using an already installed .apk on an
Android device
android uninstall Uninstall an .apk from an Android device
android adb Invoke bundled adb with given arguments
android state Print information about the current machine, such
as host machine info and device status
android-headless test
Executes test executable on an Android device,
waits up to a given timeout, then copies files
off the device and uninstalls the test app
android-headless install
Install a test folder to an Android device without
running it
android-headless run
Run tests using an already installed executable on
an Android device
android-headless uninstall
Uninstall a test folder from an Android device
wasm test Executes tests on WASM using a selected JavaScript
engine
wasm test-browser Executes tests on WASM using a browser
wasm webserver Starts a webserver
wasi test Executes tests on WASI using a selected engine
help Show this message and exit
version
XHarness exit code: 2 (HELP_SHOWN)

dependency consistency check

eng/Version.Details.xml:
eng/Version.Details.xml:
eng/Version.Details.xml:
eng/Versions.props: 11.0.0-prerelease.26230.4
eng/Versions.props: 11.0.0-prerelease.26230.4
eng/Versions.props: 11.0.0-prerelease.26279.1

Result: PASS

Failure Analysis: Tool restore and CLI smoke test pass, but this candidate leaves test-runner packages behind the CLI. That split version state is riskier than the PR for XHarness-based Android device testing and is not demonstrably better.


Report — Final Recommendation

Comparative Candidate Report — PR #35488

Candidate Ranking

Rank Candidate Result Assessment
1 pr Gate skipped; no regression tests detected Best candidate. It preserves dependency-flow consistency and actually consumes the new XHarness build across the CLI tool manifest, Version.Details metadata, and MSBuild version properties.
2 pr-plus-reviewer Same as pr Equivalent to pr; the expert reviewer produced no actionable findings, so there was no reviewer feedback to apply. Ranked below pr only because it adds no distinct improvement.
3 try-fix-2 PASS local restore + consistency check Internally consistent, but it holds all XHarness references at the old build and therefore does not implement the dependency-update objective of PR #35488.
4 try-fix-1 PASS local restore Keeps the CLI on the old build while updating test-runner packages. This creates a split XHarness version/SHA state, which is riskier for Android device-test orchestration than the PR's coherent update.
5 try-fix-3 PASS local restore + CLI smoke Updates the CLI while holding test-runner packages back. This also creates a split CLI/test-runner state and is not demonstrably safer for Android device tests.

Regression-Test Rule

No candidate is recorded as having failed regression tests. The PR gate was skipped because no tests were detected, while the try-fix candidates only have local restore/smoke/metadata checks. If any future Android device-test regression evidence appears for the PR's XHarness update, that evidence should supersede this ranking.

Comparative Analysis

The raw PR fix is the only candidate that both satisfies the dependency-flow goal and keeps all XHarness surfaces aligned on a single build. The two partial-update candidates (try-fix-1 and try-fix-3) reduce one side of the update but introduce mixed XHarness versions across CLI and test-runner packages, which can make Android device-test behavior harder to reason about. The full holdback candidate (try-fix-2) is mechanically safe but is effectively a revert of the dependency update.

The expert reviewer found no actionable issues in the PR diff. Because pr-plus-reviewer is identical to pr, it does not change the risk profile or add value beyond confirming that there were no inline review fixes to apply.

Winner

Winner: pr

The submitted PR is the best candidate because it is coherent, dependency-flow-consistent, and achieves the intended XHarness update. The remaining risk is external XHarness behavior on Android device-test infrastructure, not an inconsistency in the repository changes.


Future Action — review latest findings

No alternative fix was selected for this run. Review the session findings and CI results before merging.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

s/agent-fix-pr-picked AI could not beat the PR fix - PR is the best among all candidates s/agent-reviewed PR was reviewed by AI agent workflow (full 4-phase review)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants