REPOSITORY SOURCE

direct-presentation-acceptance.json

docs/evidence/direct-presentation-acceptance.json

1{
2  "sourceBase": "cace9811b9cc8d35d7821e1ca3513a5bdba3c262",
3  "sourceFilesSha256": {
4    "apps/player/graphics-protocol.ts": "bc2513758d19573c586f468d939578777753cd21a9f8e53b0bb14287e88b123e",
5    "apps/player/graphics.ts": "c1d167fd88cfa60368cf985361adf9e2ee757ff3b1b6945919a3024ab48fb084",
6    "apps/player/graphics.worker.ts": "5fde2d157cb1bba8d6d59f88221ab2979206dcebd00e51f2db7658093ddc0d06",
7    "apps/player/main.ts": "efae5be24eda4db6375a0599bcfdeb60f6a78a655782c10a36d7ba57a1a5b63c",
8    "apps/player/simulation.worker.ts": "61727dc9df11083bf385a3635bf80436c6c926480a4d7182ae415c1ecfffd5cb",
9    "packages/presentation/channel.ts": "bd73d635b2c362fff60f5b485a1b17af223dc1e4a9b251c10767696441ce75ed",
10    "packages/presentation/delivery.ts": "c820d8916460bf7e70864a22dbaa6ac42b54fa25c8043cdd334e85eb41f65e71",
11    "packages/schema/index.ts": "6ba84146b251406e8ec0b34172842e5690e8a13fd23d61bc3e2a4ff33f4a7dc1",
12    "tests/browser/multiplayer.spec.ts": "bfa1fa910a7a10678083c2346c50915d26fe4e92d89c8fef01397fe3d4024a4c",
13    "tests/browser/player.spec.ts": "603c23363ff74dd09db2571106d4c00c252b8594255da6a379d433892b2eca6d",
14    "tests/presentation-channel.test.ts": "8474191ea0ed4c13e30cb7139f9558767ce62538dcc558241dc9680e545778c7"
15  },
16  "scope": "Independent direct simulation/render MessagePort scene delivery, separate bounded UI-state acknowledgement, one 4 MiB scene buffer, graphics-generation baseline recovery and receipt timeout. Main-thread fallback retains combined delivery.",
17  "headless": {
18    "passed": 334,
19    "failed": 0,
20    "skipped": 0,
21    "channelAndDeliveryFocused": 9
22  },
23  "checks": {
24    "typecheck": true,
25    "sourceBoundaries": 74,
26    "contentFingerprintsUnchanged": true
27  },
28  "browser": {
29    "command": "npm run test:browser -- tests/browser/player.spec.ts tests/browser/multiplayer.spec.ts",
30    "stats": {
31      "startTime": "2026-10-25T03:33:25.957Z",
32      "duration": 351658.60299999994,
33      "expected": 28,
34      "skipped": 0,
35      "unexpected": 0,
36      "flaky": 0
37    },
38    "cases": [
39      {
40        "title": "two real browsers share doors and chat, then the guest takes over when the host leaves",
41        "status": "expected",
42        "durationMs": 22529
43      },
44      {
45        "title": "simultaneous real-browser pickups grant one lantern, including across host handoff",
46        "status": "expected",
47        "durationMs": 42170
48      },
49      {
50        "title": "travelers see each other move in the rendered world",
51        "status": "expected",
52        "durationMs": 15007
53      },
54      {
55        "title": "rigged travelers walk, settle when pose delivery stalls, and resume without leaking actors",
56        "status": "expected",
57        "durationMs": 23817
58      },
59      {
60        "title": "travelers keep walking with slow GPU completion and settle when real movement stops",
61        "status": "expected",
62        "durationMs": 17516
63      },
64      {
65        "title": "graphics recovery keeps the shared room and receives door changes during restoration",
66        "status": "expected",
67        "durationMs": 18687
68      },
69      {
70        "title": "direct scenes advance during withheld UI receipts and a blocked page task",
71        "status": "expected",
72        "durationMs": 14760
73      },
74      {
75        "title": "world pixel checks use completed presentation and reject an invisible canvas despite visible UI",
76        "status": "expected",
77        "durationMs": 3753
78      },
79      {
80        "title": "slow GPU completion keeps one pending frame, responsive controls and measured recovery",
81        "status": "expected",
82        "durationMs": 11164
83      },
84      {
85        "title": "main fallback canonical ECS frames stay bounded while acknowledgements stall and then catch up",
86        "status": "expected",
87        "durationMs": 4501
88      },
89      {
90        "title": "new checkpoints save without animation frames",
91        "status": "expected",
92        "durationMs": 5814
93      },
94      {
95        "title": "restored checkpoints save without animation frames",
96        "status": "expected",
97        "durationMs": 4619
98      },
99      {
100        "title": "held movement and keyboard look continue without animation frames and release on pause",
101        "status": "expected",
102        "durationMs": 5926
103      },
104      {
105        "title": "front lawn supports leaving the porch and walking back up",
106        "status": "expected",
107        "durationMs": 16486
108      },
109      {
110        "title": "renders, walks, pauses, releases input, and restores the local checkpoint",
111        "status": "expected",
112        "durationMs": 12400
113      },
114      {
115        "title": "keeper dialogue pauses movement and updates the journal",
116        "status": "expected",
117        "durationMs": 5332
118      },
119      {
120        "title": "place travel, pickup conditions, beacon state, and render resources remain coherent",
121        "status": "expected",
122        "durationMs": 11817
123      },
124      {
125        "title": "unsupported GPU and malformed saves fail safely",
126        "status": "expected",
127        "durationMs": 3357
128      },
129      {
130        "title": "legacy saves are preserved while exact uint64 saves advance and reload from the new key",
131        "status": "expected",
132        "durationMs": 12032
133      },
134      {
135        "title": "graphics recovery preserves the world, releases held movement and bounds repeated losses",
136        "status": "expected",
137        "durationMs": 19838
138      },
139      {
140        "title": "graphics recovery reports a failed replacement and preserves the paused save",
141        "status": "expected",
142        "durationMs": 4580
143      },
144      {
145        "title": "graphics placement falls back when canvas-transfer is unavailable",
146        "status": "expected",
147        "durationMs": 7939
148      },
149      {
150        "title": "graphics placement falls back when worker-construction is unavailable",
151        "status": "expected",
152        "durationMs": 7513
153      },
154      {
155        "title": "graphics placement falls back when worker-gpu is unavailable",
156        "status": "expected",
157        "durationMs": 9371
158      },
159      {
160        "title": "render worker continues completed frames while page animation frames are withheld",
161        "status": "expected",
162        "durationMs": 5321
163      },
164      {
165        "title": "render worker crash releases ownership and preserves the local journey",
166        "status": "expected",
167        "durationMs": 7119
168      },
169      {
170        "title": "silent render worker reaches its deadline and releases the transferred canvas owner",
171        "status": "expected",
172        "durationMs": 24774
173      },
174      {
175        "title": "direct scene pressure leaves accepted state and autosaves responsive",
176        "status": "expected",
177        "durationMs": 10424
178      }
179    ]
180  },
181  "focusedBeforeFinalValidationCleanup": {
182    "startTime": "2026-10-25T03:32:13.016Z",
183    "duration": 66393.715,
184    "expected": 5,
185    "skipped": 0,
186    "unexpected": 0,
187    "flaky": 0
188  },
189  "pressureEvidence": {
190    "heldUi": {
191      "hold": true,
192      "held": true,
193      "frames": 114,
194      "buffers": 0
195    },
196    "pageBlockedMilliseconds": 1500.0,
197    "sceneReceiptsDuringBlockedTask": 12,
198    "gpuCompletionsDuringBlockedTask": 3,
199    "heldSceneReceipt": {
200      "route": "direct",
201      "received": 2,
202      "returned": 1,
203      "capacity": 4194304
204    },
205    "returnedSceneReceipt": {
206      "route": "direct",
207      "received": 2,
208      "returned": 2,
209      "capacity": 4194304
210    }
211  },
212  "reports": "direct-presentation-reports.json",
213  "precedingSourceCi": "live-render-worker-ci-multiplayer.json",
214  "remaining": [
215    "Preceding-source CI startup and graphics recovery delays need diagnosis and current-source remote acceptance.",
216    "Main-thread camera, DOM and local-storage writes still depend on page scheduling.",
217    "Compact binary encoding, hardware performance and broader content fault coverage remain open.",
218    "Full milestones 0\u201318 remain open; character redesign is deferred."
219  ]
220}
221