Define multiplayer development gates and isolated U1 preflight - #319
Draft
VirtualAdam wants to merge 1 commit into
Draft
VirtualAdam wants to merge 1 commit into
VirtualAdam wants to merge 1 commit into
Conversation
Refs #240. Propose G0-G3 development, runtime and release gates without accepting U1 or enabling shared execution. Add read-only Windows fixture preflight, focused regression and CI coverage. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
This was referenced Sep 18, 2026
There was a problem hiding this comment.
🟡 Changes recommended
The preflight can falsely accept invalid or aliased Windows roots as safe and disjoint.
Get a fresh assessment by requesting another Copilot review.
Pull request overview
Defines multiplayer acceptance gates and adds a preparation-only Windows U1 fixture preflight.
Changes:
- Introduces 14 requirements, 37 test families, and G0–G3 gates.
- Adds read-only preflight checks with regression coverage.
- Integrates the regression into Windows CI and updates documentation.
File summaries
| File | Description |
|---|---|
.github/workflows/ci.yml |
Runs the preflight regression on Windows. |
docs/EVALS.md |
Documents preflight scope and limitations. |
docs/MULTIPLAYER_ACCEPTANCE_V1.md |
Defines the replacement acceptance contract. |
docs/README.md |
Links the new contract. |
tools/qa_multiplayer_preflight.ps1 |
Implements prerequisite checks and reporting. |
tools/qa_multiplayer_preflight.test.ps1 |
Tests path, port, source, tool, and registry guards. |
Review details
- Files reviewed: 6/6 changed files
- Comments generated: 1
- Review effort level: Balanced
💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.
Comment on lines
+18
to
+21
| foreach ($component in $Value.Replace('/', '\').Substring(3).Split('\', [StringSplitOptions]::RemoveEmptyEntries)) { | ||
| if ($component -match '[ .]$') { throw 'Trailing dots or spaces in path components are not supported.' } | ||
| } | ||
| $full = [IO.Path]::GetFullPath($Value) |
This was referenced Sep 18, 2026
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.
Description
Closes #318 after normal review, integration and explicit contract adoption.
Refs #240 and #239; does not close U1 or the multiplayer epic.
Base:
30ec3fab6acd566cc1fc1e574c8a6343d0ce0596.Head:
6fe6668479417a2df43dbe1f7e471b4dec21457a.Write scope: six files:
.github/workflows/ci.yml,docs/EVALS.md,docs/MULTIPLAYER_ACCEPTANCE_V1.md,docs/README.md,tools/qa_multiplayer_preflight.ps1, andtools/qa_multiplayer_preflight.test.ps1.No backend, database migration, dependency manifest, lockfile, credential or deployed service changes. No merge, auto-merge or deployment requested.
Native-capability check and limits
The repository already has
local_stack.psm1process ownership,owned_test_stack.mjsscoped restart checks and existing E2E drivers. This contribution does not duplicate them. The missing capability is a read-only, explicitly scoped fresh-U1-fixture preparation report plus a published replacement acceptance contract.The preflight uses existing Git, command discovery and Windows listener inventory. Rust/pnpm shims are not executed because they may download toolchains. A preparation pass is not source/build attestation, OS isolation, private artifact storage, independent browser identity or permission to launch. The actual U1 fixture, OIDC integration, M34-equivalent hostile matrix and exact owned shutdown remain open.
Type of change
How Has This Been Tested?
From the contribution worktree:
blockedfor missing Rust/Cargo, missing pnpm, unspecified approved registry and then-uncommitted source; it did not create the planned QA root. This is a truthful preparation result, not runtime acceptance.Not run locally:
cargo fmt, Clippy, Rust workspace tests,pnpm build:web,pnpm lint:webbecause Cargo/pnpm are absent. No new installation, full-stack run, browser test, hostile canary, production sign-in, physical-device test or provider inference was performed. Screenshots are not applicable to this CLI/docs slice. Hosted CI verdicts must be assessed on the exact PR head.Test configuration: Windows, PowerShell 7.4+ requirement, Node 22.14.0, Docker read-only connectivity 29.8.0. No SDK/provider runtime was used. Tests use synthetic directories and stubbed prerequisite observations; these are not evidence for the original U1 gate.
Checklist
This is a draft review contribution. Existing runtime gates, ownership, retained office data and the unresolved #242 browser-auth review are preserved.