Repository navigation
Preserve action authority across worker imports - #950
Merged
Merged
Conversation
Bind and pin action authorization through final publication, and exercise the real entry journal, harmless launcher custody, geometry preconditions and cleanup without product or provider launches. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Signed-off-by: Colin Neilens <coneilen@microsoft.com>
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
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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
Prevent the action runner's worker import from resetting its authorization path/hash and masking a caught setup failure. Add a no-product production-entry dry run before any separately authorized action attempt.
Changes
Invoke-MatchedActionSupplement.ps1 -DryRun: a non-authorizing binding, real contained harmless launcher release, shared physical-work-area/DPI geometry preconditions, terminal journal and positive empty-job/launcher-EOF cleanup.Test plan
RED: pwsh -NoProfile -File Tools\windows\Tests\ActionWorkerImport.Tests.ps1 -ScratchRoot C:\gcar\red -> Worker definitions import reset caller authorization: path='' hash=''.
GREEN: pwsh -NoProfile -File Tools\windows\Tests\ActionWorkerImport.Tests.ps1 -ScratchRoot C:\gcar\focused-green -> 18/18 passed, zero skips; production-entry canary success and setup refusal both publish five numbered snapshots.
REGRESSION: pwsh -NoProfile -File Tools\windows\validate.ps1 -Task hardening -> repeated-runs PASS 3/3.
The focused suite uses a clean fixture repository containing byte-identical production entry scripts, not a session wrapper or an AST projection. It separately asserts the single target specification is harmless
pwsh -Command 'exit 0'and the job journal contains only that PowerShell image and, when present, its owned system console host. No product/provider process is launched by the dry run. Actual product-window identity, native actions and parity are not claimed.Final committed-source local checks:
Original W1 refusal is preserved; no live W1 success is claimed. The committed production entry was run with the hash-verified original
C:\o8\job.json(SHA256A9F15A9499133CB8B686A8E909326772359634FE481AA91FF90D081BF94B8842, 7767 bytes) against current implementation head2251361e4fa10b8e276a7cec1279ee2830854d25. The expired historical authority was not reused. The direct entry command executed was:Result: bounded setup refusal,
outer=2906x1910 work=1920x1032, preserved as the primary failure in manifest/release, five numbered snapshots, zero product/provider launches, and positive held-job-empty/launcher-EOF cleanup with zero survivors/failures. The path/hash survived import and the actual launcher release consumed sequence 2 in this exact action-owned journal.Same-thread native before/during/after probes confirmed that the shared query already enters PMv2 awareness 2 and restores the original context. At that attempt, PMv2 reported DPI96, native monitor1920x1080/work1920x1032; a time-aligned coordinator probe agreed. This was an actual desktop change, not a missing-PMv2 workaround. Subsequently the user restored the desktop; coordinator admission at 2026-10-29T10:37:00.2253004-07:00 reports awareness2, DPI192, monitor3840x2160/work3840x2064. After fully green CI and merge, a distinct-root original-W1 production dry run will verify that restored geometry inside its own process. That admitted production-entry proof is still pending, and is not a W1 product retry. No OS/display changes or bypass were performed by this tooling session. Product-window identity/metrics and the sealed earlier W1 primary exception remain unproved/unknown; Phase 2 is not authorized by this PR.
Sealed refusal evidence:
C:\gcar\production-original-w1\dry-run-output\action-manifest.json: SHA2568244A9B6C31E58A25097E366E3E105C0F5B44EE727C7B417E6B1D5D7BFC758B5.C:\gcar\production-original-w1\dry-run-output\action-release.json: SHA2566795F72279CDC29172EC52E48F66D04186CD445C1A1B310C0ABB309616DE3747,FAILED_ZERO_SURVIVORS,HELD_EXIT_AND_EOF_PROVEN.dry-run-runs\007fef62b6ba4b1ca9dae6c5b26743fc\process-journal\000005.json: SHA2560CD220A38FD211F638805B37F926E53B03B4F02A04E5803EA5CDA073B308993E.production-entry-evidence.json: SHA2561A2D607724339A84167D4A0B0F5BBFD1E5E7BC728A9764E44BF27EE4B1BAB3AB; inventory verified without repeating the production attempt.CI attempt history: Windows2025 hardening attempt 1 failed the existing contained-job timeout contract with a stdout.log sharing violation in unchanged
UiCaptureDriver.psm1; the report gate then failed downstream (180/182), before the new18 suite ran. The failure log is retained, and only the failed job was rerun on unchanged head2251361e. No assertion was weakened or source changed to obtain a retry. Merge requires all latest exact-head required checks to be green, without bypass.Other evidence corrections are retained separately: the first full-suite invocation refused missing prebuilt fixtures (
PrebuiltFixtureRequired); a stale-fixture attempt correctly refusedPrebuiltFixtureSourceafter a source spelling correction, so fresh source-bound fixtures were prepared. First complete baseline runs reported180/182 and183/185 because helper whitespace broke an existing literal source contract and its downstream preflight gate; exact expected spelling was restored. The obsolete first ValidationRunner attempt was stopped rather than called green. Initial zmx build without the canonical target failed; pinned-Dtarget=x86_64-windows-gnubuild passed. An expanded negative assertion exposed the scalar failure shape, now corrected to an array. A launch-census assertion was corrected to admit only the held job's systemconhost.exe, not arbitrary images. A session evidence inventory helper initially usedterminal.pathinstead ofterminal.name; reporting was corrected read-only without a production retry. Failed logs were preserved rather than overwritten.macOS
make test/make checkare not run on this Windows host; no macOS/shared Swift/product files change.Checklist
git commit -s) per the DCOmake test)make check)