Repository navigation
Compare Unity exits with loader snaps - #1020
Conversation
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit 6d1c99a. Configure here.
|
DISCLOSURE: LLM-GENERATED TEXT Session closeout — 2026-10-16 22:14 UTCThe user requested session end. PR #1018 remains open with successful CI and all three review threads resolved. PR #1019 remains open with all 28 checks terminal (22 successful, six expected skips) and no review findings. Neither PR was merged. PR #1020 is now draft, at unchanged head Remaining review defect: Cursor's “Restore fails without lease receipt” remains unresolved. The The real comparison was never dispatched or run. Shared-host configuration approval was requested but not received; “not intentionally enabled” describes configuration history only. No shared runner Unity.exe or system GlobalFlag was changed. Loader snaps remain an observed lead, with causation unproven. The native faults and the full acceptance scope of #343, #637 and #794 remain open. No further code change or experiment will be made in this session. |
Both CI runners have an unexpected Unity.exe loader-snaps flag. Add a disabled-by-default direct comparison before, during and after clearing only that bit. These diagnostic records cannot satisfy acceptance. Persist a bounded, checksummed original lease immediately before the attempted write. Automatic cleanup restores only its active write and preserves external edits before or after that ownership window. Independent workflow recovery and an explicit Apply command restore matching temporary values from the exact original data, kind, machine, key and registry view. Refuse conflicting state and require matching inputs, a selected passing case and natural exits. A real Windows regression reproduces cleanup overwriting an external edit before this lease writes. The corrected ownership phase passes that control and post-restoration edits for every supported value representation. Receipt-write failure prevents mutation. Interrupted-process recovery, exact string/type restoration, signed bits, permission refusal, damaged receipts and input drift are covered. Validation: 140 native Windows controls and 67 Linux controls pass. Windows-only cases are explicitly unavailable on Linux and required on Windows. Both preflight modes, full spelling, docs links, Markdown lint, strict MkDocs, YAML/actionlint, contract runner self-tests, PowerShell invocation and workflow enrollment/license controls pass. Two-pass review found and resolved the ownership defect; no findings remain. No version or changelog change is needed for this diagnostic tooling. Capture controls are now enrolled in the contract suite and Windows runner startup. Tests write only a new temporary HKCU key and remove it. No shared runner Unity.exe or system flags have been changed. The real configuration comparison has not run. Refs #343, #637, #794. Evidence: #343 (comment)
6d1c99a to
41e5eec
Compare
|
DISCLOSURE: LLM-GENERATED TEXT Linked #1019 → #1020 with GitHub's native stack API (stack #1021), as requested. The bottom PR #1019 merged as |
Save the exact original flag before debugger setup. Recovery can verify a pre-write stop without changing the registry. Active write evidence takes precedence; missing post-write evidence, damaged receipts, and external edits still fail. Validate 160 Windows controls and 75 Linux controls. Windows covers natural failure and process cancellation before the write, interrupted writes, exact restoration, and conflicting edits. A copy with the old read behavior fails on the missing pre-write lease. Shared runner settings were not changed. Pass changed-file preflight in both modes, focused workflow and PowerShell checks, actionlint, full spelling, documentation links, Markdown, strict MkDocs, and pre-push safety. No package API or runtime behavior changes.
|
DISCLOSURE: LLM-GENERATED TEXT The pre-write recovery fix is published at The user has now explicitly approved the one-time shared Windows loader-snaps comparison after CI and review pass. It has not been dispatched. No shared runner Unity.exe or system GlobalFlag has changed. I will wait for this exact head's full CI before dispatching once, then verify the before/disabled/restored outcomes, exact saved value/type restoration and licensed-job cleanup. The native-fault cause and the broader #343/#637 acceptance remain open. |
|
DISCLOSURE: LLM-GENERATED TEXT Current head Windows CI runs 159 passing capture controls on each tested host. The local Windows total is 160 because an absent Unity.exe flag adds an extra read-state assertion; the registry transaction/recovery coverage is the same. Linux retains 75 passing controls. With the user's explicit conditional approval satisfied, I dispatched the one-time loader-snaps comparison run 39002999733 once. Its SHA is exactly |
|
DISCLOSURE: LLM-GENERATED TEXT The one-time diagnostic reached job 117309748046 on ELI-MACHINE. Capture failed at the initial writable Artifact This exposes a remaining pre-write recovery gap: preparing evidence currently requires a writable handle. I am addressing this PR CI finding by saving the prepared lease through read-only access first and allowing unchanged-state recovery through read-only access. Missing or conflicting evidence must still fail. No permissions will be granted and the shared-host comparison will not be repeated. |
Prepare the checksummed original lease through a read-only handle before requesting write access. Verify an unchanged original value through read-only recovery; require write permission only for an active restoration. The one-time run 39002999733 on 91f2aca failed its initial writable OpenSubKey before any lease or flag write. Its independent restore lacked evidence. Artifact 12091003251 matches SHA-256 9fe3d77a669553fc9aa1c7890c3df0d5f314fa00bc95b24dcc865e032be83de5. No comparison phase ran; license and lock cleanup were confirmed. No permission changes or repeat experiment are authorized by this fix. Validation: 168 real Windows controls and 76 Linux controls pass. Windows uses a temporary HKCU key with a real deny-write ACL, proves unchanged recovery in prepared/active/restored phases, rejects conflicts, refuses a denied actual restoration, and restores exactly after permission returns. Both changed-file preflights, spelling (2975 files), PowerShell invocation lint, Markdown, and documentation links pass. Refs #343, #637
|
DISCLOSURE: LLM-GENERATED TEXT Fixed the denied-access CI finding in All 168 Windows controls and 76 Linux controls pass. Windows controls use a temporary HKCU key with a real deny-write ACL: unchanged prepared/active/restored states recover, conflicts remain untouched, a denied actual restoration fails, and restoration succeeds after the temporary ACL is removed. Both changed-file preflights, full spelling, PowerShell invocation lint, Markdown, and documentation links pass. The Windows test process exited naturally and was disposed. Fresh CI and review are required on this head before merge. |
|
DISCLOSURE: LLM-GENERATED TEXT Current-head Unity 6000.6 Standalone has one failure: an unexpected native allocator lifetime warning during A request to retry only this failed normal job was rejected with HTTP 403 because its containing workflow is still running; no retry started. I will wait for the other jobs and then request that single-leg retry. A passing retry will not resolve #393. No warning filtering, test skips, new implementation, or repeat shared-flag diagnostic is being added. This PR will not merge while its current-head required checks remain red. |
|
DISCLOSURE: LLM-GENERATED TEXT The original current-head matrix is terminal: five Windows jobs passed, one failed on the native allocator warning recorded in reopened #393. All six full logs were inspected and confirm healthy license cleanup and lock release. The passing Unity 2021 and 2022 logs retain UNKNOWN native reports; these remain tracked in #343 and are not acceptance evidence. With the workflow now completed and head still |
|
DISCLOSURE: LLM-GENERATED TEXT Current head The five successful first-attempt jobs were carried forward with their original timestamps, not rerun. Their full cleanup evidence remains verified. Native UNKNOWN reports in the passing 2021/2022 jobs remain tracked in #343. The one-time flag diagnostic was not repeated and made no flag write. #1022's remaining cancelled jobs are being retried after the classified watchdog race (#1023). Native stack #1021 will merge only after both current heads pass checks and final feedback review. |
|
DISCLOSURE: LLM-GENERATED TEXT Merged through GitHub native stack #1021 as The approved one-time diagnostic stopped before any flag write because registry access was denied. The resulting recovery CI finding is fixed here; no permissions were granted or comparison repeated. Native reports and broader acceptance remain open in #343/#637. The independent allocator-warning and watchdog defects remain open in #393/#1023. |

DISCLOSURE: LLM-GENERATED TEXT
Why: Unexpected runner loader snaps need a controlled comparison during native fault investigation.
What:
Refs #343, #637, #794
Note
High Risk
Opt-in mode writes the local-machine Unity.exe IFEO GlobalFlag on licensed Windows runners; incorrect lease or recovery logic could leave runner state wrong despite safeguards.
Overview
Adds an opt-in Unity Tests path (
native-loader-snaps-comparison) that runs native fault capture with loader snaps enabled, disabled, and restored instead of the usual direct/debugger pair. The workflow validates the combo (native-diagnostics, EditMode,acceptance: none), passes-CompareLoaderSnapsintocapture-native-fault.ps1, shortens per-phase timeout when comparing, and runs analways()restore step viarestore-native-loader-snaps.ps1.Introduces checksummed registry lease helpers (
native-loader-flag-lease.ps1) that temporarily clear only the loader-snaps bit onUnity.exeImage File Execution OptionsGlobalFlag, persist.prepared/ active receipts, restore infinally, and support interrupted-run recovery. Comparison mode enforces stable editor andpackages-lock.jsonhashes and requires the same single passing NUnit case in each phase.CI and docs: Windows runner diagnostics run
test-native-fault-capture.ps1 -RequireWindowsRegistry; contract tests andnpm run test:native-fault-capturecover lease, ACL, and workflow wiring. The Unity runners runbook documents the opt-in and manual restore.Reviewed by Cursor Bugbot for commit 7508f55. Bugbot is set up for automated code reviews on this repo. Configure here.