REPOSITORY SOURCE

editor-startup-acceptance.json

docs/evidence/editor-startup-acceptance.json

1{
2  "date": "2026-10-25",
3  "baselineCommit": "db79b49",
4  "scope": "Overlap authenticated editor document admission/compilation with serialized GPU startup; add explicitly selected physical-GPU browser qualification.",
5  "sourceSha256": {
6    "apps/editor/main.ts": "fdcddead954588b1dc691763fe574f42995d5eef635db7d496bef3911e5da690",
7    "playwright.config.ts": "1b21efa6240e9d9dcdf7cbc22a7694cf7111437b01b5b7ec2e7987017d46af90",
8    "tools/cli/qualify-gpu.ts": "13d716ac1b76aea30a2c0dbd9db7ef39255bd6a0f260aa4f06e02f725921a36d",
9    "tests/browser/editor-startup.spec.ts": "b164788483bd7b0c71f31e3ca70657dabd376a3c767381dfe574be94c4bea2b5",
10    "tests/browser/editor-restoration.spec.ts": "4edcac71654f0a45300c6c038415443cb2ccf16d49ac40dfd21d999af790e121"
11  },
12  "softwareTiming": {
13    "beforeObservedReadyMs": 8777.800000011921,
14    "afterObservedReadyMs": 6532.5,
15    "afterDiagnosticJourneyMs": 56800,
16    "samplesPerSource": 1,
17    "fixture": "Same diagnostic restoration copy from renderer-startup-diagnostic.spec.ts; 30s readiness / 120s overall diagnostic limits. The accepted editor startup source was then strengthened with stale/lifecycle UI fences; timing is from the preceding overlapped implementation.",
18    "limits": "Observed readiness includes polling; adapter/GPU scheduling varies. This is not a performance guarantee or a passed five-second software reload gate.",
19    "raw": "editor-startup-overlap-timing.json"
20  },
21  "hardware": {
22    "capturedAt": "2026-10-26T04:28:36.109Z",
23    "adapter": {
24      "vendor": "intel",
25      "architecture": "xe-3lpg",
26      "device": "",
27      "description": "",
28      "isFallbackAdapter": false,
29      "features": [
30        "bgra8unorm-storage",
31        "chromium-experimental-multi-draw-indirect",
32        "chromium-experimental-snorm16-texture-formats",
33        "chromium-experimental-subgroup-matrix",
34        "chromium-experimental-timestamp-query-inside-passes",
35        "chromium-experimental-unorm16-texture-formats",
36        "clip-distances",
37        "core-features-and-limits",
38        "depth-clip-control",
39        "depth32float-stencil8",
40        "dual-source-blending",
41        "float32-blendable",
42        "float32-filterable",
43        "indirect-first-instance",
44        "primitive-index",
45        "rg11b10ufloat-renderable",
46        "shader-f16",
47        "subgroups",
48        "texture-component-swizzle",
49        "texture-compression-bc",
50        "texture-compression-bc-sliced-3d",
51        "texture-compression-etc2",
52        "timestamp-query"
53      ],
54      "maxTextureDimension2D": 8192,
55      "maxBufferSize": 268435456,
56      "userAgent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) HeadlessChrome/141.0.7390.37 Safari/537.36"
57    },
58    "os": {
59      "platform": "linux",
60      "release": "7.2.8-9-omarchy",
61      "arch": "x64"
62    },
63    "cpu": "Intel(R) Core(TM) Ultra X7 358H",
64    "node": "v22.23.4",
65    "browser": "141.0.7390.37",
66    "launchArgs": [
67      "--enable-unsafe-webgpu",
68      "--use-angle=vulkan",
69      "--enable-features=Vulkan"
70    ],
71    "inventory": {
72      "gpu": "Intel Corporation Panther Lake [Arc B390] [8086:b080], rev 04",
73      "kernelDriver": "xe",
74      "mesa": "1:26.2.5-1",
75      "vulkanIntel": "1:26.2.5-1",
76      "runningKernel": "7.2.8-9-omarchy"
77    },
78    "tests": [
79      {
80        "file": "day-cycle.spec.ts",
81        "title": "main shared-time daylight loops, restores, lights portals and recovers exactly",
82        "status": "passed",
83        "durationMs": 1551
84      },
85      {
86        "file": "day-cycle.spec.ts",
87        "title": "worker shared-time daylight loops, restores, lights portals and recovers exactly",
88        "status": "passed",
89        "durationMs": 932
90      },
91      {
92        "file": "editor-restoration.spec.ts",
93        "title": "archived invitations stay shared while restoring an older world previews, saves and undoes a new draft",
94        "status": "passed",
95        "durationMs": 19855
96      },
97      {
98        "file": "editor-startup.spec.ts",
99        "title": "authenticated graphics prepare during document validation but cannot publish an unchecked scene",
100        "status": "passed",
101        "durationMs": 746
102      },
103      {
104        "file": "editor-startup.spec.ts",
105        "title": "invalid document cancels its late device and a newer load waits for that allocation to drain",
106        "status": "passed",
107        "durationMs": 785
108      },
109      {
110        "file": "editor-startup.spec.ts",
111        "title": "page closure during graphics preparation disposes the late result without publishing",
112        "status": "passed",
113        "durationMs": 610
114      },
115      {
116        "file": "editor.spec.ts",
117        "title": "browser editor previews, saves, undoes and exports durable transforms without changing identity",
118        "status": "passed",
119        "durationMs": 4835
120      },
121      {
122        "file": "editor.spec.ts",
123        "title": "two editors reject a stale save and preserve the unsaved local transform",
124        "status": "passed",
125        "durationMs": 3726
126      },
127      {
128        "file": "editor.spec.ts",
129        "title": "atelier creates and duplicates solid shapes, stages deletion and restores exact identities through undo and reload",
130        "status": "passed",
131        "durationMs": 8708
132      },
133      {
134        "file": "renderer-initialization.spec.ts",
135        "title": "failed renderer startup drains sibling builds before releasing the device, then retries",
136        "status": "passed",
137        "durationMs": 2743
138      },
139      {
140        "file": "weather.spec.ts",
141        "title": "main shared weather animates, occludes, respects quality and recovers exactly",
142        "status": "passed",
143        "durationMs": 1047
144      },
145      {
146        "file": "weather.spec.ts",
147        "title": "worker shared weather animates, occludes, respects quality and recovers exactly",
148        "status": "passed",
149        "durationMs": 1142
150      }
151    ],
152    "softwareFallbackRejectionVerified": true
153  },
154  "software": {
155    "tests": [
156      {
157        "file": "editor-restoration.spec.ts",
158        "title": "archived invitations stay shared while restoring an older world previews, saves and undoes a new draft",
159        "status": "failed",
160        "durationMs": 46879
161      },
162      {
163        "file": "editor-startup.spec.ts",
164        "title": "authenticated graphics prepare during document validation but cannot publish an unchecked scene",
165        "status": "passed",
166        "durationMs": 1840
167      },
168      {
169        "file": "editor-startup.spec.ts",
170        "title": "invalid document cancels its late device and a newer load waits for that allocation to drain",
171        "status": "passed",
172        "durationMs": 2082
173      },
174      {
175        "file": "editor-startup.spec.ts",
176        "title": "page closure during graphics preparation disposes the late result without publishing",
177        "status": "passed",
178        "durationMs": 968
179      },
180      {
181        "file": "editor.spec.ts",
182        "title": "browser editor previews, saves, undoes and exports durable transforms without changing identity",
183        "status": "passed",
184        "durationMs": 11643
185      },
186      {
187        "file": "editor.spec.ts",
188        "title": "two editors reject a stale save and preserve the unsaved local transform",
189        "status": "passed",
190        "durationMs": 10590
191      },
192      {
193        "file": "editor.spec.ts",
194        "title": "atelier creates and duplicates solid shapes, stages deletion and restores exact identities through undo and reload",
195        "status": "passed",
196        "durationMs": 18694
197      }
198    ],
199    "unchangedGate": "editor-restoration.spec.ts:17 still fails its 5000ms readiness expectation; six other scenarios pass."
200  },
201  "build": {
202    "status": "passed",
203    "packageBoundaryFiles": 181,
204    "engine": "1732892fa3272b3ccadf313104bde3f93e91119ddc210724312462afbe7ec9e5"
205  },
206  "limits": [
207    "Short headless Chromium/Vulkan functional checks on one physical workstation; no long-session, FPS/battery, other-GPU or mobile qualification.",
208    "Software-WebGPU restoration reload timing remains open; no deadline was increased in acceptance.",
209    "No numbered full-plan milestone closed; final character/environment/arrival art remains required."
210  ],
211  "progressApproximatePercent": 80
212}
213