You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
fix(ci): preserve cleanup evidence on lock release - #11
Windows resource-proof/classifier and activation retry suite
workflow-policy tests (10/10)
Vitest (365 passed, 2 skipped)
TypeScript typecheck
changed-file formatting and git diff --check
lint (17 existing warnings, 0 errors)
Note
Medium Risk
Changes affect organization Unity lock release and runner quarantine semantics; incorrect classification could block CI or mis-report license seat safety, but scope is CI scripts and workflow only.
Overview
Tightens Windows Unity lock lifecycle so release always carries schema-valid cleanup evidence and the canary cannot pass on partial proof.
Cleanup classification now runs whenever acquire is release-eligible (success, failure, or cancelled—not only success). The classifier takes quarantine-recovered from lock acquire: pre-build head rejection counts as cleanup-confirmed only when no same-runner quarantine was inherited; quarantine recovery or missing recovery evidence yields cleanup-evidence-unknown instead of falsely confirming safety.
Lock release maps classifier output to typed schema-5 fields: resource-cleanup-status is confirmed only for the (resource-safe=true, resource-reason=cleanup-confirmed) tuple; resource-reason is normalized to cleanup-confirmed, return-missing-positive-evidence, or cleanup-evidence-unknown. The post-release verify step requires both CLEANUP_RESOURCE_SAFE and CLEANUP_RESOURCE_REASON=cleanup-confirmed.
Tests/contracts: test-windows-resource-proof.ps1 adds quarantine/cancelled-head cases; RC014 in verify-resource-cleanup-contract.mjs pins the new workflow env, release expressions, and verify script checks.
Reviewed by Cursor Bugbot for commit baaf8d3. Bugbot is set up for automated code reviews on this repo. Configure here.
Please review the exact head ea5704787d29abecd1d27361dcc26f23cf02af4b, including acquire failure/cancellation, inherited quarantine, partial classifier outputs, and the final proof tuple.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This follows up on the late Cursor Bugbot finding in #10: #10 (comment)
Validation
actionlint(workflow parse; optional external linters unavailable locally)git diff --checkNote
Medium Risk
Changes affect organization Unity lock release and runner quarantine semantics; incorrect classification could block CI or mis-report license seat safety, but scope is CI scripts and workflow only.
Overview
Tightens Windows Unity lock lifecycle so release always carries schema-valid cleanup evidence and the canary cannot pass on partial proof.
Cleanup classification now runs whenever acquire is release-eligible (success, failure, or cancelled—not only success). The classifier takes
quarantine-recoveredfrom lock acquire: pre-build head rejection counts ascleanup-confirmedonly when no same-runner quarantine was inherited; quarantine recovery or missing recovery evidence yieldscleanup-evidence-unknowninstead of falsely confirming safety.Lock release maps classifier output to typed schema-5 fields:
resource-cleanup-statusisconfirmedonly for the(resource-safe=true, resource-reason=cleanup-confirmed)tuple;resource-reasonis normalized tocleanup-confirmed,return-missing-positive-evidence, orcleanup-evidence-unknown. The post-release verify step requires bothCLEANUP_RESOURCE_SAFEandCLEANUP_RESOURCE_REASON=cleanup-confirmed.Tests/contracts:
test-windows-resource-proof.ps1adds quarantine/cancelled-head cases; RC014 inverify-resource-cleanup-contract.mjspins the new workflow env, release expressions, and verify script checks.Reviewed by Cursor Bugbot for commit baaf8d3. Bugbot is set up for automated code reviews on this repo. Configure here.