docs(headless): close K0 and activate K1
Pin the tested Windows/Linux portability boundary, exact rollback, dependency audit, and synchronized architecture and roadmap state before starting the production single-session host. Co-authored-by: Codex <noreply@openai.com>
This commit is contained in:
parent
aada8a37c1
commit
fbebb91848
10 changed files with 123 additions and 12 deletions
64
docs/research/2026-07-27-slice-k0-portability-boundary.md
Normal file
64
docs/research/2026-07-27-slice-k0-portability-boundary.md
Normal file
|
|
@ -0,0 +1,64 @@
|
|||
# Slice K0 portability boundary closeout
|
||||
|
||||
## Outcome
|
||||
|
||||
K0 completed at `aada8a37c1e933f9f0a3f41dc4f05615b01023bc`.
|
||||
The repository now has a dedicated `AcDream.Headless` executable and matching
|
||||
test project. The executable references only `AcDream.Runtime`; its transitive
|
||||
closure contains no App, UI, Silk.NET, OpenAL, Arch, ImGui, renderer, audio, or
|
||||
native-window assembly.
|
||||
|
||||
Exact rollback:
|
||||
|
||||
```text
|
||||
git revert aada8a37c1e933f9f0a3f41dc4f05615b01023bc
|
||||
```
|
||||
|
||||
## Boundary
|
||||
|
||||
- `--help` runs without constructing Runtime or loading presentation code.
|
||||
- `validate --config <path>` performs strict, case-sensitive, versioned JSON
|
||||
validation without connecting.
|
||||
- Unknown properties, missing required fields, duplicate/empty session IDs,
|
||||
unsupported versions, malformed files, and secret-shaped unknown fields fail
|
||||
with deterministic exit codes.
|
||||
- Arbitrary command arguments and secret values are not reflected into
|
||||
diagnostics.
|
||||
- Project, dependency-manifest, and loaded-assembly tests enforce the boundary.
|
||||
- Runtime's existing dependency-project test now resolves MSBuild paths on
|
||||
Windows and Linux and remains valid under isolated artifact roots.
|
||||
|
||||
## CI and local Linux proof
|
||||
|
||||
`.github/workflows/headless-portability.yml` runs on Windows and Ubuntu. It
|
||||
builds Plugin.Abstractions, Core, Core.Net, Content, Runtime, and Headless,
|
||||
then tests only the presentation-free Core.Net, Content, Runtime, and Headless
|
||||
closures. Historical `AcDream.Core.Tests` App-integration fixtures remain in
|
||||
the complete-solution lane and are deliberately excluded from the no-App
|
||||
restore lane.
|
||||
|
||||
Local Ubuntu 24.04 / .NET 10.0.302 evidence:
|
||||
|
||||
- Plugin.Abstractions and Core build: pass.
|
||||
- Core.Net tests: 600/600.
|
||||
- Content tests: 119/119.
|
||||
- Runtime tests: 395/395.
|
||||
- Headless tests: 12/12.
|
||||
- Headless `--help`: exit 0.
|
||||
|
||||
Exact Windows Release evidence:
|
||||
|
||||
- solution build: pass (17 pre-existing Core-test warnings);
|
||||
- complete solution: 8,708 pass / 5 intentional skips;
|
||||
- Headless tests: 12/12;
|
||||
- Runtime tests: 395/395.
|
||||
|
||||
## Audit
|
||||
|
||||
- Windows-only UDP reset handling was already guarded by
|
||||
`OperatingSystem.IsWindows()`.
|
||||
- CP-1252 registration is BCL/provider-based and Linux-safe.
|
||||
- immutable pak reading uses portable read-only memory mapping.
|
||||
- remaining wall-clock and diagnostic-call-site cleanup belongs to K2 timing
|
||||
ownership, not the K0 process boundary.
|
||||
- no retail gameplay behavior changed and no divergence row was added.
|
||||
Loading…
Add table
Add a link
Reference in a new issue