Repository navigation
ci(scenario): the windows leg — GOEXE binaries, bash shell, empirical audit - #351
Merged
Merged
Conversation
… audit Phase 4 of the writ-deploy scenario (#346), the #91 audit's empirical slice. Binaries build with $(go env GOEXE) so Windows gets .exe, the harness resolves the suffixed binary, and the scenario job forces shell: bash (Windows run: defaults to PowerShell). Symlinks ride the runner's admin privilege; the harness sets HOME and USERPROFILE, with the product's HOME-only TargetOrder read noted as a real-Windows gap for the fuller #91 audit. The windows-latest matrix leg is the proof.
added 3 commits
August 8, 2026 17:19
…irst catch New-OpInventory stored walked directories with the OS separator and concatenated them raw into import paths, so Windows generated backslashed imports and the build died. ToSlash at the conversion. The scenario matrix also gains fail-fast: false — a failing leg must not cancel the other platforms' evidence (it canceled the green unix legs on this PR's first run).
…ch, ruled deeper
url.Parse reads a Windows drive letter as a one-letter URI scheme, so
string-to-resource construction died on every Windows path. The census
showed the constructors' file-URI input grammar had no user — no
script, no caller, no test — so instead of a disambiguation heuristic
the dual grammar is deleted: the input is a filesystem path, full
stop, and the RFC 8089 validation block goes with it. The one real
round-trip survives explicitly: catalog rehydration hands back the
provider's own emitted identity specific ("file://" + path), stripped
by TrimPrefix — the provider decoding only what it mints, exactly as
readback does. Input-domain tests pin the contract in both providers:
path and own-specific yield the same identity, windows-shaped paths
are paths, foreign-scheme strings are paths.
…o entries The windows leg deployed successfully end to end; the only failure was the assertion's unix-shaped floor of three status entries. Windows matches exactly the two base projects (no Unix/Darwin variants apply), so the floor is platform-aware.
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.
Phase 4 of #346 — the #91 audit's empirical slice, proven (or falsified) by this PR's own windows-latest scenario leg. Up-front fixes:
$(GOEXE)suffixing in the Makefile,.exe-aware binary resolution in the harness,shell: bashfor the scenario job. Known reliance: runner admin privilege for symlink creation. Product gap recorded for the fuller audit:TargetOrderreadsHOMEonly (the harness sets bothHOMEandUSERPROFILE; real Windows users have only the latter).