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