REPOSITORY SOURCE

prefab-library-acceptance.json

docs/evidence/prefab-library-acceptance.json

1{
2  "date": "2026-10-25",
3  "baseCommit": "2adf702fc0feae81090de76119f3832bb7e7acf6",
4  "fullPlanApproximatePercent": 49,
5  "headless": {
6    "command": "node --import tsx --test --test-concurrency=4 tests/*.test.ts",
7    "passed": 489,
8    "failed": 0
9  },
10  "browser": {
11    "passed": 6,
12    "failed": 0,
13    "report": "prefab-library-browser.json",
14    "capture": "editor-prefab-library.png",
15    "shared": [
16      "two travelers",
17      "worker and main render paths",
18      "placement",
19      "source update retaining overrides",
20      "undo source revision",
21      "undo placement"
22    ]
23  },
24  "checks": [
25    "TypeScript",
26    "96 source-file package boundaries",
27    "isolated production client build",
28    "isolated production relay build"
29  ],
30  "issuesFoundAndFixed": [
31    "Incoming model alias could collide with a second source asset; reserve all incoming names.",
32    "Empty-library browser test inherited models from prior journeys; prepare and restore the test fixture.",
33    "Live revision responses omitted source metadata and failed checksums; serve complete immutable snapshots, including after restart."
34  ],
35  "verificationLimits": [
36    "An unrestricted final suite run had one SIGKILL in presentation-channel.test.ts; a four-worker full run passed all 489 tests. No assertion was relaxed.",
37    "The sandbox-only targeted runner reported a file-level pass without individual cases; acceptance uses the escalated native runs."
38  ],
39  "remaining": [
40    "Source membership/kind migration needs explicit bindings; browser rejects it.",
41    "No browser detach action; moving members outside an instance rejects.",
42    "Whole-instance conflict boundary for concurrent linked member edits.",
43    "No full roadmap milestone closure or final character-art pass."
44  ],
45  "localPreview": {
46    "url": "http://localhost:5181/editor.html",
47    "revision": "0",
48    "sha256": "f076388ad340c7b1e1aa84e72368aa6a9d3a3f6546187a2fed1d0fba66c36977",
49    "savedDraftUnchanged": true
50  },
51  "sourceSha256": {
52    "apps/editor/main.ts": "765db155e4f385c2435326e3eb3e987d01fbf6c68e8ed0c9645a6118e581e26b",
53    "apps/editor/style.css": "19e19b2debddcc86922549b0c251d6fa7459684249111cde1e4844f89bc6a832",
54    "apps/editor/prefabs.ts": "fb6797e84f688e2de109398c6d2240c90317e2bdf8539f59a21d1f98b84e27a8",
55    "packages/authoring/index.ts": "e403959a4e13dfd386fd0c1ab6fa1e81dd3f75312899412c7bba5bbd73a5407a",
56    "packages/authoring/merge.ts": "271d4e921508ff86a51dc42829dd6922544503e91c17a7bc22651429194de6d8",
57    "packages/authoring/undo.ts": "6de12bc24a68b6d6612aa8e62de7f277300248291e74d009cf888b66088c8e01",
58    "packages/authoring/prefab-links.ts": "e990fd8da2ce2653461a8cff8f5f3474a6644e4d23368ecc9693983c2b82f774",
59    "packages/authoring/prefab-placement.ts": "8659d9c6246d6bb1e863db83c99ca80c79281269e70ea1896953c79eead165fb",
60    "packages/world/prefabs.ts": "4c3591b0902dfbff4bb0dbb9337c7fe907f179e4e168ef4c174d6baeb158bf3f",
61    "services/relay/server.ts": "5ad1d2004ebd41dbc41af3a7ea2ef98da9fe18729a63534cd0ed7bdec6b27824",
62    "tests/prefab-links.test.ts": "9b8384c9bee9475a4ffd4508e9dfb7d67361e91c707fea9e3b3b2d42b1f7b67b",
63    "tests/browser/editor-prefab-library.spec.ts": "d44b63cc2ac758fcbe652efa4cb96ef245d10f7135bc2be805ca4b4fd4ebb00b",
64    "tests/browser/editor-models.spec.ts": "da52cbb006c83c2977be1458325187f50c792a0e9bf8ca49fdf855dbaecedb19"
65  }
66}
67