REPOSITORY SOURCE

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