World-graph projection becomes a complete client read model - #459
Merged
Conversation
# Conflicts: # design/90-decisions.md # docs/docs/guide.md
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.
What changed, and why. Expands the
world-graphprojection contract into the complete player-observable spatial read model required by external clients such as Sun Trap. It keeps simulation authority private instead of exposing raw kind state or adding kind-specificSessionStoreescape hatches, and records the limits where historical data would require a separate persisted-state change.Verified
Ran and passed:
Typecheck— npm --prefix src/engine run typecheck: tsc --noEmit and tsc --noEmit -p tsconfig.scripts.json both exited 0.Lint— npm --prefix src/engine run lint: eslint src scripts exited 0.Test— npm --prefix src/engine test: 97 test files passed, 1594 tests passed, 0 failed.Pack package— npm pack --silent produced the-running-dev-game-engine-0.10.0.tgz and exited 0.Inspect tarball— tar -tzf inspected 332 entries: no package/src/, tsconfig JSON, or test artifacts were present, and package/dist/ was present.Consumer smoke— npm ci completed, compiler clean removed prior emitted files, install:engine installed the inspected tarball, and npm run build plus npm run smoke exited 0.Parse-check PowerShell scripts— Every repository *.ps1 parsed with System.Management.Automation.Language.Parser.ParseFile; 0 parse errors.Run Pester tests— Invoke-Pester -Path tools -PassThru: 324 passed, 0 failed, 35 skipped, 359 total.Validate Markdown links, terminology, and generated files— ./build/Test-Documentation.ps1: drift checks passed across 18 generated engine pages, compatibility pointers, and the guide; documentation checks passed across 199 Markdown files.Build documentation— The authenticated Docker host build ran the docs-template command pwsh /template/scripts/docs-build.ps1 -SourceDocs ./docs -OutputPath artifacts/docs; Docusaurus generated the static site successfully.Build and verify landing page— npm --prefix src/engine run build and npm --prefix site run check exited 0: formatting, lint, typecheck, 17 unit tests, 23 browser tests, production-build inspection, and merge-fixture verification passed.Merge landing page into documentation build— The authenticated Docker host build ran npm --prefix site run merge against the completed artifacts/docs tree; the landing pages merged while preserving the protected docs subtree.Test the host— dotnet test src/host/SubZeroDev.GameEngine.Host.Tests/SubZeroDev.GameEngine.Host.Tests.csproj -c Release: 12 passed, 0 failed, 0 skipped.Positive route and probe smoke— The locally built host image returned 200 for /, /roadmap/, /docs/, /health/live, and /health/ready, and 404 for /this-route-does-not-exist.Negative fixture -- corrupted artifact must fail to start— The negative-fixture image removed roadmap/index.html and its container exited 1 as required, proving the missing-artifact startup guard.Ran and failed:
Did not run:
Agent detail
design/20-contract.md§ World-Graph Kind / §10 Projection