Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 16 additions & 16 deletions .claude/verify-report.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,77 +3,77 @@
{
"name": "Typecheck",
"status": "Passed",
"detail": "npm --prefix src/engine run typecheck: tsc --noEmit && tsc --noEmit -p tsconfig.scripts.json, exit 0."
"detail": "npm --prefix src/engine run typecheck: tsc --noEmit && tsc --noEmit -p tsconfig.scripts.json exited 0 with no output."
},
{
"name": "Lint",
"status": "Passed",
"detail": "npm --prefix src/engine run lint: eslint src scripts, exit 0."
"detail": "npm --prefix src/engine run lint: eslint src scripts exited 0 with no output."
},
{
"name": "Test",
"status": "Passed",
"detail": "npm --prefix src/engine test: Test Files 94 passed (94); Tests 1560 passed (1560); Duration 6.42s."
"detail": "npm --prefix src/engine test: vitest run reported 'Test Files 97 passed (97)' and 'Tests 1594 passed (1594)', duration 8.88s."
},
{
"name": "Pack package",
"status": "Passed",
"detail": "npm pack --silent (src/engine) produced the-running-dev-game-engine-0.10.0.tgz, exit 0."
"detail": "npm pack --silent in src/engine produced the-running-dev-game-engine-0.10.0.tgz with no errors."
},
{
"name": "Inspect tarball",
"status": "Passed",
"detail": "tar -tzf the-running-dev-game-engine-0.10.0.tgz: no src/ files, no tsconfig*.json, no *.test.* build artifacts present, package/dist/ present. All four assertions passed."
"detail": "tar -tzf the-running-dev-game-engine-0.10.0.tgz: no entries matching (^|/)src/, no tsconfig*.json entries, no .test.(js|mjs|ts|d.ts|*.map) entries, and package/dist/ is present, matching ci.yml's Inspect tarball assertions."
},
{
"name": "Consumer smoke",
"status": "Passed",
"detail": "consumer-smoke: npm ci (added 3 packages), npm run install:engine (installed the-running-dev-game-engine-0.10.0.tgz via file:), npm run build (tsc -p tsconfig.json, no errors), npm run smoke (node dist/smoke.js, no assertion failures). All steps exit 0."
"detail": "In consumer-smoke/: npm ci (added 3 packages), npm run install:engine against the packed tarball (added 2 packages), npm run build (tsc -p tsconfig.json, no errors), npm run smoke (node dist/smoke.js) all exited 0 with no assertion failures from runEngineSmoke/runAuthoringSmoke."
},
{
"name": "Parse-check PowerShell scripts",
"status": "Passed",
"detail": "[System.Management.Automation.Language.Parser]::ParseFile run recursively over every *.ps1 in the repository: zero parse errors reported, PARSE_EXIT=0."
"detail": "Ran verify.yml's inline parser over every *.ps1 with [System.Management.Automation.Language.Parser]::ParseFile; output was 'ALL PARSE OK' with zero parse errors across the tree."
},
{
"name": "Run Pester tests",
"status": "Passed",
"detail": "Invoke-Pester -Path tools -Output Detailed -PassThru: Tests Passed: 324, Failed: 0, Skipped: 35, NotRun: 0. Tests completed in 46.49s."
"detail": "Invoke-Pester -Path tools -Output Detailed -PassThru: 'Tests Passed: 324, Failed: 0, Skipped: 35, NotRun: 0'. FailedCount=0."
},
{
"name": "Validate Markdown links, terminology, and generated files",
"status": "Passed",
"detail": "./build/Test-Documentation.ps1: Human-documentation drift check passed across 18 generated engine page(s), compatibility pointers, and the guide. Documentation checks passed across 197 Markdown file(s)."
"detail": "./build/Test-Documentation.ps1 output: '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).' Exit 0."
},
{
"name": "Build documentation",
"status": "DidNotRun",
"reason": "This step runs inside the ghcr.io/the-running-dev/docs-template container via /template/scripts/docs-build.ps1, which is not available outside that published image. The repository's own local equivalent is docs.ps1, generated by Invoke-SetupDocs and deliberately not committed (CLAUDE.md); it is not installed in this checkout, and Docker alone cannot substitute for the container's /template contents. The PR's 'Verify Documentation Build' check is the source of truth for this gate."
"reason": "docs.ps1 is not present in this checkout. Per CLAUDE.md it is installed by Invoke-SetupDocs and is not committed to the repository, so the Docusaurus production build (which this flagged step reproduces via /template/scripts/docs-build.ps1 inside the docs-template container) cannot be run locally from this worktree even though Docker itself is available. The corresponding check on the pull request ('Verify Documentation Build') is the authority for this gate."
},
{
"name": "Build and verify landing page",
"status": "DidNotRun",
"reason": "Runs inside the same docs-template container as 'Build documentation' and depends on its artifacts/docs output (site/package.json's test:merge script reads ../artifacts/docs, which only exists after that containerized step runs). Also relies on the container's Alpine chromium install for the real-browser suite (PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH=/usr/bin/chromium-browser), not reproducible standalone in this environment. The PR's 'Verify Documentation Build' check is the source of truth."
"status": "Passed",
"detail": "npm --prefix src/engine run build succeeded, then npm --prefix site ci and npm --prefix site run check (format:check, lint via oxlint, typecheck, test: 'Test Files 2 passed (2), Tests 15 passed (15)', test:browser: 'Test Files 1 passed (1), Tests 11 passed (11)', test:build: vite build succeeded and verify-build.mjs confirmed both HTML entry points, test:merge: verify-merge.mjs reported 'Package-backed merge proven') all passed on this Windows checkout without the Alpine-specific PLAYWRIGHT_CHROMIUM_EXECUTABLE_PATH the CI step sets."
},
{
"name": "Merge landing page into documentation build",
"status": "DidNotRun",
"reason": "Depends on the same containerized artifacts/docs output as 'Build and verify landing page', which did not run locally for the reason given there. The PR's 'Verify Documentation Build' check is the source of truth."
"reason": "npm --prefix site run merge writes into ../artifacts/docs, the output of the documentation build (docs-ci.yml's 'Build documentation' step). That directory does not exist in this checkout and the build that produces it could not be run locally (see 'Build documentation' above), so this step has nothing to merge into and was not attempted."
},
{
"name": "Test the host",
"status": "Passed",
"detail": "dotnet test src/host/SubZeroDev.GameEngine.Host.Tests/SubZeroDev.GameEngine.Host.Tests.csproj -c Release: Passed! - Failed: 0, Passed: 12, Skipped: 0, Total: 12, Duration: 422 ms."
"detail": "dotnet test src/host/SubZeroDev.GameEngine.Host.Tests/SubZeroDev.GameEngine.Host.Tests.csproj -c Release: 'Passed! - Failed: 0, Passed: 12, Skipped: 0, Total: 12, Duration: 553 ms - SubZeroDev.GameEngine.Host.Tests.dll (net10.0)'."
},
{
"name": "Positive route and probe smoke",
"status": "DidNotRun",
"reason": "Requires building the host Docker image first, which requires a NUGET_GITHUB_TOKEN build secret (secrets.REGISTRY_TOKEN in CI) to restore SubZeroDev.Platform.Hosting from the sibling SubZeroDev.Platform repository's GitHub Packages feed. Attempted the build locally without that secret to confirm: docker buildx build failed at the host-build restore step with 'error : Value cannot be null or empty string. (Parameter '\"'\"'username'\"'\"')' after 'cat: can'\"'\"'t open /run/secrets/nuget_github_token: No such file or directory'. The PR's 'Platform Static Host Image' check is the source of truth."
"reason": "This step curls a container built by host-image.yml's 'Build the image' step, which restores SubZeroDev.Platform.Hosting from GitHub Packages using the REGISTRY_TOKEN secret (a cross-repo read:packages credential the workflow itself checks for and fails loudly without, per its 'Verify NuGet restore credential is configured' step). That secret is not available in this local environment, so the image cannot be built and this smoke check cannot be reproduced outside CI. The 'Platform Static Host Image' check on the pull request is the authority for this gate."
},
{
"name": "Negative fixture -- corrupted artifact must fail to start",
"status": "DidNotRun",
"reason": "This step builds a second image FROM the base image built in 'Positive route and probe smoke' (--build-arg BASE_IMAGE=subzerodev-gameengine-host:smoke), which did not build locally for the reason given there — there is no base image to build the negative fixture from. The PR's 'Platform Static Host Image' check is the source of truth."
"reason": "This step builds tools/host-smoke/Dockerfile.negative-fixture from BASE_IMAGE=subzerodev-gameengine-host:smoke, the same image 'Positive route and probe smoke' depends on and which could not be built locally without the REGISTRY_TOKEN secret (see above). The 'Platform Static Host Image' check on the pull request is the authority for this gate."
}
]
}
12 changes: 11 additions & 1 deletion build/Test-CompatibilitySweep.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,17 @@ release tag (W104.7):
host, built-in campaign/version, or packed-consumer file goes missing; the v0.10.0
compatibility baseline comparison (W104.2, scripts/capture-compat-baseline.test.ts);
and the representative-save load-through-SessionStore proof (W104.3,
scripts/capture-save-fixtures.test.ts).
scripts/capture-save-fixtures.test.ts). This is also W104.5's in-repository evidence
for the text client and MCP server: `lint` re-runs the client-boundary rule
(eslint.config.js) that fails if either imports a kind instead of calling only
`SessionStore`, and `test` re-runs their full API-coverage suites
(src/clients/text/client.test.ts, src/mcp/server.test.ts) against a real store built
from the same source this sweep packs below. Neither is a published export (only `.`
and `./authoring` are), so there is no separate "against the packed archive" step for
them the way there is for consumer-smoke. W104.5's other three named consumers --
the static host, Adventures, and the service-contract generator -- live in
repositories this one does not contain and stay unverified here, the same
cross-repo limit #391 recorded for W103.7.
2. The replay regression oracle (07-replay.md), run locally against the
baseline tag's own committed fixtures and outcomes -- the same
REPLAY_BASELINE_DIR mechanism .github/workflows/ci.yml's
Expand Down
Loading