Skip to content

Fix Unity 6000.6 progress controls and issue debt - #765

Open
Eli Pinkerton (wallstop) wants to merge 11 commits into
mainfrom
fix/unity-6000-6-and-issue-debt
Open

Fix Unity 6000.6 progress controls and issue debt#765
Eli Pinkerton (wallstop) wants to merge 11 commits into
mainfrom
fix/unity-6000-6-and-issue-debt

Conversation

@wallstop

@wallstop Eli Pinkerton (wallstop) commented Sep 11, 2026

Copy link
Copy Markdown
Collaborator

DISCLOSURE: LLM-GENERATED TEXT

Why:

Unity 6000.6 no longer compiles the legacy UI Toolkit progress-control factories, two audited reliability issues could corrupt pooled writer state or discard exception diagnostics, and the Unity CI/reviewer automation needed current repository policy.

What:

  • Use generated UXML elements and attributes for all seven progress controls on Unity 6 while retaining the legacy factory path on Unity 2021.3 and 2022.3.
  • Preserve Unity 6000.5 coverage, add released 6000.6.0f1, remove obsolete 6000.3, and run edit/play/standalone sequentially inside one job per supported version.
  • Run benchmarks once on the latest editor instead of a four-cell matrix, preserving benchmark selection and samples.
  • Cancel superseded Unity test and benchmark runs so stale work cannot starve the self-hosted runner fleet.
  • Target release export and unitypackage smoke with the latest supported editor, 6000.6.0f1.
  • Add checksum-verified Windows runner installation with an AdminPrepare → UserInstall → AdminConfigure handoff, and provision every requested Unity build target through the Full profile.
  • Reject invalid pooled writer advances, negative hints, and capacity overflow without mutating writer state.
  • Preserve exception types, inner exceptions, and stack traces throughout runtime and editor diagnostic logs.
  • Always act on review input from wallstop, Cursor Bugbot, and GitHub Copilot's review/coding agents, with durable linter and self-test coverage.
  • Add UXML import/default-size coverage, writer boundary tests, documentation, changelog entries, and CI contract tests.

Fixes #759
Fixes #760
Fixes #762

Type of Change

  • Bug fix (non-breaking change that fixes an issue)
  • New feature (non-breaking change that adds functionality)
  • Breaking change (fix or feature that would cause existing functionality to change)
  • Documentation update
  • Refactor (code change that neither fixes a bug nor adds a feature)

Checklist

  • I have added tests that prove my fix is effective or my feature works
  • I have updated the documentation accordingly
  • I have updated the CHANGELOG
  • My changes do not introduce breaking changes, or breaking changes are documented

Validation

  • npm run validate:tests:fast — 87/87 contract groups passed
  • npm run validate:content — passed
  • npm run lint:spelling — passed
  • Editor test typecheck — zero warnings and errors
  • CSharpier, actionlint, YAML, line-ending, and staged-file preflight checks — passed
  • Unity 6000.4.6f1 generated-UXML compilation — zero warnings and errors
  • GitHub Actions checks for the current head are in progress

Note

High Risk
Large CI matrix and concurrency changes affect licensed Unity runs, release exports, and runner provisioning; incorrect cleanup or version pins could block merges or ship the wrong editor build.

Overview
This PR adds Unity 6000.6.0f1 as the canonical release/latest editor, drops 6000.3 from CI, and threads the new version through issue templates, unity-versions.json, release export, and unitypackage smoke pins with drift guards.

CI behavior changes: Unity Tests now matrix on Unity version only—each job runs editmode, playmode, and standalone (plus acceptance on dispatch) under one lock per version, with cancel-in-progress concurrency so superseded runs release the fleet faster. Benchmarks collapse to a single 6000.6 playmode leg (no multi-version matrix or version dispatch input). Runner bootstrap splits host prerequisites from a serialized per-version Unity maintenance matrix. Failed-test diagnostics ignore failed suites whose failure site is Child, avoiding duplicate aggregate suite noise.

Product fixes: Seven UI Toolkit progress controls gain Unity 6 [UxmlElement] / [UxmlAttribute] paths while keeping legacy UxmlTraits on 2021/2022; new editmode UXML tests and EditorTestCheck Styles inclusion back that. PooledArrayBufferWriter rejects invalid Advance/EnsureCapacity without corrupting state. Broad exception logging switches from Message to full exception text (tests updated for repair flows).

Docs/policy: Changelog entries for #759#762; agent guidance names wallstop, Cursor Bugbot, and Copilot bots as inputs that do not require a human pause.

Reviewed by Cursor Bugbot for commit d213445. Bugbot is set up for automated code reviews on this repo. Configure here.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

Comment thread Styles/Elements/Progress/LiquidProgressBar.cs
Comment thread .github/ISSUE_TEMPLATE/bug_report.yml
Comment thread .github/workflows/unity-tests.yml
Comment thread .github/workflows/unity-benchmarks.yml
Restore Unity 6 progress bar default sizing reported by Cursor Bugbot and cover the trusted feedback identities in repository policy and audit tests.
Comment thread .github/ISSUE_TEMPLATE/bug_report.yml
Comment thread .github/unity-versions.json Outdated
Comment thread Styles/Elements/Progress/ArcedProgressBar.cs

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

Comment thread Tests/Editor/Styles/ProgressBarUxmlTests.cs
Retain Unity 6000.5 coverage while adding 6000.6, move specialized coverage to the latest editor, run benchmarks only on latest Unity, and keep issue version choices newest-first.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

Comment thread scripts/unity/ensure-editor.ps1

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stale Bugbot comment from a previous run.

Comment thread .github/workflows/unity-tests.yml
Correct stale exception assertions and stop NUnit child-suite rollups from inflating failure diagnostics. Require complete Android player payloads so maintenance cannot accept a partial installation.
Update Unity CLI before provisioning and force documented automation settings. Retry installer and updater failures through bounded process-tree watchdogs. Split host setup from serialized per-version maintenance so one slow editor cannot exhaust every editor's timeout.

@cursor cursor Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit d13383e. Configure here.

Comment thread scripts/unity/ensure-editor.ps1
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

1 participant