Skip to content

[net11.0] Merge main to net11.0#33912

Merged
rmarinho merged 8 commits intonet11.0from
merge-main-net11
Feb 6, 2026
Merged

[net11.0] Merge main to net11.0#33912
rmarinho merged 8 commits intonet11.0from
merge-main-net11

Conversation

@rmarinho
Copy link
Member

@rmarinho rmarinho commented Feb 5, 2026

Note

Are you waiting for the changes in this PR to be merged?
It would be very helpful if you could test the resulting artifacts from this PR and let us know in a comment if this change resolves your issue. Thank you!

Description

This PR merges the latest changes from \main\ branch into
et11.0\ branch.

Changes

  • All recent main branch changes merged to net11.0
  • No merge conflicts

PureWeen and others added 8 commits February 3, 2026 09:30
…s extraction (#33813)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

## Summary

This PR significantly enhances the PR agent workflow with improvements
across **two development phases**:

### Phase 1: Original Enhancements (Commits 1-8)
1. **Multi-model try-fix exploration** - Uses 5 different AI models to
explore alternative solutions
2. **Environment blocker handling** - Strict rules to stop and ask user
when environment issues occur
3. **Review automation script** - PowerShell script that invokes Copilot
CLI directly for PR reviews
4. **Branch safety rules** - Prevents agent from switching branches
during reviews
5. **Template formatting rules** - Exact template adherence for
downstream script compatibility

### Phase 2: Consolidation & Simplification (Commit 9)
After multi-model review (5 models: Claude Sonnet 4.5, Claude Opus 4.5,
GPT-5.2, GPT-5.2-Codex, Gemini 3 Pro), the following improvements were
made:

6. **Shared rules extraction** - Created `SHARED-RULES.md` to eliminate
duplication across files
7. **Simplified git policy** - Agent never runs git commands; always
assumes correct branch
8. **State file handling** - Changed "commit" to "save" (state files are
gitignored)
9. **Reduced verbosity** - Compressed cross-pollination section,
converted PLAN-TEMPLATE to checklist

---

## Commits

### 1. `80d7e412c2` - Update pr agent with multi-model try-fix workflow

**Why:** The original PR agent only used a single model for exploring
fixes. Different AI models have different strengths and may find
solutions others miss.

**Changes:**
- Added Phase 4 multi-model workflow using 5 models:
- `claude-sonnet-4.5`, `claude-opus-4.5`, `gpt-5.2`, `gpt-5.2-codex`,
`gemini-3-pro-preview`
- Cross-pollination loop: Share results between models to spark new
ideas
- Continue until all models confirm "no more approaches to explore"

---

### 2. `69cc6af403` - Address Copilot review suggestions

**Why:** Initial PR review feedback suggested improvements.

**Changes:**
- Minor formatting and clarity improvements to pr.md

---

### 3. `fe55c3fd21` - Add rules for template formatting and skill script
usage

**Why:** Downstream scripts depend on exact regex patterns in state
files. Agents were "improving" templates by adding attributes like
`open` which broke parsing.

**Changes:**
- Added "Follow Templates EXACTLY" rule - no adding attributes, no
improving formats
- Added "Use Skills' Scripts" rule - run provided PowerShell scripts,
don't bypass with manual commands

---

### 4. `debbee608e` - Add 'Stop on Environment Blockers' rule to PR
agent

**Why:** Agent was continuing through phases when environment issues
(missing Appium, WinAppDriver errors) prevented completion, leading to
incomplete reviews.

**Changes:**
- Added explicit blocker handling section to pr.md
- Common blockers: Appium drivers, WinAppDriver, Xcode, emulators, port
conflicts
- Must STOP, report the blocker, and ask user how to proceed
- Never mark phase as blocked and continue to next phase

---

### 5. `ad29f6a796` - Add PR review plan template and Review-PR.ps1
script

**Why:** Need a reusable template for consistent PR reviews and a script
to automate invocation.

**Changes:**
- Created `.github/agents/pr/PLAN-TEMPLATE.md` - Reusable 5-phase review
plan
- Created `.github/scripts/Review-PR.ps1` - Script to prepare
environment and invoke Copilot CLI

---

### 6. `886ea2aa8e` - Improve blocker handling and fix Review-PR.ps1 for
Copilot CLI

**Why:** During PR #27300 review, agent spent 10+ tool calls
troubleshooting WinAppDriver instead of stopping after first failure.

**Changes:**
- Added strict retry limits table:
  | Blocker Type | Max Retries | Action |
  |--------------|-------------|--------|
  | Server errors (500, timeout) | 0 | STOP immediately |
  | Missing tools | 1 install | STOP and ask |
  | Port conflicts | 1 kill | STOP and ask |
  | WinAppDriver errors | 0 | STOP immediately |
- Added "What I tried" section to blocker report template
- New prohibitions: Never spend more than 2-3 tool calls on same blocker

---

### 7. `d67da75e85` - Update Review-PR.ps1 to invoke Copilot CLI
directly

**Why:** Initially thought Copilot CLI was interactive-only. Discovered
it supports `-i <prompt>` and `-p <prompt>` for programmatic invocation.

**Changes:**
- Script now invokes `copilot --agent pr -i "<prompt>"` directly
- Validates both `gh` CLI and `copilot` CLI are installed
- New `-NoInteractive` switch for `-p` mode (exits after completion)
- Dry run mode shows exactly what would be invoked

---

### 8. `ed74c574a5` - Add 'Do NOT Switch Branches' rule to pr agent

**Why:** During PR review testing, the pr agent ran `git checkout`, `git
stash`, and other branch-switching commands, causing loss of local
changes and confusion about which code was being reviewed.

**Changes:**
- Added explicit "Do NOT Switch Branches" rule to both pr.md and
PLAN-TEMPLATE.md
- Forbidden commands: `git checkout`, `git switch`, `gh pr checkout`,
`git stash`
- Agent must work on current branch as-is, using `git diff` or `gh pr
diff` to see PR changes
- Fixed variable expansion in Review-PR.ps1 prompt (double backticks for
here-strings)

---

### 9. `632bfb7155` - Extract shared rules, simplify git policy, reduce
duplication

**Why:** Multi-model review (5 AI models) identified significant
duplication (~200 lines) across files, conflicting "commit" terminology,
and overly verbose sections. The git checkout prohibition also
conflicted with workflow steps that mentioned git checkout.

**Changes:**
- **Created `SHARED-RULES.md`** (167 lines) - Single source of truth
for:
  - Phase Completion Protocol
  - Follow Templates EXACTLY
  - No Direct Git Commands (absolute - agent never runs git)
  - Use Skills' Scripts
  - Stop on Environment Blockers (with retry limits)
  - Multi-Model Configuration (5 models list)
  - Platform Selection guidance
  
- **Simplified git policy** - Agent is ALWAYS on correct branch, never
runs git commands:
  - Removed git fetch/checkout from Phase 1 Pre-Flight
  - Phase 5: User handles commit/push/PR creation
- Changed all "State file committed" → "State file saved" (gitignored
files)
  
- **Compressed content**:
  - Cross-pollination ASCII box: 51 → 20 lines
  - PLAN-TEMPLATE.md: Full docs → Pure checklist (226 → 112 lines)
  - pr.md: 662 → 535 lines (-19%)
  - post-gate.md: 403 → 302 lines (-25%)
  - Total reduction: 1291 → 1116 lines (-14%)

- **Eliminated duplication**:
  - Blocker handling was in 3 files → now in SHARED-RULES.md only
- Phase Completion Protocol was in 2 files → now in SHARED-RULES.md only
  - Model list was in 3 files → now in SHARED-RULES.md only

---

## Files Changed

| File | Purpose |
|------|---------|
| `.github/agents/pr.md` | Main PR agent instructions (Phases 1-3) |
| `.github/agents/pr/post-gate.md` | Phase 4-5 instructions (multi-model
try-fix) |
| `.github/agents/pr/PLAN-TEMPLATE.md` | **NEW** - Reusable 5-phase
review checklist |
| `.github/agents/pr/SHARED-RULES.md` | **NEW** - Extracted shared rules
(single source of truth) |
| `.github/scripts/Review-PR.ps1` | **NEW** - Script to invoke Copilot
CLI for PR review |

---

## Usage

```powershell
# Interactive mode (default) - stays open for follow-up
pwsh .github/scripts/Review-PR.ps1 -PRNumber 33687

# Non-interactive mode - exits when done
pwsh .github/scripts/Review-PR.ps1 -PRNumber 33687 -NoInteractive

# Specific platform
pwsh .github/scripts/Review-PR.ps1 -PRNumber 33687 -Platform ios

# Skip merge if already on branch
pwsh .github/scripts/Review-PR.ps1 -PRNumber 33687 -SkipMerge

# Dry run to preview
pwsh .github/scripts/Review-PR.ps1 -PRNumber 33687 -DryRun
```

---

## Multi-Model Validation

The final changes (commit 9) were validated by 5 AI models:

| Model | Verdict | Key Feedback |
|-------|---------|--------------|
| Claude Sonnet 4.5 | ✅ READY TO MERGE | "All git command instructions
successfully removed" |
| Claude Opus 4.5 | ✅ READY TO MERGE | "Excellent refactoring, no
conflicting guidance" |
| GPT-5.2 | ✅ READY TO MERGE | "Progressive disclosure maintained" |
| GPT-5.2-Codex | ✅ READY TO MERGE | "No instructions to run git
commands remain" |
| Gemini 3 Pro | ✅ READY TO MERGE | "Agent is instructed to STOP and ask
user for commits" |

---

## Testing

Tested by reviewing PR #27300 (ScrollView ScrollToAsync fix):
- Pre-Flight phase completed successfully
- Tests phase verified test files exist
- Gate phase encountered WinAppDriver blocker → agent correctly stopped
and asked
- Blocker handling rules validated through real-world usage
- **Branch safety verified**: Agent stayed on branch instead of
switching

---------

Co-authored-by: Jakub Florkowski <kubaflo123@gmail.com>
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

# XAML C# Expressions

Write C# expressions directly in XAML — no more converters, no more
boilerplate.

## ⚠️ Experimental Feature

This is an **experimental preview feature** for .NET 11. The API and
syntax may change before release.

### How to Enable

Add to your project file:

```xml
<PropertyGroup>
    <EnablePreviewFeatures>true</EnablePreviewFeatures>
</PropertyGroup>
```

Without this flag, using C# expression syntax results in error
**MAUIX2012**.

### Requirements

- SourceGen mode (default in .NET 11)
- `x:DataType` attribute on your page/view

## Example

```xml
<ContentPage x:DataType="local:ProductViewModel">
    
    <!-- Simple binding -->
    <Label Text="{ProductName}" />
    
    <!-- String interpolation -->
    <Label Text="{$'{Quantity}x {ProductName}'}" />
    
    <!-- Calculations -->
    <Label Text="{$'Total: ${Price * Quantity:F2}'}" />
    
    <!-- Boolean negation (no converter needed!) -->
    <Label IsVisible="{!IsLoading}" />
    
    <!-- Boolean expressions (no MultiBinding needed!) -->
    <Button Text="Submit" 
            IsEnabled="{HasAccount &amp;&amp; AgreedToTerms}" />
    
    <!-- Inline event handlers (no code-behind needed!) -->
    <Button Text="{$'Clicked {ClickCount} times'}" 
            Clicked="{(s, e) => ClickCount++}" />
    
    <!-- Ternary expressions -->
    <Label Text="{IsVip ? 'Gold Member' : 'Standard'}" />
    
</ContentPage>
```

## Syntax Highlights

Some of the supported expressions (see [full
spec](https://github.com/dotnet/maui/blob/dev/stdelc/xaml%2Bcode-clean/docs/specs/XamlCSharpExpressions.md)
for complete reference):

| Feature | Syntax | Example |
|---------|--------|---------|
| Property binding | `{Property}` | `{Username}` |
| Nested property | `{A.B}` | `{User.DisplayName}` |
| String interpolation | `{$'..{x}..'}` | `{$'Hello {Name}!'}` |
| Boolean negation | `{!Bool}` | `{!IsHidden}` |
| Boolean AND/OR | `{A && B}` | `{IsLoaded &amp;&amp; HasData}` |
| Arithmetic | `{A * B}` | `{Price * Quantity}` |
| Ternary | `{c ? a : b}` | `{IsVip ? 'Gold' : 'Standard'}` |
| Null-coalesce | `{a ?? b}` | `{Title ?? 'Untitled'}` |
| Lambda events | `{(s, e) => ...}` | `{(s, e) => Count++}` |
| Local method | `{Method()}` | `{GetDisplayText()}` |
| Static member | `{Type.Member}` | `{DateTime.Now}` |

## What's NOT Supported

- Async lambdas (`{async (s, e) => ...}`) — use regular methods
- Parameterless lambdas (`{() => ...}`) — must include `(s, e)`
- XamlC or Runtime inflation — SourceGen only

## Resources

- **Sample App**:
[MauiXamlCsharpSample](https://github.com/jfversluis/MauiXamlCsharpSample)
by Gerald Versluis
- **Full Spec**:
[docs/specs/XamlCSharpExpressions.md](https://github.com/dotnet/maui/blob/dev/stdelc/xaml%2Bcode-clean/docs/specs/XamlCSharpExpressions.md)
…3861)

<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

## Summary

Enhances the `pr-finalize` skill with a **two-phase workflow** that
includes code review, and adds critical safety rules preventing agents
from approving or blocking PRs.

### What This PR Does

1. **Adds Phase 2: Code Review** - After verifying title/description,
the skill now performs a code review for best practices
2. **Adds critical safety rule** - Agents must NEVER use `--approve` or
`--request-changes` flags
3. **Keeps skill focused** - Users can invoke with different models
themselves if they want multi-model coverage

---

## Commits

### 1. `2ad480c77d` - Add multi-model code review to pr-finalize skill

**Original commit** that added the code review phase to pr-finalize.

### 2. `71eb8c2216` - Add critical rule: agents must NEVER
approve/request-changes on PRs

**Why:** AI agents should never make approval decisions on PRs. That's a
human responsibility.

**Changes:**
- Added prominent `🚨 CRITICAL` warning section at top of skill
- Added CRITICAL note to `copilot-instructions.md`
- Only `gh pr review --comment` is allowed

### 3. `335be127cb` - Simplify pr-finalize: remove multi-model
orchestration, keep code review

**Why:** After review, decided that multi-model orchestration should be
user-controlled, not built into the skill. Users can invoke pr-finalize
with different models themselves if they want multi-model coverage.

**Changes:**
- Removed 5-model orchestration logic (model table, parallel execution,
consensus synthesis)
- Renamed "Multi-Model Code Review" → "Code Review"
- Fixed contradiction: removed `--approve`/`--request-changes` examples
that conflicted with the NEVER rule
- Kept the code review focus areas and output format
- Reduced skill from 422 → 373 lines

---

## The Two-Phase Workflow

### Phase 1: Title & Description Review
- Verify PR metadata matches actual implementation
- Check for required NOTE block
- Ensure title is searchable and informative

### Phase 2: Code Review
- Review code for best practices
- Focus on: code quality, error handling, performance, platform
concerns, breaking changes
- Post findings as **comment only** (never approve/request-changes)

---

## Key Safety Rule

```markdown
## 🚨 CRITICAL: NEVER Approve or Request Changes

**AI agents must NEVER use `--approve` or `--request-changes` flags.**

| Action | Allowed? | Why |
|--------|----------|-----|
| `gh pr review --approve` | ❌ **NEVER** | Approval is a human decision |
| `gh pr review --request-changes` | ❌ **NEVER** | Blocking PRs is a human decision |
| `gh pr review --comment` | ✅ **OK** | Findings for human review |
```

---

## Files Changed

| File | Changes |
|------|---------|
| `.github/skills/pr-finalize/SKILL.md` | Added Phase 2 code review,
safety rules, simplified orchestration |
| `.github/copilot-instructions.md` | Updated skill description, added
CRITICAL note |

---

## Why Not Multi-Model Orchestration?

The original approach had the skill orchestrate 5 different AI models in
parallel. This was removed because:

1. **User control** - Users can invoke pr-finalize with `model`
parameter themselves
2. **Simplicity** - Skill focuses on *what* to review, not *how* to
orchestrate
3. **Flexibility** - Users choose when multi-model is worth the cost
4. **Avoids contradictions** - Original had consensus logic that
conflicted with "never approve" rule

---

## Issues Fixed

N/A - Enhancement to agent workflow

---------

Co-authored-by: Jakub Florkowski <kubaflo123@gmail.com>
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

## Description

Fixes iOS integration test failures that have been occurring since Jan
23, 2026 on the `main` branch.

### Root Cause

When launching iOS apps via XHarness/mlaunch, a race condition occurs
where the simulator reports as "booted" but is still internally in the
"Booting" state. This causes app launch to fail with:

```
An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=405):
Unable to lookup in current state: Booting

error HE0042: Could not launch the app on the device: simctl returned exit code 149
```

### Fix

This PR adds a `WaitForBootComplete()` method to the `Simulator` class
which uses `simctl bootstatus` to block until the simulator is fully
booted before attempting to run tests. The `IOSSimulatorFixture` now
calls this method after launching the simulator.

### Affected Tests

- `RunOniOS_MauiDebug`
- `RunOniOS_MauiRelease`
- `RunOniOS_MauiReleaseTrimFull`
- `RunOniOS_BlazorDebug`
- `RunOniOS_BlazorRelease`
- `RunOniOS_MauiNativeAOT`

### Changes

- Added `Simulator.WaitForBootComplete()` method in `Apple/Simulator.cs`
- Updated `IOSSimulatorFixture` constructor to call
`WaitForBootComplete()` after `Launch()`
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

### Description of Change

The Android integration tests (`RunOnAndroid`) were failing with "Failed
to launch Test AVD" because the emulator was being launched in every
test's constructor instead of once in the shared fixture.

**Root Cause:**
The `AndroidTemplateTests` constructor was calling
`LaunchAndWaitForAvd()` for each test, which caused:
1. Multiple attempts to launch the same emulator 
2. Possible race conditions between tests
3. Each test waiting 600 seconds for an emulator that may have already
failed to boot in a previous test

**Fix:**
Moved the emulator launch from the test constructor to
`AndroidEmulatorFixture` constructor (one-time setup), matching how
`IOSSimulatorFixture` handles the simulator.

The collection fixture now:
1. Accepts SDK licenses
2. Installs the AVD
3. **Launches and waits for the emulator to boot (NEW)**

Individual tests no longer attempt to launch the emulator - they use the
already-running emulator from the shared fixture.

### Issues Fixed
Fixes Android integration test failures on CI
<!-- Please let the below note in for people that find this PR -->
> [!NOTE]
> Are you waiting for the changes in this PR to be merged?
> It would be very helpful if you could [test the resulting
artifacts](https://github.com/dotnet/maui/wiki/Testing-PR-Builds) from
this PR and let us know in a comment if this change resolves your issue.
Thank you!

## Description

Fixes an issue where `eng/build.ps1` always exited with code 0
regardless of whether the underlying build succeeded or failed. This
caused Azure Pipelines to show steps as "succeeded" even when they
failed.

### Problem

When running `./build.cmd -build` (without `-restore`), if the .NET SDK
is not found, the script would:
1. Print "Unable to find dotnet with SDK version..."
2. Call `ExitWithExitCode 1` in `tools.ps1`
3. But `eng/build.ps1` would still exit with 0 (line 146: `exit 0`)

This caused Azure Pipelines to show the step as green/succeeded when it
should have been red/failed.

### Fix

- Capture `$LASTEXITCODE` after `Invoke-Expression` call to
`common/build.ps1`
- Use the captured exit code instead of always exiting 0

### Testing

This fix was identified while investigating Windows Helix device test
failures where the "Build the MSBuild Tasks" step was showing as
succeeded but had actually failed to find the SDK.

Build with the issue:
https://dev.azure.com/dnceng-public/public/_build/results?buildId=1279950
Copilot AI review requested due to automatic review settings February 5, 2026 15:18
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR merges the latest changes from the main branch into the net11.0 branch, bringing in significant improvements to integration tests, XAML C# expressions support, and various infrastructure enhancements.

Changes:

  • Enhanced iOS simulator management with race condition prevention
  • Android emulator lifecycle optimization (per-collection instead of per-test)
  • Added comprehensive XAML C# Expressions feature with source generation
  • Infrastructure improvements (build exit codes, CI display names, retry configuration)
  • New PowerShell script for PR review workflow
  • Updated documentation and agent instructions

Reviewed changes

Copilot reviewed 44 out of 44 changed files in this pull request and generated no comments.

Show a summary per file
File Description
src/TestUtils/src/Microsoft.Maui.IntegrationTests/AppleTemplateTests.cs Added simulator boot completion wait to prevent race conditions
src/TestUtils/src/Microsoft.Maui.IntegrationTests/Apple/Simulator.cs Implemented WaitForBootComplete() method using simctl bootstatus
src/TestUtils/src/Microsoft.Maui.IntegrationTests/AndroidTemplateTests.cs Refactored emulator launch to collection-level instead of per-test
src/Controls/tests/Xaml.UnitTests/MockSourceGenerator.cs Added EnablePreviewFeatures parameter for C# expressions
src/Controls/tests/Xaml.UnitTests/Issues/NullConditionalSettable.sgen.* New test for null-conditional access in two-way bindings
src/Controls/tests/Xaml.UnitTests/CSharpExpressions.sgen.* Comprehensive test suite for C# expressions feature
src/Controls/tests/SourceGen.UnitTests/SourceGeneratorDriver.cs Added EnablePreviewFeatures support
src/Controls/tests/SourceGen.UnitTests/MemberResolverTests.cs New unit tests for member resolution logic
src/Controls/tests/SourceGen.UnitTests/InitializeComponent/SourceGenXamlInitializeComponentTests.cs Added enablePreviewFeatures parameter
src/Controls/tests/SourceGen.UnitTests/CSharpExpressionDiagnosticsTests.cs New diagnostic tests for C# expressions
src/Controls/src/Xaml/XamlParser.cs Added IsEscaped flag for escaped markup strings
src/Controls/src/Xaml/XamlNode.cs Added IsEscaped property to ValueNode
src/Controls/src/SourceGen/XDataTypeResolver.cs New helper for resolving x:DataType from XAML tree
src/Controls/src/SourceGen/Visitors/ExpandMarkupsVisitor.cs Enhanced to detect and process C# expressions
src/Controls/src/SourceGen/SetPropertyHelpers.cs Added expression binding and lambda event handler support
src/Controls/src/SourceGen/ProjectItem.cs Added EnablePreviewFeatures property
src/Controls/src/SourceGen/NodeSGExtensions.cs Added expression type handling
src/Controls/src/SourceGen/MemberResolver.cs New class for resolving member locations (this vs DataType)
src/Controls/src/SourceGen/ExpressionAnalyzer.cs New analyzer for C# expressions and INPC handlers
src/Controls/src/SourceGen/Descriptors.cs Added diagnostic descriptors for C# expressions
src/Controls/src/SourceGen/AnalyzerReleases.Unshipped.md Documented new diagnostic codes
src/Controls/src/Build.Tasks/nuget/buildTransitive/netstandard2.0/Microsoft.Maui.Controls.Common.targets Made EnablePreviewFeatures visible to compiler
eng/pipelines/ci.yml Added architecture labels to iOS test lanes
eng/pipelines/arcade/stage-integration-tests.yml Improved display names using job names
eng/pipelines/arcade/stage-device-tests.yml Added -restore flag for BuildTasks
eng/build.ps1 Fixed exit code handling
eng/automation/cspell/cSpell.json Added dictionary entries
docs/specs/XamlCSharpExpressions.md New specification document
.github/skills/try-fix/SKILL.md Updated status determination logic
.github/skills/pr-finalize/SKILL.md Added code review phase documentation
.github/skills/ai-summary-comment/scripts/post-pr-finalize-comment.ps1 Added code review section support
.github/skills/ai-summary-comment/SKILL.md Updated for PR finalize comment requirements
.github/scripts/Review-PR.ps1 New PowerShell script for PR review workflow
.github/instructions/uitests.instructions.md Updated with C# preference and best practices
.github/instructions/agents.instructions.md Removed (content moved elsewhere)
.github/copilot-instructions.md Updated pr-finalize description
.github/agents/write-tests-agent.md Added best practices reference
.github/agents/pr/post-gate.md Enhanced multi-model workflow documentation
.github/agents/pr/SHARED-RULES.md New shared rules document
.github/agents/pr/PLAN-TEMPLATE.md New plan template
.github/agents/pr.md Refactored to reference shared rules

@rmarinho
Copy link
Member Author

rmarinho commented Feb 5, 2026

/azp run maui-pr-devicetests

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

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

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants