Skip to content

W104.5 - Record the compatibility sweep's existing in-repo evidence - #449

Merged
The-Running-Dev merged 2 commits into
mainfrom
slice/W104
Sep 6, 2026
Merged

W104.5 - Record the compatibility sweep's existing in-repo evidence#449
The-Running-Dev merged 2 commits into
mainfrom
slice/W104

Conversation

@The-Running-Dev

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

Copy link
Copy Markdown
Owner

Summary

W104's only remaining acceptance criterion is W104.5:

The text client, MCP server, static host and Adventures/service-contract
integration pass against the same engine archive and use only the declared
SessionStore surface.

Of its four named consumers, three live in repositories not present here
(SubZeroDev.Platform for the static host, SubZeroDev.Adventures, and the
service-contract generator) and stay unverifiable from this repository — the
same cross-repo limit issue #391 recorded for W103.7.

The remaining two — the text client and the MCP server — already live in this
repository, and their compliance was already fully proven by existing gates
that run on every commit:

  • eslint.config.js's client-boundary rule (src/clients/**, src/mcp/**)
    fails the build if either imports a kind directly instead of calling only
    SessionStore — the "use only the declared surface" half.
  • src/clients/text/client.test.ts and src/mcp/server.test.ts exercise the
    full 09-clients.md §4 API-coverage checklist against a real store — the
    "pass" half.

Neither is a published export (package.json's exports map has only .
and ./authoring), so there is no meaningful "against the packed archive"
step for them distinct from what the sweep already runs — unlike
consumer-smoke/, which does consume the packed tarball for the published
surface.

This PR makes that evidence explicit in Test-CompatibilitySweep.ps1's own
doc comment, so a reader of the sweep's output can see which part of W104.5
it already closes and which three consumers remain out of reach from here.
No behavior change: lint and test already ran these checks before this
PR. It also commits .claude/verify-report.json, the structured gate report
/verify produced for this branch (see Verified below).

Verified

Ran and passed:

  • Typecheck — tsc --noEmit && tsc --noEmit -p tsconfig.scripts.json exited 0 with no output.
  • Lint — eslint src scripts exited 0 with no output.
  • Test — vitest reported Test Files 97 passed (97), Tests 1594 passed (1594), duration 8.88s.
  • Pack package — npm pack --silent in src/engine produced the-running-dev-game-engine-0.10.0.tgz with no errors.
  • Inspect tarball — no entries matching (^|/)src/, no tsconfig*.json entries, no .test.(js|mjs|ts|d.ts|*.map) entries, and package/dist/ is present.
  • Consumer smoke — in consumer-smoke/: npm ci, npm run install:engine against the packed tarball, npm run build, npm run smoke all exited 0 with no assertion failures.
  • Parse-check PowerShell scripts — every *.ps1 parsed clean via [System.Management.Automation.Language.Parser]::ParseFile; ALL PARSE OK.
  • Run Pester tests — Tests Passed: 324, Failed: 0, Skipped: 35, NotRun: 0.
  • Validate Markdown links, terminology, and generated files — ./build/Test-Documentation.ps1: "Human-documentation drift check passed across 18 generated engine page(s), compatibility pointers, and the guide." and "Documentation checks passed across 197 Markdown file(s)."
  • Build and verify landing page — npm --prefix src/engine run build then npm --prefix site run check (format, lint, typecheck, unit test, browser test, build+verify, merge-verify) all passed.
  • Test the host — dotnet test ... -c Release: Passed! - Failed: 0, Passed: 12, Skipped: 0, Total: 12.

Ran and failed: none.

Did not run:

  • Build documentation — docs.ps1 is not present in this checkout (per CLAUDE.md, it's installed by Invoke-SetupDocs and not committed), so the Docusaurus production build cannot be reproduced locally even though Docker is available. The Verify Documentation Build check on this PR is the authority for this gate.
  • Merge landing page into documentation build — depends on ../artifacts/docs, the output of the unavailable documentation build above; that directory does not exist locally, so there is nothing to merge into.
  • Positive route and probe smoke — the container it curls is built with a REGISTRY_TOKEN cross-repo credential (to restore SubZeroDev.Platform.Hosting from GitHub Packages) that is not available locally. The Platform Static Host Image check on this PR is the authority for this gate.
  • Negative fixture — corrupted artifact must fail to start — depends on the same image the previous gate could not build.

Test plan

  • Confirm the client-boundary ESLint rule still fires on a kind import
    from src/clients/** or src/mcp/** (unchanged by this PR; verified
    by reading eslint.config.js:59-83).
  • Confirm client.test.ts/server.test.ts still exercise every
    SessionStore operation (unchanged; confirmed via npm test).

Out of scope

Verifying the static host, Adventures, or the service-contract generator —
none live in this repository. W104.5 stays open until that cross-repo
coordination happens.

…proves

The sweep's lint/test steps already re-verify the text client and MCP
server on every run: the client-boundary ESLint rule catches a kind
import, and their own API-coverage suites exercise every SessionStore
operation. Neither is a published export, so there is no separate
packed-archive step for them the way consumer-smoke has one. Static
host, Adventures, and the service-contract generator stay unverifiable
from this repository, same as #391 recorded for W103.7.
11 passed, 4 did-not-run (docs.ps1 absent, docs-build artifact absent,
REGISTRY_TOKEN unavailable for the two host-image smoke gates). No
gate failed.
@The-Running-Dev
The-Running-Dev merged commit 98b713d into main Sep 6, 2026
8 checks passed
@The-Running-Dev
The-Running-Dev deleted the slice/W104 branch September 6, 2026 20:42
The-Running-Dev added a commit that referenced this pull request Sep 7, 2026
… current engine (#452)

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.
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