model-render-acceptance.json
docs/evidence/model-render-acceptance.json
1{
2 "format": 1,
3 "recordedAt": "2026-10-24T22:52:54.230366+00:00",
4 "source": {
5 "renderer": "d92607c7efeb3320b22a6973b51b3b29357f2370",
6 "testAndCiFollowup": "d0afaaa020207db2252964a77aa48e3ae2602c26"
7 },
8 "headless": {
9 "source": "d92607c7efeb3320b22a6973b51b3b29357f2370",
10 "dirty": false,
11 "command": "npm test",
12 "tests": 197,
13 "pass": 197,
14 "fail": 0,
15 "skipped": 0,
16 "log": "model-render-headless.tap"
17 },
18 "browser": {
19 "full": {
20 "source": "working tree before d92607c",
21 "dirty": true,
22 "note": "Complete suite passed before adding the final back-face normal equivalence control, one additional transformed-bound headless regression, and the subsequent recovery-test/CI-only follow-up. Runtime renderer implementation matches the committed source.",
23 "stats": {
24 "startTime": "2026-10-24T22:47:53.115Z",
25 "duration": 218895.141,
26 "expected": 26,
27 "skipped": 0,
28 "unexpected": 0,
29 "flaky": 0
30 },
31 "report": "model-render-browser-tests.json"
32 },
33 "finalAffectedCases": {
34 "source": "d0afaaa020207db2252964a77aa48e3ae2602c26",
35 "dirty": false,
36 "cases": [
37 "owned renderer works",
38 "graphics recovery preserves the world",
39 "graphics recovery keeps the shared room"
40 ],
41 "stats": {
42 "startTime": "2026-10-24T22:51:46.692Z",
43 "duration": 42243.644,
44 "expected": 3,
45 "skipped": 0,
46 "unexpected": 0,
47 "flaky": 0
48 },
49 "report": "model-render-final-controls.json"
50 },
51 "environment": "Chromium 141 headless shell, software WebGPU, 960x640, CI=1, one worker, isolated temporary production build",
52 "capabilities": "model-render-capabilities.json"
53 },
54 "models": {
55 "fixture": "model-render.1",
56 "hash": "bf4a9fd6e9f5fc0d6485ab731f4d27ecc29cd7f640780b339bff3f1bf30d69ec",
57 "sourceHash": "973319f50d8f86eee7542ce63da52b9ba91498f247bceb8d693ac2b3b52816a1",
58 "meshes": 3,
59 "instances": 3,
60 "triangles": 24,
61 "bytes": 2592,
62 "visibleGeometry": true,
63 "mirroredControl": true,
64 "emissiveControl": true,
65 "doubleSidedControl": true,
66 "backFaceNormalControl": true,
67 "rejectedPreservedFrame": true,
68 "replacementFrames": 4,
69 "visibilityFrames": 3,
70 "recoveredFrame": true,
71 "clearedFrame": true,
72 "disposed": {
73 "buffers": 0,
74 "textures": 0,
75 "instances": 0
76 }
77 },
78 "shaders": {
79 "initialHash": "a9bf279fd6fb195535e76bbe51fa26c935d450c9a171ba7b6e50968129766ebd",
80 "changedHash": "a84bef43b9e5c5b901a9255c105b09324949b55675fbaee5b9bf063b0fdf5f76",
81 "activeHash": "a9bf279fd6fb195535e76bbe51fa26c935d450c9a171ba7b6e50968129766ebd",
82 "resourceCensus": {
83 "buffers": 6,
84 "textures": 3,
85 "targetGeneration": 3
86 }
87 },
88 "checks": [
89 "TypeScript and 49-source-file import boundary check passed",
90 "Darkwind and engine-zoo content hashes unchanged",
91 "Real GPU indexed geometry and shadow rendering",
92 "Owned input mutation after admission cannot change installation",
93 "Mirrored mesh removal changes pixels; reflected positions/winding verified headlessly",
94 "Colored emission changes pixels; equivalent front/back lighting matches exactly",
95 "Failed rehashed artifact preserves exact accepted pixels and resource counts",
96 "Four replacement frames and three culling/reference image pairs",
97 "Clear/reinstall and new-device restoration from retained CPU artifact",
98 "Partial buffer allocation and asynchronous/synchronous scope failures release candidates",
99 "Shared primitive/model/traveler instance reservations",
100 "Existing full multiplayer, gameplay, checkpoint, worker and graphics regression suite"
101 ],
102 "ci": {
103 "renderer": {
104 "url": "https://github.com/jasona/darkwind-web/actions/runs/40140288363",
105 "status": "in_progress"
106 },
107 "followup": {
108 "url": "https://github.com/jasona/darkwind-web/actions/runs/40140353358",
109 "status": "in_progress"
110 }
111 },
112 "limits": [
113 "No complete milestone is closed",
114 "The player world still uses the primitive catalog; imported authored placement and release manifests remain open",
115 "Probe-managed CPU artifact reinstall is not automatic imported-catalog recovery in the player",
116 "Textures, alpha modes, skeletal animation and imported collision installation remain open",
117 "Logical buffer census is not physical VRAM; software GPU verification does not establish hardware budgets",
118 "Earlier recovery CI has retained failures; follow-up CI is not yet confirmed passing"
119 ]
120}
121