Guard retained Windows provider pins against drift - #379
Merged
Merged
Conversation
Compare product and investigation provider metadata with isolated drift regressions. Record the exact public source-retention tags and active narrowly scoped provider protection rules. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 8a98a529-f045-4c43-979c-00bae7640885 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
Retain the exact public Windows provider sources and prevent the product and investigation pin files from silently diverging. This follows the merged packaging milestone in #378 without changing provider SHAs, build artifacts, or product behavior.
Changes
Provider retention already applied
Both forks now expose annotated tag
graphcode-windows-baseline-2026-09-17:coneilen/winghostty1d6a0503178f73884a74f842f60e553f8613efaef5abc059e4ca58b376eb209313aca7784659c67923625509/23625510coneilen/zmx93e424c00c21c5a0313b038db02393e2cedb498e029e11d2b19162fb3bdf90c8270237d303b8bfb423625508/23625511Active tag rulesets prohibit updates/deletion of
refs/tags/graphcode-windows-*, with no bypass actors. Active branch rulesets prohibit deletion/non-fast-forward changes tographcode-hostandgraphcode-quickchat-hang; normal forward branch development remains allowed.API readback confirms the exact rules, ref scopes, empty bypass lists, and
current_user_can_bypass=never. Anonymousgit ls-remoteconfirms both annotated refs and their peeled commits. No destructive update/deletion probe was attempted. Administrators retain the ability to edit rulesets or repository availability.These are source-retention tags, not cryptographically signed product releases or immutable archival storage. No installer/binary asset was published, and collaborator permissions were not changed. Public CI source fetches do not require provider credentials. Bootstrap and packaging still resolve exact commit SHAs.
Standalone provider CI caveat
The tag triggered Winghostty's existing push workflow at unchanged
f5abc059. Run 35276439353 failed before compilation whenbitsadmincould not download the ImGui archive without a Content-Length header (0x80200011); the independent portable-package smoke job passed.The earlier run at the same pin instead failed because the offline-cache regression forced
.zig-global-cacheafter seeding had populated.zig-cache. These are unresolved provider CI defects, not a green standalone-provider validation claim. This PR neither moves the retention tag/pin nor skips failing provider jobs. GraphCode's host integration gates are separate evidence.Test plan
RED:
pwsh -NoProfile -File Tools\windows\Tests\ProviderPins.Tests.ps1->RED: product winghostty.repository drift was acceptedbefore the cross-file comparison was implemented.GREEN:
pwsh -NoProfile -File Tools\windows\Tests\ProviderPins.Tests.ps1->Provider pin no-divergence contracts: PASS, covering both-sided drift, missing/extra fields, type changes, schema drift, matching inputs, and reordered properties.REGRESSION:
pwsh -NoProfile -File Tools\windows\validate.ps1 -Task terminal-gate-> real pinned-provider builds, independent/shared attach and restart, persistent history, working-directory checks, destroy/recreate stress, and cleanup pass.TerminalGate.Tests.ps1,ValidationRunner.Tests.ps1, andgit diff --checkalso pass.Scope
This PR changes validation and documentation only. Provider source pins, native product code, shared Swift/macOS behavior, signing policy, protected GraphCode baseline branches, and required-check definitions are unchanged. Production certificate/publisher policy, release-maintainer arrangements, signed installer/artifact publication, updater install/relaunch, and the live enforcement probes in #374 remain separate.
Hosted evidence
All eight required PR checks pass at
9851d558d686536b38311c389c0379ccb4b0c0c5:Current main is an ancestor of this exact head, and the worktree is clean.
No separate full-pinned repeated-real-product dispatch was run for this test/documentation-only change; the previous packaging dispatch remains evidence only for
3b5556e. The standalone Winghostty failures documented above remain unresolved and are not overridden by GraphCode's integration checks.Checklist