feat(client): establish clean-room foundations - #43
Merged
Merged
Conversation
|
🎉 This PR is included in version 1.0.0 🎉 The release is available on GitHub release Your semantic-release bot 📦🚀 |
zoeyrose
added a commit
that referenced
this pull request
Aug 8, 2026
## Summary - hand semantic-release tags to cross-platform packaging through a trusted `workflow_run` - publish only after both Linux and Windows packages succeed - support exact-tag repair of the empty v1.0.0 release while refusing asset replacement - document the atomic release contract ## Validation - `actionlint .github/workflows/*.yml` - `shellcheck tools/*.sh` - Rust format, Clippy, unit/integration/doc tests, architecture/provenance checks - Linux package workflow already passed independently in PR #43; Windows package execution is gated by this PR's workflow contract and post-merge repair run - `git diff --check` ## Review notes Deep review finding R8 records the GitHub-token event-chain failure and the fail-closed repair. The package resolver accepts only semantic version tags reachable from protected `main`; existing non-empty releases are immutable.
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.
Closes #1.
Closes #2.
Closes #3.
Closes #4.
Closes #5.
Closes #15.
Summary
Client validationcheck across Linux and WindowsCompatibility boundary
atrinik/protocolandatrinik/rendererdo not yet publish registry crates or GitHub releases. M1 recordsgame-protocol-1andscene-snapshot-1at narrow adapters and deliberately does not add forbidden sibling path/Git dependencies. Their released crates replace those placeholders in M2 without changing the frozen dependency direction.Provenance
All Rust, tests, docs, and synthetic fixtures are newly authored from public issue contracts. No classic/archived implementation, test, fixture, asset, or historical MIT grant was used. The reuse manifest records one behavior-only independent migration and one fail-closed excluded texture-tree example; the bundle asset allowlist is empty.
Deep review
The ignored workspace report is
build/deep-review-client-m1.md. Review iterations addressed generation tombstones, map-independent inventory generations, replacement/coordinate/quantity validation, action phase/ID policy, disconnect atomicity, duplicate/closed action queues, bounded platform backpressure, clock/clipboard/audio loss fakes, real repeated window lifecycle, resource-provider ownership, zero-component Rust SBOMs, and partial-release publication. No local finding remains.Automated validation
tools/validate.shManual verification
From the
atrinik/atrinikwrapper root:./atrinik worktree list client cd workspace/worktrees/client/m1-foundations env PATH=/tmp/atrinik-m1-tools/rust/bin:/tmp/atrinik-m1-tools/go/bin:/usr/local/cargo/bin:/usr/local/bin:/usr/bin:/bin tools/validate.sh cargo run --locked --package atrinik-client -- version cargo run --locked --package atrinik-client -- headless SDL_VIDEODRIVER=dummy cargo run --locked --package atrinik-client -- window 8Expected: validation succeeds; version prints Rust/target/protocol/renderer coordinates; headless reaches revision 2 in Playing; eight SDL3 windows create, resize, and destroy without output or failure. No display is required with the dummy driver. M1 has no network/playable topology, so no
uplifecycle is claimed yet.