Skip to content

W104.5 — Verify static host, Adventures, and service-contract against current engine - #452

Merged
The-Running-Dev merged 1 commit into
mainfrom
slice/W104
Sep 7, 2026
Merged

W104.5 — Verify static host, Adventures, and service-contract against current engine#452
The-Running-Dev merged 1 commit into
mainfrom
slice/W104

Conversation

@The-Running-Dev

@The-Running-Dev The-Running-Dev commented Sep 6, 2026

Copy link
Copy Markdown
Owner

Summary

Closes the last unmet W104 (Release 0.11 Compatibility Sweep) criterion. Text client and MCP server were already proven in-repo by PR #449; this closes the remaining three named consumers — the static host, Adventures, and the service-contract generator — which live outside this repository.

  • Packed the engine at e52e7a1 (npm pack from src/engine, sha256 ef934530...aa2a2) and manually re-vendored the tarball into three sibling checkouts on this machine: SubZeroDev.Platform's game-service workload, SubZeroDev.ServiceContract, and SubZeroDev.Adventures (engine submodule bumped to the same commit).
  • Each consumer's own existing test suite passed unchanged against the current engine:
    • ServiceContract: 59/59 tests (arity gate, opaque-payload gate, engine-version gate).
    • Platform game-service: typecheck clean; dependency-direction.test.ts (static AST guard: no runtime import of the engine package reaches the store) passed; full suite 197/198 (1 pre-existing skip) including the durable Postgres profile via docker compose.
    • Adventures: lint, typecheck, test (198), test:browser (38), test:build all green with the submodule at e52e7a1. (format:check fails only on pre-existing unrelated clutter files already tracked in that repo — confirmed via git status that nothing else in the tree changed besides the submodule pointer.)
  • None of the three reach past the declared SessionStore/Portable*/fromPortable surface — confirmed by Platform's own automated guard and Adventures' single, pre-existing, explicitly-commented non-contract import (shared/campaign-registry.ts).
  • All three sibling checkouts were reverted to their prior committed state after verification — this PR makes no changes outside GameEngine.

Closes #392

Changes

  • build/Test-CompatibilitySweep.ps1: corrected the sweep's docstring, which claimed these three consumers "stay unverified here" — they've now been verified manually, with the evidence recorded on issue W104 — Release 0.11 Compatibility Sweep #392 and the point-in-time nature of that proof noted (it needs re-running whenever any of the three repos re-vendors this engine).

Verified

Ran and passed:

  • Typecheck — npm --prefix src/engine run typecheck, no errors
  • Lint — npm --prefix src/engine run lint, no findings
  • Test — npm --prefix src/engine test, 97 files / 1594 tests, all passed
  • Pack package — npm pack --silent, tarball produced cleanly
  • Inspect tarball — no src/, no tsconfig*.json, no .test.* build artifacts, package/dist/ present
  • Consumer smoke — consumer-smoke/: install, build, and smoke against the fresh tarball, clean
  • Parse-check PowerShell scripts — every *.ps1 in the repo, zero parse errors
  • Run Pester tests — 324 passed, 0 failed, 35 skipped (intentional)
  • Validate the core/companion split — tools/Test-Companion.ps1: Valid, 23 core / 14 companion / 9 with no companion
  • Validate Markdown links, terminology, and generated files — ./build/Test-Documentation.ps1: 18 generated engine pages plus compatibility pointers and the guide, and 197 Markdown files, all pass
  • Build and verify landing page — npm --prefix site run check (format/lint/typecheck/test [15]/test:browser [11]/test:build/test:merge), all green
  • Test the host — dotnet test src/host/.../Host.Tests.csproj -c Release: 12/12 passed

Ran and failed: none

Did not run:

  • Check the design state against the tree — tools/Test-DesignState.ps1 exited 2 (could-not-evaluate, not a finding): ContractListUnreadable: SectionNotFound: design/20-contract.md and StateSetAbsent: design/state/ is missing or holds no records other than WorkRef mirrors — this repository has not adopted design/state/ as its live state set
  • Build documentation — docs.ps1 is not present in this checkout (installer-generated, not committed, per CLAUDE.md); the production Docusaurus build needs it plus Docker. The "Verify Documentation Build" check on this PR is where this answer comes from
  • Merge landing page into documentation build — depends on artifacts/docs from the "Build documentation" step above, which did not run; npm --prefix site run merge fails with "has no protected docs subtree" for exactly that reason
  • Positive route and probe smoke — needs REGISTRY_TOKEN (a CI-only secret) to restore SubZeroDev.Platform.Hosting and build the host Docker image; not available locally. The "Platform Static Host Image" check on this PR is where this answer comes from
  • Negative fixture -- corrupted artifact must fail to start — depends on the same host image as above, same missing credential

Test plan

  • src/engine typecheck/lint/test pass
  • ServiceContract suite passes against the current engine (59 tests)
  • Platform game-service suite passes against the current engine, including the durable Postgres profile (197 tests, 1 pre-existing skip)
  • Adventures lint/typecheck/test/test:browser/test:build pass against the current engine (274 tests)

Agent detail

… current engine

Manually packed the engine at e52e7a1 and re-vendored the tarball into
SubZeroDev.Platform's game-service workload, SubZeroDev.ServiceContract, and
SubZeroDev.Adventures (submodule bumped to the same commit). All three
consumers' own test suites pass unchanged: ServiceContract (59), Platform's
game-service including its dependency-direction surface guard and durable
Postgres profile (197, 1 pre-existing skip), and Adventures'
lint/typecheck/test/test:browser/test:build (274). None reach past the
declared SessionStore/Portable*/fromPortable surface. Sibling checkouts were
left exactly as found (bump reverted after verification); evidence recorded
on issue #392. This closes the last unmet W104 criterion — text client and
MCP server were already proven in-repo by PR #449.
@The-Running-Dev
The-Running-Dev merged commit cd17dc6 into main Sep 7, 2026
8 checks passed
@The-Running-Dev
The-Running-Dev deleted the slice/W104 branch September 7, 2026 05:23
The-Running-Dev added a commit that referenced this pull request Sep 7, 2026
The committed report was stale against src/engine's current typecheck/lint/test
output wording and was missing two gates (Test-Companion.ps1, Test-DesignState.ps1)
that PR #452's /verify pass discovered. Replaces it with that pass's validated
17-gate report (12 passed, 0 failed, 5 did-not-run with reasons), matching what
was already posted verbatim in PR #452's description.
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.

W104 — Release 0.11 Compatibility Sweep

1 participant