browser-editor-acceptance.json
docs/evidence/browser-editor-acceptance.json
1{
2 "sourceBase": "6afe84cb1b4119c24d23f2ac61b4a06e6c4d59c0",
3 "sourceSha256": {
4 "apps/editor/main.ts": "d56df21f94e736d0541e6f06ceebac3313925688552e04d750bb0d9089348f83",
5 "apps/editor/scene.ts": "9a1551ea1d9d94c973de5a33311eab072598b77bf1487027593894bef691ab28",
6 "apps/editor/style.css": "c0ebbf708015967cceee5989dcae98e44e27ec11e3567a94cdfbc209c52a257c",
7 "services/authoring/store.ts": "2a3a9794d44a079bff9ed36ac3c952ecd6a1a17c08daa1273b615065406fb024",
8 "services/authoring/http.ts": "987fa630288d2d3fb5cc387955250313b9152ca0b1639ae3b2d8c6d6bb64bf41",
9 "services/relay/config.ts": "c0ca901b681b8534f7e7887efc6a84d1e38848ad196c1ebd9901b4b7f0f7ba42",
10 "services/relay/server.ts": "ce78f93fce329d599d24ff4b23cf0771272ad31527ade8da64b05af919e64233",
11 "tools/cli/editor.mjs": "55d034e259c20d94057186992c27bfb21c8c9b00f2730a9425712c17ec60b611",
12 "tools/cli/dev.mjs": "6861a8374ec05891f1bb52a50dbf40fc35f7f7523e13e68562bde1bd52426073",
13 "editor.html": "51e883ab08a150973422ec266baa3ae0b785a4fd8ca26f1019dfa89bc4f7ee07",
14 "vite.config.ts": "74da20eddb6d73a33a712d7d3cf1c57b31c0e211c25c399af6b45c3671d50619",
15 "package.json": "45f11661106346e19b50fa52957365b19b552d72d1b33dba7b5213ce4f7df6f1",
16 "compose.yaml": "b086936e7e0dc788fb105ede8ae0bd53144767080f3365319d6a0200f95f42c8",
17 "compose.coolify.yaml": "325f0582d406dd2f7b9783d40481bd7ffeb9bbb6c755913dacb97744abd2f35e",
18 "compose.ferry.yaml": "5823435b198a906db7a5278bb481181e7c964874040ff600df12b9e4c407fb29",
19 "tests/editor.test.ts": "ac0284c41a9c6f0de1b1a8f6ce335fb0e987df18feb3807c8e7625c0c3c3684f",
20 "tests/browser/editor.spec.ts": "f23daa38aaf6411a68c9f88ad2102dd4376def2e6d3ef65682302e0d844eb560"
21 },
22 "headless": {
23 "passed": 389,
24 "failed": 0
25 },
26 "browser": {
27 "stats": {
28 "startTime": "2026-10-25T05:57:55.437Z",
29 "duration": 12773.329000000002,
30 "expected": 2,
31 "skipped": 0,
32 "unexpected": 0,
33 "flaky": 0
34 },
35 "cases": [
36 {
37 "title": "browser editor previews, saves, undoes and exports durable transforms without changing identity",
38 "status": "expected",
39 "results": [
40 "passed"
41 ]
42 },
43 {
44 "title": "two editors reject a stale save and preserve the unsaved local transform",
45 "status": "expected",
46 "results": [
47 "passed"
48 ]
49 }
50 ],
51 "physicalGpu": "not claimed; Chromium SwiftShader acceptance"
52 },
53 "checks": {
54 "typescript": "passed",
55 "importBoundaries": 82,
56 "serverBuild": "passed in /tmp/dw-editor-server",
57 "productionClientBuild": "passed in isolated browser server",
58 "coolifyCompose": "passed",
59 "ferryCompose": "passed",
60 "livePreview": "5181 client and 8791 relay healthy; separate .data/editor-ferry.1"
61 },
62 "corrections": [
63 "Empty model catalog is explicitly provided to the renderer.",
64 "Gameplay light overrides are stripped from strict presentation envelopes, now covered by a full-world regression.",
65 "Numeric inputs accept arbitrary finite decimal transforms. Only edited coordinates are written, preserving untouched precision.",
66 "Gameplay-linked transform constraints remain enforced. Browser acceptance checks rejection before editing an independent plinth.",
67 "Port 8789 was occupied by an unrelated service. The editor uses verified-free port 8791, and the dev launcher now preserves a child failure exit code."
68 ],
69 "visualReview": "Inspected the actual 1440 x 900 editor capture: object selection, unsaved transform, outline and complete inspector visible. Browser acceptance also verifies the canvas image changes.",
70 "limits": [
71 "Draft saves do not publish or activate content in a running room.",
72 "Single-process durable draft with a shared creator key; accounts, audit identities, collaborative presence and property-level merge remain open.",
73 "Undo/redo history is session-local; idempotency receipts and durable history remain open.",
74 "Initial transform inspector, searchable/paged list and primitive bounds picking. Creation/deletion/grouping, interaction anchors, prefab/route controls and drag gizmos remain open.",
75 "No main merge, Coolify deployment or physical device acceptance."
76 ]
77}
78