Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
72 commits
Select commit Hold shift + click to select a range
7652fb6
Remove stale PR note from Copilot instructions (#34566)
jfversluis Mar 20, 2026
b4dad75
Fix artifact upload collision in maui-pr-uitests pipeline (#34478)
lewing Mar 20, 2026
f455656
[iOS] Fixed Flyout icon not updating when root page changes using Ins…
Vignesh-SF3580 Mar 2, 2026
641f5c6
[iOS] Fix: CollectionView does not clear selection when SelectedItem …
Tamilarasan-Paranthaman Mar 3, 2026
8cc470f
[Android] Implemented material3 support for ActivityIndicator (#33481)
Dhivya-SF4094 Mar 3, 2026
9de1357
[Shell] Update logic for iOS large title display in ShellItemRenderer…
kubaflo Mar 3, 2026
9cdf826
[iOS/Mac Catalyst 26] Fix Shell.ForegroundColor not applied to Toolba…
SyedAbdulAzeemSF4852 Mar 3, 2026
8a27a04
[iOS 26] Fix Entry MaxLength not enforced due to new multi-range dele…
kubaflo Mar 4, 2026
397400d
[iOS][Shell] Fix navigation lifecycle and back button for More tab (>…
kubaflo Mar 4, 2026
c498734
[iOS] CV2 ItemsLayout update (#28675)
kubaflo Mar 4, 2026
88105b9
[iOS26] Apply view margins in title view (#32205)
kubaflo Mar 4, 2026
29f0a24
[Android] Fix for TabbedPage BottomNavigation BarBackgroundColor not …
praveenkumarkarunanithi Mar 4, 2026
e1e19b0
[Testing] Additional Feature Matrix Test Cases for CollectionView (#3…
TamilarasanSF4853 Mar 4, 2026
058d4ab
Fix for FilePicker PickMultipleAsync nullable reference type (#33163)
SuthiYuvaraj Mar 4, 2026
21cacec
Fix Picker layout on Mac Catalyst 26+ (#33146)
kubaflo Mar 4, 2026
72f8c6c
[Android] Implemented Material3 support for Image (#33661)
Dhivya-SF4094 Mar 5, 2026
4bb7488
[iOS 26] Fix tab bar ghosting when navigating from modal to tabbed Sh…
SubhikshaSf4851 Mar 5, 2026
4f46d92
[Testing] Feature Matrix UITest Cases for VisualStateManager (#34146)
LogishaSelvarajSF4525 Mar 5, 2026
e56221b
[Testing] Feature Matrix UITest Cases for Clip (#34121)
TamilarasanSF4853 Mar 5, 2026
6cd32e7
[iOS] Fix for Slider ThumbImageSource is not centered properly on iOS…
HarishwaranVijayakumar Mar 5, 2026
f3421a4
[Testing] Feature matrix UITest Cases for Map Control (#31656)
HarishKumarSF4517 Mar 5, 2026
49210b8
[iOS] Fix: ActivityIndicator IsRunning ignores IsVisible when set to …
bhavanesh2001 Mar 5, 2026
00846b7
[Windows] Fix modal page keyboard focus not shifting to newly opened …
jfversluis Mar 5, 2026
8489120
[iOS][CV2] Fix CollectionView renders large empty space at bottom of …
devanathan-vaithiyanathan Mar 5, 2026
69c8057
[iOS] Fix TimePicker AM/PM frequently changes when the app is closed …
devanathan-vaithiyanathan Mar 5, 2026
538d80d
[Testing] Feature matrix UITest Cases for Visual Transform Control (#…
HarishKumarSF4517 Mar 5, 2026
bf7d45d
[Testing] Feature Matrix UITest Cases for Shell Pages (#33945)
NafeelaNazhir Mar 5, 2026
cf8d6dd
[iOS] Fixed issue where group Header/Footer template was set to all i…
Tamilarasan-Paranthaman Mar 5, 2026
99d4c25
[iOS] Flyout Items Not Displayed in RightToLeft FlowDirection in Land…
kubaflo Mar 5, 2026
bcea01c
[Android] Fix improper rendering of ThumbimageSource in Slider (#34064)
NirmalKumarYuvaraj Mar 5, 2026
3a925cf
[iOS/Android] MediaPicker: Fix image orientation when RotateImage=tru…
michalpobuta Mar 5, 2026
7b4fafe
[Android] Implemented Material3 support for ProgressBar (#33926)
SyedAbdulAzeemSF4852 Mar 5, 2026
2b41cb4
[iOS, Mac] Fix for RadioButton TextColor for plain Content not workin…
HarishwaranVijayakumar Mar 6, 2026
0b09fba
[Android] Fix CollectionView selection crash with HeaderTemplate (#34…
NirmalKumarYuvaraj Mar 6, 2026
c90ce12
[iOS, Mac, Windows] GraphicsView: Fix Background/BackgroundColor not …
NirmalKumarYuvaraj Mar 6, 2026
13f85e8
Replace deprecated NetworkReachability with NWPathMonitor on iOS/macO…
Copilot Mar 6, 2026
da48a01
Update Android Connectivity implementation to use modern APIs (#30348)
Copilot Mar 6, 2026
42e8b66
[iOS] Fixed Entry with IsPassword toggling loses previously entered t…
SubhikshaSf4851 Mar 7, 2026
86204fa
[Android] ScrollView: Fix HorizontalScrollBarVisibility not updating …
SubhikshaSf4851 Mar 7, 2026
68499a3
Optimize ordering of children in Flex layout (#21961)
symbiogenesis Mar 8, 2026
26cb0cd
[iOS] System.NullReferenceException at NavigationRenderer.SetStatusBa…
kubaflo Mar 8, 2026
e5252ba
[Android] Support for images inside HTML label (#21679)
kubaflo Mar 9, 2026
1b1c761
[All Platforms] Fix RadioButton warning when ControlTemplate is set w…
kubaflo Mar 9, 2026
7578847
[iOS] Fix gap at top of view after rotating device while Entry keyboa…
praveenkumarkarunanithi Mar 10, 2026
de284dc
[iOS] Fix Stepper layout overlap in landscape on iOS 26 (#34325)
Vignesh-SF3580 Mar 10, 2026
769f649
[Android] Fix Switch thumb shadow missing when ThumbColor is set (#33…
Shalini-Ashokan Mar 10, 2026
7211093
Fixed crash when calling ItemsView.ScrollTo on unloaded CollectionVie…
kubaflo Mar 10, 2026
e1638d8
[iOS] SwipeView: Honor FontImageSource.Color in SwipeItem icon (#27389)
kubaflo Mar 10, 2026
4f3cfad
[iOS] GraphicsView DrawString - fix (#26304)
kubaflo Mar 10, 2026
7d0bf09
[Testing] Feature Matrix UITest Cases for Triggers (#34152)
HarishKumarSF4517 Mar 10, 2026
0984200
[Testing] Refactoring Feature Matrix UITest Cases for CheckBox Contro…
LogishaSelvarajSF4525 Mar 10, 2026
57f4cb0
[iOS/MacCatalyst] Fix CheckBox foreground color not resetting when se…
Ahamed-Ali Mar 10, 2026
b5e2e08
[Android] Fix control size properties not available during Loaded eve…
Vignesh-SF3580 Mar 10, 2026
254b18c
[iOS 26] Fix back button color not applied for NavigationPage (#34326)
Shalini-Ashokan Mar 10, 2026
ba82815
[iOS] Button RTL text and image overlap - fix (#29041)
kubaflo Mar 10, 2026
502f578
[Android] - Fix Shadow Rendering For Transparent Fill, Stroke (Lines)…
prakashKannanSf3972 Mar 11, 2026
c06d83a
Fix for Shell tab visibility not updating when navigating back multip…
BagavathiPerumal Mar 11, 2026
79436ec
[iOS/Mac] Fixed OnBackButtonPressed not firing for Shell Navigation B…
Dhivya-SF4094 Mar 11, 2026
930d381
Android TimePicker ignores 24 hour system setting when using Format P…
kubaflo Mar 11, 2026
aa79411
[Android] VoiceOver on Toolbar Item (#29596)
kubaflo Mar 11, 2026
adaadc1
Visual state change for disabled RadioButton (#23471)
kubaflo Mar 11, 2026
899042c
Resolve UI test Build Sample failures - Candidate March 16 (#34442)
Ahamed-Ali Mar 12, 2026
b0497af
Revert "[iOS] Button RTL text and image overlap - fix (#29041)"
kubaflo Mar 13, 2026
508d5c8
Revert "[iOS, Mac, Windows] GraphicsView: Fix Background/BackgroundCo…
Copilot Mar 17, 2026
1b195a3
[fix] ContentLabel Moved to a nested class to prevent CS0122 in exter…
SubhikshaSf4851 Mar 18, 2026
aef5ce9
Fixed candidate test failures caused by PR #33428. (#34515)
Ahamed-Ali Mar 18, 2026
3a54b29
Fix the failures in the Candidate branch- March 16 (#34453)
Ahamed-Ali Mar 20, 2026
19e6487
Fixed the iOS 18.5 Candidate failures (March 16,2026) (#34593)
Ahamed-Ali Mar 22, 2026
a38921c
[ci] Copilot CI: Add Windows platform support to maui-copilot pipelin…
kubaflo Mar 23, 2026
a1731cf
March 24th, Candidate (#34437)
PureWeen Mar 24, 2026
e753277
Reset files to net11.0
github-actions[bot] Mar 24, 2026
07ca84c
Merge net11.0 into merge/main-to-net11.0 — resolve PublicAPI conflicts
github-actions[bot] Mar 24, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
14 changes: 0 additions & 14 deletions .github/copilot-instructions.md
Original file line number Diff line number Diff line change
Expand Up @@ -212,20 +212,6 @@ git commit -m "Fix: Description of the change"
- `.github/instructions/android.instructions.md` - Android handler implementation
- `.github/instructions/xaml-unittests.instructions.md` - XAML unit test guidelines

### Opening PRs

All PRs are required to have this at the top of the description:

```
<!-- 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!
```

Always put that at the top, without the block quotes. Without it, users will NOT be able to try the PR and your work will have been in vain!



## Custom Agents and Skills

Expand Down
5 changes: 4 additions & 1 deletion .github/scripts/BuildAndRunHostApp.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -349,7 +349,8 @@ Write-Step "Collecting test artifacts (screenshots, page source)..."
$testAssemblyDirs = @(
(Join-Path $RepoRoot "artifacts/bin/Controls.TestCases.Android.Tests/Debug/net10.0"),
(Join-Path $RepoRoot "artifacts/bin/Controls.TestCases.iOS.Tests/Debug/net10.0"),
(Join-Path $RepoRoot "artifacts/bin/Controls.TestCases.Mac.Tests/Debug/net10.0")
(Join-Path $RepoRoot "artifacts/bin/Controls.TestCases.Mac.Tests/Debug/net10.0"),
(Join-Path $RepoRoot "artifacts/bin/Controls.TestCases.WinUI.Tests/Debug/net10.0-windows10.0.19041.0")
)

$copiedCount = 0
Expand Down Expand Up @@ -441,6 +442,8 @@ if (Test-Path $deviceLogFile) {
Write-Host " iOS Simulator Logs (Last 100 lines)" -ForegroundColor Cyan
} elseif ($Platform -eq "catalyst") {
Write-Host " MacCatalyst App Logs (Last 100 lines)" -ForegroundColor Cyan
} elseif ($Platform -eq "windows") {
Write-Host " Windows App Logs (Last 100 lines)" -ForegroundColor Cyan
}
Write-Host "═══════════════════════════════════════════════════════" -ForegroundColor Cyan

Expand Down
20 changes: 16 additions & 4 deletions .github/scripts/Review-PR.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -43,7 +43,7 @@ param(
[int]$PRNumber,

[Parameter(Mandatory = $false)]
[ValidateSet('android', 'ios', 'windows', 'maccatalyst')]
[ValidateSet('android', 'ios', 'windows', 'maccatalyst', 'catalyst')]
[string]$Platform,

[Parameter(Mandatory = $false)]
Expand Down Expand Up @@ -482,12 +482,20 @@ $summaryScriptsDir = Join-Path $RepoRoot ".github/scripts"
$dryRunFlag = if ($DryRun) { @('-DryRun') } else { @() }

# 3a: Post PR review phases (pre-flight, gate, try-fix, report)
$aiSummaryCommentId = $null
$reviewScript = Join-Path $summaryScriptsDir "post-ai-summary-comment.ps1"
if (Test-Path $reviewScript) {
try {
Write-Host " 📝 Posting PR review summary..." -ForegroundColor Cyan
& $reviewScript -PRNumber $PRNumber @dryRunFlag
Write-Host " ✅ PR review summary posted" -ForegroundColor Green
$reviewOutput = & $reviewScript -PRNumber $PRNumber @dryRunFlag
# Capture comment ID from script output (format: COMMENT_ID=<id>)
$idLine = $reviewOutput | Where-Object { $_ -match '^COMMENT_ID=' } | Select-Object -Last 1
if ($idLine -match '^COMMENT_ID=(\d+)$') {
$aiSummaryCommentId = $Matches[1]
Write-Host " ✅ PR review summary posted (comment ID: $aiSummaryCommentId)" -ForegroundColor Green
} else {
Write-Host " ✅ PR review summary posted" -ForegroundColor Green
}
} catch {
Write-Host " ⚠️ PR review summary posting failed (non-fatal): $_" -ForegroundColor Yellow
}
Expand All @@ -500,7 +508,11 @@ $finalizeScript = Join-Path $summaryScriptsDir "post-pr-finalize-comment.ps1"
if (Test-Path $finalizeScript) {
try {
Write-Host " 📝 Posting PR finalize summary..." -ForegroundColor Cyan
& $finalizeScript -PRNumber $PRNumber @dryRunFlag
$finalizeArgs = @('-PRNumber', $PRNumber) + $dryRunFlag
if ($aiSummaryCommentId) {
$finalizeArgs += @('-ExistingCommentId', $aiSummaryCommentId)
}
& $finalizeScript @finalizeArgs
Write-Host " ✅ PR finalize summary posted" -ForegroundColor Green
} catch {
Write-Host " ⚠️ PR finalize summary posting failed (non-fatal): $_" -ForegroundColor Yellow
Expand Down
34 changes: 29 additions & 5 deletions .github/scripts/post-ai-summary-comment.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -831,19 +831,43 @@ if ($existingComment) {
$tempFile = [System.IO.Path]::GetTempFileName()
@{ body = $commentBody } | ConvertTo-Json -Depth 10 | Set-Content -Path $tempFile -Encoding UTF8

gh api --method PATCH "repos/dotnet/maui/issues/comments/$($existingComment.id)" --input $tempFile | Out-Null
Remove-Item $tempFile
$patchResult = $null
$commentId = $existingComment.id
try {
$patchResult = gh api --method PATCH "repos/dotnet/maui/issues/comments/$($existingComment.id)" --input $tempFile 2>&1
if ($LASTEXITCODE -ne 0) { throw "PATCH failed (exit code $LASTEXITCODE): $patchResult" }
Write-Host "✅ Review comment updated successfully" -ForegroundColor Green
} catch {
Write-Host "⚠️ Could not update comment (no edit permission?) — creating new comment instead: $_" -ForegroundColor Yellow

$newTempFile = [System.IO.Path]::GetTempFileName()
try {
@{ body = $commentBody } | ConvertTo-Json -Depth 10 | Set-Content -Path $newTempFile -Encoding UTF8
$newCommentJson = gh api --method POST "repos/dotnet/maui/issues/$PRNumber/comments" --input $newTempFile
$commentId = ($newCommentJson | ConvertFrom-Json).id
Write-Host "✅ Review comment posted as new (ID: $commentId)" -ForegroundColor Green
} finally {
Remove-Item $newTempFile -ErrorAction SilentlyContinue
}
} finally {
Remove-Item $tempFile -ErrorAction SilentlyContinue
}

Write-Host "✅ Review comment updated successfully" -ForegroundColor Green
# Output the comment ID so callers can pass it to subsequent scripts
Write-Output "COMMENT_ID=$commentId"
} else {
Write-Host "Creating new review comment..." -ForegroundColor Yellow

# Create temp file for new comment
$tempFile = [System.IO.Path]::GetTempFileName()
@{ body = $commentBody } | ConvertTo-Json -Depth 10 | Set-Content -Path $tempFile -Encoding UTF8

gh api --method POST "repos/dotnet/maui/issues/$PRNumber/comments" --input $tempFile | Out-Null
$newCommentJson = gh api --method POST "repos/dotnet/maui/issues/$PRNumber/comments" --input $tempFile
Remove-Item $tempFile

Write-Host "✅ Review comment posted successfully" -ForegroundColor Green
# Extract and output the new comment ID so callers can pass it to subsequent scripts
$newCommentId = ($newCommentJson | ConvertFrom-Json).id
Write-Host "✅ Review comment posted successfully (ID: $newCommentId)" -ForegroundColor Green

Write-Output "COMMENT_ID=$newCommentId"
}
91 changes: 69 additions & 22 deletions .github/scripts/post-pr-finalize-comment.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ param(
[Parameter(Mandatory=$false)]
[string]$SummaryFile,

[Parameter(Mandatory=$false)]
[string]$ExistingCommentId,

[Parameter(Mandatory=$false)]
[switch]$DryRun,

Expand Down Expand Up @@ -128,21 +131,41 @@ Write-Host "`nInjecting into AI Summary comment on #$PRNumber..." -ForegroundCol

# Find existing unified comment
$existingUnifiedComment = $null
try {
$commentsJson = gh api "repos/dotnet/maui/issues/$PRNumber/comments?per_page=100" 2>$null
$comments = $commentsJson | ConvertFrom-Json
foreach ($comment in $comments) {
if ($comment.body -match [regex]::Escape($MAIN_MARKER)) {
$existingUnifiedComment = $comment
Write-Host "✓ Found unified AI Summary comment (ID: $($comment.id))" -ForegroundColor Green
break

# If caller passed the comment ID (avoids GitHub API eventual-consistency race), fetch it directly
if (-not [string]::IsNullOrWhiteSpace($ExistingCommentId)) {
try {
$commentJson = gh api "repos/dotnet/maui/issues/comments/$ExistingCommentId" 2>$null
$directComment = $commentJson | ConvertFrom-Json
if ($directComment.body -match [regex]::Escape($MAIN_MARKER)) {
$existingUnifiedComment = $directComment
Write-Host "✓ Found unified AI Summary comment via passed ID (ID: $($directComment.id))" -ForegroundColor Green
} else {
Write-Host "⚠️ Passed comment ID $ExistingCommentId does not contain AI Summary marker — falling back to search" -ForegroundColor Yellow
}
} catch {
Write-Host "⚠️ Could not fetch comment by ID $ExistingCommentId — falling back to search" -ForegroundColor Yellow
}
if (-not $existingUnifiedComment) {
Write-Host "✓ No existing AI Summary comment found — will create new" -ForegroundColor Yellow
}

# Fallback: search through all PR comments
if (-not $existingUnifiedComment) {
try {
$commentsJson = gh api "repos/dotnet/maui/issues/$PRNumber/comments?per_page=100" 2>$null
$comments = $commentsJson | ConvertFrom-Json
foreach ($comment in $comments) {
if ($comment.body -match [regex]::Escape($MAIN_MARKER)) {
$existingUnifiedComment = $comment
Write-Host "✓ Found unified AI Summary comment (ID: $($comment.id))" -ForegroundColor Green
break
}
}
if (-not $existingUnifiedComment) {
Write-Host "✓ No existing AI Summary comment found — will create new" -ForegroundColor Yellow
}
} catch {
Write-Host "⚠️ Could not fetch comments: $_" -ForegroundColor Yellow
}
} catch {
Write-Host "⚠️ Could not fetch comments: $_" -ForegroundColor Yellow
}

# Build the final comment body
Expand Down Expand Up @@ -186,14 +209,38 @@ if ($DryRun) {
$tempFile = [System.IO.Path]::GetTempFileName()
@{ body = $finalComment } | ConvertTo-Json -Depth 10 | Set-Content -Path $tempFile -Encoding UTF8

if ($existingUnifiedComment) {
Write-Host "Updating unified comment ID $($existingUnifiedComment.id)..." -ForegroundColor Yellow
$result = gh api --method PATCH "repos/dotnet/maui/issues/comments/$($existingUnifiedComment.id)" --input $tempFile --jq '.html_url'
Write-Host "✅ PR finalize section updated: $result" -ForegroundColor Green
} else {
Write-Host "Creating new unified comment on PR #$PRNumber..." -ForegroundColor Yellow
$result = gh api --method POST "repos/dotnet/maui/issues/$PRNumber/comments" --input $tempFile --jq '.html_url'
Write-Host "✅ Unified comment posted: $result" -ForegroundColor Green
}
try {
if ($existingUnifiedComment) {
Write-Host "Updating unified comment ID $($existingUnifiedComment.id)..." -ForegroundColor Yellow
$patchResult = $null
try {
$patchResult = gh api --method PATCH "repos/dotnet/maui/issues/comments/$($existingUnifiedComment.id)" --input $tempFile --jq '.html_url' 2>&1
if ($LASTEXITCODE -ne 0) { throw "PATCH failed (exit code $LASTEXITCODE): $patchResult" }
Write-Host "✅ PR finalize section updated: $patchResult" -ForegroundColor Green
} catch {
Write-Host "⚠️ Could not update comment (no edit permission?) — creating new comment instead: $_" -ForegroundColor Yellow
# Rebuild the comment body as a standalone new comment (not an injection into existing)
$standaloneBody = @"
$MAIN_MARKER

Remove-Item $tempFile
## 🤖 AI Summary

$finalizeSection
"@
$standaloneTempFile = [System.IO.Path]::GetTempFileName()
try {
@{ body = $standaloneBody } | ConvertTo-Json -Depth 10 | Set-Content -Path $standaloneTempFile -Encoding UTF8
$result = gh api --method POST "repos/dotnet/maui/issues/$PRNumber/comments" --input $standaloneTempFile --jq '.html_url'
Write-Host "✅ Unified comment posted (new): $result" -ForegroundColor Green
} finally {
Remove-Item $standaloneTempFile -ErrorAction SilentlyContinue
}
}
} else {
Write-Host "Creating new unified comment on PR #$PRNumber..." -ForegroundColor Yellow
$result = gh api --method POST "repos/dotnet/maui/issues/$PRNumber/comments" --input $tempFile --jq '.html_url'
Write-Host "✅ Unified comment posted: $result" -ForegroundColor Green
}
} finally {
Remove-Item $tempFile -ErrorAction SilentlyContinue
}
15 changes: 2 additions & 13 deletions .github/skills/pr-finalize/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -127,16 +127,10 @@ Examples:
## Description Requirements

PR description should:
1. Start with the required NOTE block (so users can test PR artifacts)
2. Include the base sections from `.github/PULL_REQUEST_TEMPLATE.md` ("Description of Change" and "Issues Fixed"). The skill adds additional structured fields (Root cause, Fix, Key insight, etc.) as recommended enhancements for better agent context.
3. Match the actual implementation
1. Include the base sections from `.github/PULL_REQUEST_TEMPLATE.md` ("Description of Change" and "Issues Fixed"). The skill adds additional structured fields (Root cause, Fix, Key insight, etc.) as recommended enhancements for better agent context.
2. Match the actual implementation

```markdown
<!-- 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
[Must match actual implementation]

Expand Down Expand Up @@ -229,11 +223,6 @@ Example: "Before: Safe area applied by default (opt-out). After: Only views impl
Use structured template only when existing description is inadequate:

```markdown
<!-- 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!

### Root Cause

[Why the bug occurred - be specific about the code path]
Expand Down
4 changes: 0 additions & 4 deletions .github/skills/pr-finalize/references/complete-example.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,10 +9,6 @@ This example shows a PR description optimized for future agent success.

## Description
```markdown
> [!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!

### Root Cause

In `MauiView.GetAdjustedSafeAreaInsets()` on iOS, views that don't implement `ISafeAreaView` or `ISafeAreaView2` (such as `ContentPresenter`, `Border`) were falling through to return `baseSafeArea`. This applied full device safe area insets to views that never opted into safe area handling, causing double-padding when used inside ControlTemplates.
Expand Down
Loading
Loading