Skip to content

feat(release): add reproducible preview artifacts - #8

Merged
Nanako0129 merged 1 commit into
mainfrom
codex/phase10-release-artifacts
Jul 27, 2026
Merged

feat(release): add reproducible preview artifacts#8
Nanako0129 merged 1 commit into
mainfrom
codex/phase10-release-artifacts

Conversation

@Nanako0129

Copy link
Copy Markdown
Owner

Summary

  • centralize the current TokenBar product identity and 0.1.0-preview.1 version contract in one MSBuild property source
  • pin .NET, Rust, Cargo, and NuGet inputs and add clean-checkout x64/ARM64 private unsigned artifact validation
  • add the bounded --startup-smoke runtime gate and keep CI App uploads limited to sanitized evidence and checksums

Verification

  • scripts/check.sh: 309 FFI, 1,290 core with one ignored, 285 .NET, and P/Invoke smoke
  • locked Windows x64 and ARM64 artifact, PE, resource, and native-byte validation
  • disposable ARM64 account startup smoke with outbound blocked and unchanged production baselines
  • x64 held-mutex startup-smoke E2E: nonzero exit and no sentinel
  • actionlint, XML/JSON validation, git diff --check
  • fresh completed-work verifier: CONFIRMED

Scope boundary

This is the Phase 10 private reproducible-artifact foundation only. It keeps the Windows product, executable, package, and artifact identity as TokenBar. It does not add Velopack, signing, installers, winget/Scoop manifests, a Syrtis rename, a public release, or an updater identity.

Establish the Windows 0.1.0-preview.1 private artifact contract around Directory.Build.props. Keep TokenBar as the product identity, derive the App assembly, executable, and archive basename from TbProductName, and retain 0.1.0.0 as the numeric assembly, file, and manifest version.

Pin .NET SDK 10.0.301, Rust 1.96.1, direct NuGet package versions, and commit the generated NuGet lock graphs. Make local and CI Cargo and NuGet entry points fail closed with --locked and --locked-mode while preserving the existing Platform and RID to Rust target mapping.

Add scripts/build-app-artifact.ps1 for clean-checkout x64 and ARM64 self-contained publishing. The command validates toolchains, PE machines, WinUI PRI, XBF, assets, native byte equality, and version metadata, then emits a private unsigned ZIP, checksum, and sanitized evidence. CI uploads only the App checksum and evidence while retaining Smoke harness artifacts for three days.

Add the opt-in --startup-smoke host gate. It requires a fresh sentinel parent, atomically records the PID, informational version, architecture, and tray-ready stage after tray and service construction, returns nonzero on every failure including a held single-instance mutex, and shuts down through the tray owner. Document the disposable-account, outbound-blocked runtime gate and keep Velopack, signing, installers, package-manager manifests, Syrtis renaming, and public release outside Phase 10.

Verification: scripts/check.sh passed 309 FFI tests, 1,290 core tests with one ignored, 285 .NET tests, and the P/Invoke smoke. Windows locked x64 and ARM64 artifact, PE, and resource validation passed; ARM64 startup smoke preserved all production baselines; the x64 held-mutex startup-smoke E2E returned exit code 1 without a sentinel. actionlint, XML and JSON validation, git diff --check, and a fresh outcome verifier also passed.
@Nanako0129
Nanako0129 merged commit 01ffb31 into main Jul 27, 2026
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant