surface-workshop-acceptance.json
docs/evidence/surface-workshop-acceptance.json
1{
2 "recordedAt": "2026-10-25T19:39:19.544999+00:00",
3 "baseCommit": "277b869274c7ce02869ae85f17111fc2dc47537c",
4 "scope": "Visual editing of the existing bounded surface language; no new world, renderer or protocol format. Full engine plan and general effect graphs remain incomplete.",
5 "fullPlanEstimatePercent": 76,
6 "sourceSha256": {
7 "apps/editor/materials.ts": "246841ae8d1ee76dd78f0cc908affa36a742ab62836f43264486436cef08f042",
8 "apps/editor/surface-workshop.ts": "4a450f77487056f356a8a429fb9b4370de92e47cccc8a93e0c64ec9121b4379c",
9 "apps/editor/style.css": "4f42abb1c735d894f5b3116c8923f8d1351c1a0c496223fa8144f0836bf0a214",
10 "packages/authoring/material-graph-edit.ts": "c7eb9b3dc3197a76669fd81fd9b94f476f8182131f624438dbd0b08dd31690d2",
11 "tests/material-graph-edit.test.ts": "50f51c5d32b4e6170b082ae5a2ee4a8d3a707a92e3bd55720b166fb80c20a7f6",
12 "tests/browser/editor-surface-workshop.spec.ts": "7e40ac0b5da475027f291d5b7c65d1b699229983343ebd0fac96981bc5e53ffd",
13 "tests/browser/editor-surfaces.spec.ts": "a7e8042967d28f3c4cae6aae0789eb5569fba93a6521a99bbeb15e1931e2963a",
14 "tests/host-watchdog.test.ts": "a174da5f5351e65efc30fb6470ae822adafc2a5bfc0252c5035429beffbca392",
15 "package.json": "40c93329ecd1e3939de5d7ec6ea8e3c93c3081d6858ca6c19b20f67583ba6aef"
16 },
17 "environment": {
18 "node": "22.23.4",
19 "browser": "Chromium 141 headless shell / Playwright 1.56.1",
20 "graphics": "SwiftShader WebGPU/Vulkan",
21 "temporaryStorage": "isolated workspace-disk directories, removed after each run"
22 },
23 "checks": {
24 "typeAndImports": {
25 "passed": true,
26 "packageFiles": 144,
27 "finalCheckSession": 32967
28 },
29 "headless": {
30 "total": 753,
31 "passed": 697,
32 "skipped": 56,
33 "failed": 0,
34 "durationMs": 32162.669097,
35 "log": "surface-workshop-headless.log",
36 "scopeNote": "Passed after watchdog observation correction. Subsequent changes were canvas layout, browser readability assertions, documentation and the named browser script; final type and browser checks cover those UI changes."
37 },
38 "browser": {
39 "passed": 5,
40 "failed": 0,
41 "stats": {
42 "startTime": "2026-10-25T19:36:47.765Z",
43 "duration": 122400.055,
44 "expected": 5,
45 "skipped": 0,
46 "unexpected": 0,
47 "flaky": 0
48 },
49 "report": "surface-workshop-browser-results.json",
50 "command": "npm run test:browser:surfaces"
51 }
52 },
53 "verified": [
54 "Build a custom eight-node surface without JSON; all operation types also checked against strict schema inference headlessly",
55 "Typed port menus and direct port connections reject mismatches and cycles",
56 "Rename keeps internal/output references; removal exposes empty connections instead of pruning",
57 "Local undo/redo; strict admission before Use recipe; Escape/close discard the isolated draft",
58 "Preview/save/reload and durable undo/redo preserve exact recipe and world source",
59 "Wide node readability and narrow visible action controls; both screenshots inspected",
60 "Two players retain identities through shared recipe publication; worker device reconstruction retains programs/cost/buffers/textures",
61 "Portable arrangement recipe preview, placement and reload retain source"
62 ],
63 "measurements": [
64 "surface-workshop-custom-recipe.json",
65 "surface-workshop-surface-shared.json"
66 ],
67 "initialRuns": {
68 "surface-workshop-initial": "Two browser cases passed before layout refinement. First headless run: 696 passed, 56 skipped, one watchdog marker-read race; retained log. The fixture creates the marker before writing its contents; the assertion now waits for complete contents within the existing three-second bound. No watchdog runtime behavior changed.",
69 "surface-workshop-layout": "All five browser cases passed before final compact-card and routed-wire refinement; retained report/screenshots."
70 },
71 "limits": [
72 "Static operation weights are not GPU timings",
73 "Diagram automatically arranges nodes; layout/zoom are view state and not world source",
74 "Local history retains at most 60 edits; every node must reach an output before acceptance",
75 "Use the material preview after accepting the graph to see its rendered surface; no per-keystroke GPU preview",
76 "No physical-device, cross-vendor, Docker/Coolify or remote CI acceptance in this increment",
77 "General texture/effect graphs, visible portals and final character/arrival art remain open; no numbered milestone closed"
78 ]
79}
80