persistent-portals-acceptance.json
docs/evidence/persistent-portals-acceptance.json
1{
2 "date": "2026-10-25",
3 "baseCommit": "9e2a6d9f507a05d385859684379354cce6bea3c6",
4 "scope": "PostgreSQL-backed player portal travel and recovery in cooperative and trusted static-world rooms; no runtime or art changes.",
5 "fullPlanPercentApprox": 78,
6 "milestonesClosed": [],
7 "environment": {
8 "node": "22.23.4",
9 "playwright": "1.56.1",
10 "browser": "Chromium 141 headless_shell",
11 "graphics": "SwiftShader WebGPU through Vulkan",
12 "database": "postgres (PostgreSQL) 18.6",
13 "fsync": true,
14 "synchronous_commit": true,
15 "isolatedTemporaryDatabase": true,
16 "artificialLatency": false
17 },
18 "checks": {
19 "typesAndBoundaries": {
20 "passed": true,
21 "packageFiles": 148
22 },
23 "browserJourneys": [
24 {
25 "profile": "cooperative",
26 "command": "node tools/cli/test-persistent.mjs --portals",
27 "stats": {
28 "startTime": "2026-10-25T21:03:19.649Z",
29 "duration": 87363.48400000001,
30 "expected": 1,
31 "skipped": 0,
32 "unexpected": 0,
33 "flaky": 0
34 },
35 "browserReport": "persistent-portals-cooperative-browser.json"
36 },
37 {
38 "profile": "trusted",
39 "command": "node tools/cli/test-persistent.mjs --trusted --portals",
40 "stats": {
41 "startTime": "2026-10-25T21:04:56.926Z",
42 "duration": 89728.251,
43 "expected": 1,
44 "skipped": 0,
45 "unexpected": 0,
46 "flaky": 0
47 },
48 "browserReport": "persistent-portals-trusted-browser.json"
49 }
50 ],
51 "fullHeadlessSuite": "Not rerun; runtime source unchanged. Prior headless evidence remains associated with its recorded source."
52 },
53 "verified": [
54 "Two independent browser contexts use graphics-worker and main-thread placements.",
55 "Real movement and interaction commit outgoing and return travel through the ledger.",
56 "Destination traveler renders through the source window; both screenshots visually inspected per profile.",
57 "Removing local saves and session storage while keeping the return credential restores the same player in the committed destination.",
58 "Closing the real simulation-worker socket reconnects the same player with a fresh motion stream.",
59 "Real device destruction and simulation-worker termination reconstruct the window in each graphics placement.",
60 "Rejected destination shader preparation leaves both local and database place at the previous destination; retry commits the return.",
61 "Each destination transport retains one 4 MiB allocation and returns every sent buffer by the final sample."
62 ],
63 "initialFailure": {
64 "type": "Test syntax error (missing array closing bracket in evidence attachment)",
65 "resolvedBeforeBrowserExecution": true,
66 "log": "persistent-portals-parse-initial.log"
67 },
68 "remaining": [
69 "General destination asset streaming",
70 "Seamless physical portal crossing and extended portal capabilities",
71 "Physical GPU/device performance and broad soak qualification",
72 "Deferred final character/arrival art",
73 "All full-plan milestone gates not yet proven"
74 ],
75 "sha256": {
76 "tools/cli/test-persistent.mjs": "d75246a0f7ab0ca5d7d7f59bc863bdd8b8efa696463321bb39474b0a453eb4f1",
77 "playwright.persistent.config.ts": "969d19a4f2278a6835315c364fa6aeb21eae18fe4c46529c3bdb6683cd6c4d45",
78 "playwright.trusted.config.ts": "28ff33dde4ea0167043f8ccc359aceb823500d03af29cbb9660895d48ea519ba",
79 "tests/fixtures/seed-persistent-browser.ts": "0b03552081001bb8ba1c97878f7a978a1804c232d70d5a4155cdf9b44b0a90a5",
80 "tests/fixtures/persistent-portal-world.ts": "30e701d5d3f0bfbb47b9eef25e9a94dcccaf56b9ab9c4c175b8f7c9b4a21e081",
81 "tests/browser/persistent-portals.spec.ts": "8fe502a789eb691ff9c0040b1f453926fae6e27b27f7b4419c26b6102eae6548"
82 }
83}
84