Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
17 commits
Select commit Hold shift + click to select a range
8830c55
Add nightly-fix-finder agentic workflow
jonathanpeppers May 14, 2026
8416cdd
Add pull_request trigger for workflow file changes
jonathanpeppers May 14, 2026
518dbba
Address review feedback on nightly-fix-finder workflow
jonathanpeppers May 14, 2026
48faaab
Fix assign_to_agent: agent must pass issue_number
jonathanpeppers May 14, 2026
f519c97
Set min-integrity: none for GitHub tools
jonathanpeppers May 14, 2026
080f9bb
Fix assign_to_agent: remove # prefix from temporary_id reference
jonathanpeppers May 14, 2026
5bbd4a5
Use ANDROID_TEAM_PAT for assign-to-agent
jonathanpeppers May 14, 2026
09ab60e
Exclude Android.Runtime and Java.Interop from Category 4 scan
jonathanpeppers May 14, 2026
3492e3f
Disable report-failure-as-issue for safe-outputs
jonathanpeppers May 14, 2026
e4c23d9
Use RANDOM for category selection, fix bash pipefail issues
jonathanpeppers May 14, 2026
cdb2494
Only scan one random category per run, not all 10
jonathanpeppers May 14, 2026
23b863e
Use -print0/xargs -0 for filename safety in Category 3
jonathanpeppers May 14, 2026
91f9cf8
Require XA error code docs in reviewer and fix-finder
jonathanpeppers May 15, 2026
0a7523b
Disable close-older-issues to avoid orphaning active PRs
jonathanpeppers May 15, 2026
306551c
Remove Test Coverage Gaps category from fix-finder
jonathanpeppers May 15, 2026
5826d18
Replace Code Style category with General Mistakes
jonathanpeppers May 15, 2026
9a129c1
Add category dropdown for manual workflow_dispatch
jonathanpeppers May 18, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@ causes broken builds for every .NET Android developer.
| **Use `AsyncTask` for background work** | Tasks that need `async`/`await` should extend `AsyncTask` and override `RunTaskAsync()`. It handles `Yield()`, `try`/`finally`, and `Reacquire()` automatically. Use `AsyncTask.Log*` helpers for logging from the background thread — calling `Log.LogMessage` directly can cause IDE hangs. Use full paths on background threads (`Environment.CurrentDirectory` may differ if the task is on another MSBuild node). Leverage the `WhenAll` extension for parallel work over `ITaskItem[]`. |
| **Return `!Log.HasLoggedErrors`** | `RunTask()` must return `!Log.HasLoggedErrors`. Do not return `true`/`false` directly — it skips the centralized error-tracking mechanism. |
| **Use `Log.LogCoded*` methods** | Errors and warnings must use `Log.LogCodedError("XA####", …)` or `Log.LogCodedWarning("XA####", …)` — never bare `Log.LogError` without a code. Error messages should come from `Properties.Resources`. |
| **XA error codes** | Error codes follow `XA####` (4+ digits). New codes must not collide with existing ones. Check `Properties/Resources.cs.resx` for used codes. Every new code must have a documentation entry and be localized. (Postmortem `#10`) |
| **XA error codes** | Error codes follow `XA####` (4+ digits). New codes must not collide with existing ones. Check `Properties/Resources.cs.resx` for used codes. Every new code must have a corresponding markdown documentation file at `Documentation/docs-mobile/messages/xa####.md` (following the existing format with frontmatter, example messages, issue explanation, and solution), and the code must be added to the table of contents in `Documentation/docs-mobile/messages/index.md`. (Postmortem `#10`) |
| **`[Required]` properties** | `[Required]` properties must be non-nullable with a default: `public string Foo { get; set; } = "";` or `public ITaskItem[] Bar { get; set; } = [];`. Non-`[Required]` and `[Output]` properties must be nullable (`string?`, `ITaskItem[]?`). Mark properties `[Required]` when the task crashes without them. (Postmortem `#51`) |
| **`UsingTask` for internal tasks** | `<UsingTask/>` elements for `xa-prep-tasks` and `BootstrapTasks` (internal, not shipped) must use `TaskFactory="TaskHostFactory"` and `Runtime="NET"`. Do NOT add these attributes to shipped task definitions in `Xamarin.Android.Common.targets` or `Microsoft.Android.Sdk/*.targets`. |
| **Caching with `RegisterTaskObject`** | Use `BuildEngine4.RegisterTaskObject()` (via the `RegisterTaskObjectAssemblyLocal()` extension method) instead of `static` variables for sharing data between tasks or across builds. Use `as` for casts to avoid `InvalidCastException`. Cache keys should include context that invalidates properly (device target, file path, version). Cache primitive/small values only. |
Expand Down
Loading
Loading