{
  "recordedAt": "2026-10-25T19:39:19.544999+00:00",
  "baseCommit": "277b869274c7ce02869ae85f17111fc2dc47537c",
  "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.",
  "fullPlanEstimatePercent": 76,
  "sourceSha256": {
    "apps/editor/materials.ts": "246841ae8d1ee76dd78f0cc908affa36a742ab62836f43264486436cef08f042",
    "apps/editor/surface-workshop.ts": "4a450f77487056f356a8a429fb9b4370de92e47cccc8a93e0c64ec9121b4379c",
    "apps/editor/style.css": "4f42abb1c735d894f5b3116c8923f8d1351c1a0c496223fa8144f0836bf0a214",
    "packages/authoring/material-graph-edit.ts": "c7eb9b3dc3197a76669fd81fd9b94f476f8182131f624438dbd0b08dd31690d2",
    "tests/material-graph-edit.test.ts": "50f51c5d32b4e6170b082ae5a2ee4a8d3a707a92e3bd55720b166fb80c20a7f6",
    "tests/browser/editor-surface-workshop.spec.ts": "7e40ac0b5da475027f291d5b7c65d1b699229983343ebd0fac96981bc5e53ffd",
    "tests/browser/editor-surfaces.spec.ts": "a7e8042967d28f3c4cae6aae0789eb5569fba93a6521a99bbeb15e1931e2963a",
    "tests/host-watchdog.test.ts": "a174da5f5351e65efc30fb6470ae822adafc2a5bfc0252c5035429beffbca392",
    "package.json": "40c93329ecd1e3939de5d7ec6ea8e3c93c3081d6858ca6c19b20f67583ba6aef"
  },
  "environment": {
    "node": "22.23.4",
    "browser": "Chromium 141 headless shell / Playwright 1.56.1",
    "graphics": "SwiftShader WebGPU/Vulkan",
    "temporaryStorage": "isolated workspace-disk directories, removed after each run"
  },
  "checks": {
    "typeAndImports": {
      "passed": true,
      "packageFiles": 144,
      "finalCheckSession": 32967
    },
    "headless": {
      "total": 753,
      "passed": 697,
      "skipped": 56,
      "failed": 0,
      "durationMs": 32162.669097,
      "log": "surface-workshop-headless.log",
      "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."
    },
    "browser": {
      "passed": 5,
      "failed": 0,
      "stats": {
        "startTime": "2026-10-25T19:36:47.765Z",
        "duration": 122400.055,
        "expected": 5,
        "skipped": 0,
        "unexpected": 0,
        "flaky": 0
      },
      "report": "surface-workshop-browser-results.json",
      "command": "npm run test:browser:surfaces"
    }
  },
  "verified": [
    "Build a custom eight-node surface without JSON; all operation types also checked against strict schema inference headlessly",
    "Typed port menus and direct port connections reject mismatches and cycles",
    "Rename keeps internal/output references; removal exposes empty connections instead of pruning",
    "Local undo/redo; strict admission before Use recipe; Escape/close discard the isolated draft",
    "Preview/save/reload and durable undo/redo preserve exact recipe and world source",
    "Wide node readability and narrow visible action controls; both screenshots inspected",
    "Two players retain identities through shared recipe publication; worker device reconstruction retains programs/cost/buffers/textures",
    "Portable arrangement recipe preview, placement and reload retain source"
  ],
  "measurements": [
    "surface-workshop-custom-recipe.json",
    "surface-workshop-surface-shared.json"
  ],
  "initialRuns": {
    "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.",
    "surface-workshop-layout": "All five browser cases passed before final compact-card and routed-wire refinement; retained report/screenshots."
  },
  "limits": [
    "Static operation weights are not GPU timings",
    "Diagram automatically arranges nodes; layout/zoom are view state and not world source",
    "Local history retains at most 60 edits; every node must reach an output before acceptance",
    "Use the material preview after accepting the graph to see its rendered surface; no per-keystroke GPU preview",
    "No physical-device, cross-vendor, Docker/Coolify or remote CI acceptance in this increment",
    "General texture/effect graphs, visible portals and final character/arrival art remain open; no numbered milestone closed"
  ]
}
