REPOSITORY SOURCE

day-cycle-acceptance.json

docs/evidence/day-cycle-acceptance.json

1{
2  "date": "2026-10-25",
3  "baseCommit": "ffb4c2fcb4dbb3a74fc20e05e233c3de184fd840",
4  "scope": "Versioned shared day/night, saved authoring epochs, cooperative and persistent server clock samples, main/Worker/portal lighting, editor preview/history and shared publication. The full milestones 0\u201318 objective remains open.",
5  "environment": {
6    "node": "22.23.4",
7    "browser": "Playwright 1.56.1 / Chromium 141 / SwiftShader Vulkan WebGPU",
8    "database": "Local isolated PostgreSQL cluster created and stopped by test-control; fsync and synchronous_commit enabled."
9  },
10  "checks": {
11    "focused": {
12      "passed": 19,
13      "failed": 0,
14      "note": "Before final boundary and format-combination case; final full suite covers them.",
15      "report": "day-cycle-focused.tap"
16    },
17    "headless": {
18      "tests": 939,
19      "passed": 877,
20      "skipped": 62,
21      "failed": 0,
22      "concurrency": 4,
23      "report": "day-cycle-headless.tap"
24    },
25    "rooms": {
26      "passed": 3,
27      "failed": 0,
28      "skipped": 0,
29      "profiles": [
30        "cooperative relay",
31        "persistent cooperative",
32        "persistent trusted"
33      ],
34      "report": "day-cycle-rooms.tap"
35    },
36    "build": {
37      "passed": true,
38      "packageFiles": 176,
39      "engine": "3584012bb4434520880ff7edffb0df158bb15446366683dff07de8affb1b23c8",
40      "files": 28,
41      "bytes": 51331491,
42      "report": "day-cycle-build.log"
43    },
44    "portable": {
45      "passed": true,
46      "outsideCheckout": true,
47      "report": "day-cycle-portable.json"
48    },
49    "browser": {
50      "initial": {
51        "passed": 5,
52        "failed": 1,
53        "interrupted": 0
54      },
55      "sharedReadinessRetry": {
56        "passed": 1,
57        "failed": 0,
58        "interrupted": 0
59      },
60      "expandedFixtureFailure": {
61        "passed": 8,
62        "failed": 1,
63        "interrupted": 0
64      },
65      "fixtureCorrectionInterrupted": {
66        "passed": 4,
67        "failed": 0,
68        "interrupted": 1
69      },
70      "final": {
71        "passed": 9,
72        "failed": 0,
73        "interrupted": 0
74      }
75    }
76  },
77  "observations": [
78    "Saved day-night.1 epochs and periods produce an O(1) wrap-safe artistic sampler. Node, browser main and Worker samples agree. World 20 and presentation 13 reject legacy-profile smuggling, preserve source admission, streamed content, simulation entities/state and checkpoint identity.",
79    "Room environment packets bind UTC seconds to authority epoch. Servers anchor UTC to monotonic elapsed time. Client receipt extrapolation is capped at one second and at the admitted timestamp limit; stale receipt streams freeze, reconnects retain displayed time and receive fresh samples. No repeated scene or foliage payload is required.",
80    "Two real relay clients agree through late join, authority change and restart. Cooperative and trusted PostgreSQL hosts each retain traveler identity and clock agreement across process restart. Targeted DB cases ran explicitly; the ordinary full suite skips DB-dependent cases.",
81    "Native daylight, dusk and night differ visibly; full-cycle and undo pixels are exact. Destination portal sampling uses the same supplied clock, with at most three channel values tolerance against direct rendering. Device reconstruction is exact. Repeated samples retain identical buffers/textures/targets, with zero owned GPU resources after disposal.",
82    "Editor checks cover invalid input, cancel, preview, source-preserving save/reopen, no-change detection, static-mood selection and durable undo/redo. Shared main/Worker Apply retains identity and footing; a browser with its UI Date.now shifted by a day still follows room time. Publication continues the saved epoch.",
83    "The initial shared comparison ran immediately on the first rendered cycle frame and found a 0.923-hour difference from the later room sample (about 4.62 seconds for its two-minute day). Readiness now waits for the actual sampled clock to agree, within the original five-second assertion and unchanged agreement tolerance. No production timing fix is claimed. Retry and final campaign are retained.",
84    "The expanded browser campaign attempted to replace an existing ferry development room with a separate meadow world. The server correctly rejected the incompatible identity/entry, but the fixture only checked an already-visible room link. The corrected fixture edits the current entry place and checks the Apply response and live revision before proceeding. One intermediate run was explicitly interrupted to correct its entry-place selection. All outcomes are retained; production world-migration guards were not changed.",
85    "The initial full suite rejected a new fixture that combined terrain and sky in one transaction. The fixture now uses the required separate terrain transaction. The final full suite is green. Test-only profile type annotations were also corrected before final type/build acceptance.",
86    "Sunset and moonlight native views and responsive editor controls were visually reviewed. This is a lighting capability, not the final environment or character art treatment."
87  ],
88  "limits": [
89    "Server UTC clocks must be reasonably synchronized across hosts. WAN latency, clock-skew/failover accuracy and long-session physical-device behavior are not qualified by local tests.",
90    "An initial rendering catch-up interval after Apply remains observable under concurrent software GPU load. Earlier published restoration reload and terrain timing gaps remain open.",
91    "The first profile has a fixed artistic palette/orbit. Weather, clouds, stars, seasons, custom time curves and gameplay time triggers remain open; water/swimming/buoyancy, terrain streaming/LOD and voxel work remain open.",
92    "Final character/environment/arrival art remains required; no numbered milestone is closed. No Docker/Coolify deployment or production qualification performed."
93  ],
94  "native": {
95    "hours": [
96      6.5,
97      12,
98      17.5,
99      0
100    ],
101    "samples": [
102      {
103        "hour": 6.5,
104        "sky": {
105          "zenith": [
106            0.040018908754964035,
107            0.1934341800264749,
108            0.37955048610796915
109          ],
110          "horizon": [
111            0.8089009005353064,
112            0.34467447180593075,
113            0.16301718825895856
114          ],
115          "ground": [
116            0.08824973347324849,
117            0.13263004078654125,
118            0.09042097837493085
119          ],
120          "sunColor": [
121            0.8148927905382477,
122            0.4177512711037124,
123            0.16547581163530936
124          ],
125          "sunSize": 0.65,
126          "sunGlow": 0.85,
127          "intensity": 0.3293471307997787
128        },
129        "sun": [
130          0.9225763967408503,
131          0.13344718959516713,
132          -0.3620008836533695
133        ],
134        "sunIntensity": 1.7927641391841451,
135        "ambient": [
136          0.19637174665816276,
137          0.25998573224145,
138          0.28317873944980637
139        ],
140        "fog": [
141          0.5345355853479492,
142          0.238038406673855,
143          0.13396117236832306
144        ]
145      },
146      {
147        "hour": 12,
148        "sky": {
149          "zenith": [
150            0.045,
151            0.22,
152            0.43000000000000005
153          ],
154          "horizon": [
155            0.55,
156            0.75,
157            0.83
158          ],
159          "ground": [
160            0.1,
161            0.15,
162            0.1
163          ],
164          "sunColor": [
165            1,
166            0.95,
167            0.78
168          ],
169          "sunSize": 0.65,
170          "sunGlow": 0.85,
171          "intensity": 0.36
172        },
173        "sun": [
174          5.3698562226727066e-17,
175          0.9635179096299405,
176          0.26764386378609456
177        ],
178        "sunIntensity": 2.2,
179        "ambient": [
180          0.22,
181          0.29,
182          0.31
183        ],
184        "fog": [
185          0.3662500000000001,
186          0.5015,
187          0.5675
188        ]
189      },
190      {
191        "hour": 17.5,
192        "sky": {
193          "zenith": [
194            0.040018908754964076,
195            0.19343418002647508,
196            0.3795504861079695
197          ],
198          "horizon": [
199            0.8089009005353069,
200            0.3446744718059313,
201            0.16301718825895908
202          ],
203          "ground": [
204            0.0882497334732486,
205            0.1326300407865414,
206            0.09042097837493093
207          ],
208          "sunColor": [
209            0.8148927905382506,
210            0.41775127110371413,
211            0.16547581163531033
212          ],
213          "sunSize": 0.65,
214          "sunGlow": 0.85,
215          "intensity": 0.32934713079977895
216        },
217        "sun": [
218          -0.7006457087251103,
219          0.1013457541961634,
220          0.7062751793398225
221        ],
222        "sunIntensity": 1.7927641391841513,
223        "ambient": [
224          0.19637174665816293,
225          0.2599857322414502,
226          0.28317873944980654
227        ],
228        "fog": [
229          0.5345355853479495,
230          0.23803840667385537,
231          0.13396117236832342
232        ]
233      },
234      {
235        "hour": 0,
236        "sky": {
237          "zenith": [
238            0.006,
239            0.012,
240            0.035
241          ],
242          "horizon": [
243            0.035,
244            0.055,
245            0.12
246          ],
247          "ground": [
248            0.008,
249            0.014,
250            0.025
251          ],
252          "sunColor": [
253            0.48,
254            0.64,
255            1
256          ],
257          "sunSize": 0.35,
258          "sunGlow": 0.3,
259          "intensity": 0.12
260        },
261        "sun": [
262          -5.3698562226727066e-17,
263          0.9635179096299405,
264          -0.26764386378609456
265        ],
266        "sunIntensity": 0.16,
267        "ambient": [
268          0.035,
269          0.055,
270          0.1
271        ],
272        "fog": [
273          0.0315,
274          0.04975,
275          0.106
276        ]
277      }
278    ],
279    "luminance": {
280      "dawn": 146.41846,
281      "day": 188.48375166666668,
282      "dusk": 146.21026,
283      "night": 55.50284083333333
284    },
285    "loopExact": true,
286    "undoExact": true,
287    "recoveryExact": true,
288    "portal": {
289      "maximumInteriorError": 1,
290      "different": true
291    },
292    "bounded": true,
293    "resources": {
294      "buffers": 7,
295      "textures": 3
296    },
297    "disposed": {
298      "buffers": 0,
299      "textures": 0
300    },
301    "errors": []
302  },
303  "sourceFiles": {
304    "apps/editor/atmosphere.ts": "970c0c18f2b3c1c204cd05c40ffe2e2048c81afc8cb2e37feb201dce1c4cc987",
305    "apps/editor/day-cycle.ts": "20cf048a3a94999705ad7d8fa4111d6f89fe7e3d859127d56756702d3e43a1ad",
306    "apps/editor/main.ts": "0fd6d7ce3e7a45dacd3bc4c4b6d797833686f94da6601ecbbed8b7849e9bef9a",
307    "apps/editor/scene.ts": "fc5dca8c7edeb41d5e91c50e99a97e9ec683cb8e520b85b78813f4ad8dff6e61",
308    "apps/editor/templates.ts": "7b6d59a5fffd5a5151e02168bb61e7ddac515cea427afe197dc7b41b28ba1a72",
309    "apps/player/graphics-protocol.ts": "ee6c52a60e10f6d47640d9e10fba36a842046fb96f6b44f3847e008ebbf2b764",
310    "apps/player/graphics.ts": "9dd4b49ea82e7e67c7c5af0723fe993e98ecf81633da5f8cdc7d32157feafdc1",
311    "apps/player/graphics.worker.ts": "0a00551b2b9df55c568dfa7348d69ab56f0fe30e0d8a46da063e0fc96dfa530e",
312    "apps/player/main.ts": "575d1971c03289d54137fb93e279d1d9ec4d81f1146cf191edcb3cfdce5e20fd",
313    "apps/player/presentation-view.ts": "f1822c230a2d3b7f3c3c86ab5b7e572bd975d5b25b09775351ad9e68bdccbc5e",
314    "apps/player/simulation.worker.ts": "c1bc4dc852cd7299b5c1527b7d9d8e2f4466c8b9a63fa5c98ee24246014f0ac6",
315    "package.json": "cbfb43620e4de00ba562e2a49e50a27ddd2024ababefff723de527cc58e1f4dc",
316    "packages/authoring/index.ts": "526b0a246d4a48c71796ae0c2a88021e10f84838b0695f28fa0d94c764bb7cae",
317    "packages/authoring/merge.ts": "5530b5a8f952255e90ee6b05761d5d15fd06b9cacb2f6cac390f4815f13fd806",
318    "packages/authoring/observations.ts": "dbbad9a1f11ddb810c1042955b91bebdf3cb26467f6f87d6bf6d65d3078e0ceb",
319    "packages/authoring/prefabs.ts": "81a77eced6a00cc302843543d0dbfaf59a842bc7589bd30e3a4f130b397b5240",
320    "packages/authoring/terrain.ts": "7a359fe728ffddc052cf832904ea6ad433d009b2edf35b0c3d156836f2e6db61",
321    "packages/authoring/undo.ts": "9cfe5d6ef5a3e21a8b2a0929d8c3a518650ccedac1312335cdc33dd8771b95f3",
322    "packages/compiler/index.ts": "be79255ced943d9c3b99dba645d4a6feaac94f754b72340ffaef2f1599058020",
323    "packages/net/client.ts": "cdbf6331c51dd8664466d333c2076dc7d4a89d0be36cb10ccebe5b25516a86f1",
324    "packages/net/environment-clock.ts": "0939b4d98bcd4c5521cee99e5d4807050cb7ad7cb0601649b00fa13841e703bf",
325    "packages/net/packets.ts": "a20089a2158b7f5339944a66b7437fb09eea34a790dc3703a65b40afa02cb4f0",
326    "packages/net/persistent-client.ts": "b5484fd554f3708e78f06956c02f124d94e4eb3864ff7902ba5d0ac8a13cb00f",
327    "packages/net/protocol.ts": "d227220ea1a8dc44240ac3b4468d9d350e9e4ef46a8c19411a817afcd2fdbb2d",
328    "packages/render-webgpu/index.ts": "7278484dc25e707ee9294be4fb61effef7ac36f1d0380cc5b2ef38ddda288273",
329    "packages/render/day-cycle.ts": "98e1423a329faa4452cbf317343dbd1dea68b8a0ca5ff57d532259d25b00e71e",
330    "packages/render/index.ts": "e892e70d6809957f07fb8238eb35a34e4c78df9efb6f3d7f415815b48ef63232",
331    "packages/render/presentation.ts": "228384ff024251cf0897de2901b119cf59e7c17b7bd87e49a8e2d411bc1a7c39",
332    "packages/schema/day-cycle.ts": "a1b3772f296f78b6e6da6173c8cb0812c17c67be513ecf2d4956ac500ab7e373",
333    "packages/schema/index.ts": "a485238966259d4178dab788d5d1d3b996804cdab84d4a28b9f85347fa35b0c4",
334    "packages/simulation/checkpoint.ts": "afed57a552ff0e3be7948392b943d58b858ed20ac1eb748c64c135a769d07feb",
335    "services/persistent/server.ts": "c1fbf228c83fa9e5413dfb63315f28d69c8a0e9a343ef3086dffe3d066cd14ef",
336    "services/relay/server.ts": "6d662be028bf8a1ce0b7f6a442d1a34b799a7b6a91cee06991a0cb0555901d8a",
337    "tests/authoring-proposals.test.ts": "c2b5c5e3b27f03328d9c7176a180a5c62f3c8ded49e599430f9998c38e8fd272",
338    "tests/browser/day-cycle.spec.ts": "b3eb599fa98a6b9b8a1b942f84f02ef11b65f64f6393b35438733cc68d81c51a",
339    "tests/browser/editor-day-cycle.spec.ts": "398f94fda40d90382c6ca594353bc3d2b42ef77b9c63a3fa6dbbdd298539ec0a",
340    "tests/day-cycle-room.test.ts": "93552b0b541dd68dc24a873ac802c9247d1c599ed912450f145f6d3d033694aa",
341    "tests/day-cycle.test.ts": "8d43f9559da8b8509ccec5c50555433821fa81fd7f198d378db37c146f5624cf",
342    "tests/fixtures/day-cycle-browser-entry.ts": "6b9ce825b6c4c3f019c5e7e1423e1c6305f267bf937e14a1fec79a821e6e1edf",
343    "tests/fixtures/day-cycle-browser.worker.ts": "f5c45ad5b6d4d8f8c4ab2c06e8b7146594650b4989bf51b494b5d7ed09c86c16",
344    "tests/fixtures/day-cycle-native.ts": "337d5eee7b902bcca8962c41c883493f168a186c44a70baabee965fcff0c568d"
345  }
346}
347