terrain-editor-acceptance.json
docs/evidence/terrain-editor-acceptance.json
1{
2 "date": "2026-10-25",
3 "baseCommit": "ed11cb2788c823d97e37332352de1616da106968",
4 "scope": "Editor raise/lower heightfield brushes, source-retaining meadow template, protected generated objects, durable patch undo/redo, shared Apply and immutable publication. Whole-patch authoring transactions; per-sample network operation merging remains open.",
5 "environment": {
6 "node": "22.23.4",
7 "browser": "Playwright 1.56.1 / Chromium 141 / SwiftShader Vulkan WebGPU",
8 "temporaryDirectory": "workspace .data/ld-terrain-editor",
9 "isolation": "Fresh acceptance relay; interactive editor and beta preserved"
10 },
11 "checks": {
12 "headless": {
13 "tests": 908,
14 "passed": 848,
15 "skipped": 60,
16 "failed": 0,
17 "concurrency": 4,
18 "report": "terrain-editor-headless.tap"
19 },
20 "focused": {
21 "passed": 15,
22 "report": "terrain-editor-focused.tap"
23 },
24 "build": {
25 "passed": true,
26 "packageFiles": 166,
27 "engine": {
28 "engine": "42747824b18f839cc2fbaa147b14f29f1a79159f735f06aa7b6a3349567bbe14",
29 "files": 28,
30 "bytes": 51142698,
31 "output": "/home/jason/coding/dw-web/engine-dist"
32 },
33 "report": "terrain-editor-build.log"
34 },
35 "portable": {
36 "passed": true,
37 "report": "terrain-editor-portable.log",
38 "scope": "Production author bundle creates and checks a four-chunk source-retaining meadow from a detached /tmp directory."
39 },
40 "browser": {
41 "report": "terrain-editor-browser.json",
42 "stats": {
43 "startTime": "2026-10-26T01:35:01.755Z",
44 "duration": 182532.837,
45 "expected": 4,
46 "skipped": 0,
47 "unexpected": 1,
48 "flaky": 0
49 },
50 "passing": "Both new terrain journeys and both existing template journeys pass.",
51 "failing": "Published-world restoration misses #scene data-ready after reload with two active published travelers; five-second deadline unchanged."
52 }
53 },
54 "observations": [
55 "Browser brush cancel and local undo preserve the saved document; preview stays unsaved; reload and server-managed undo/redo recover exact terrain source and generated world.",
56 "Headless saved undo survives AuthoringStore close/reopen, preserves another builder\u2019s decoration edit and rejects overlapping patch changes.",
57 "Two actual players retain identities and safe standing height after a brush is saved and applied; a published meadow is playable.",
58 "Generated ground refuses generic object/model edits. UI transform inputs and handles are disabled and explain how to use Terrain.",
59 "Desktop and 580px controls were visually reviewed. The meadow remains an initial surface, not final environment art."
60 ],
61 "corrections": [
62 {
63 "issue": "Unchanged source comparison depended on JSON key order.",
64 "resolution": "Canonical comparison avoids false edits."
65 },
66 {
67 "issue": "Transform handles could target protected generated chunks.",
68 "resolution": "Hide/refuse gestures for terrain selection and explain the Terrain route."
69 },
70 {
71 "issue": "Falsy malformed patch values could be interpreted as deletion.",
72 "resolution": "Reject non-object/non-null patch values and invalid replacement terrain metadata; regressions pass."
73 },
74 {
75 "issue": "Initial browser assertion treated a fieldset as a disabled control.",
76 "resolution": "Assert the actual descendant transform input is disabled; original fieldset was correctly disabled.",
77 "report": "terrain-editor-first-browser.log"
78 }
79 ],
80 "remainingFailures": [
81 {
82 "issue": "Restoration reload readiness missed its existing five-second deadline in both current-source attempts.",
83 "baselineCommit": "ed11cb2788c823d97e37332352de1616da106968",
84 "baseline": "Isolated git archive of previous commit, same dependencies/browser/environment and unchanged test; fails at the same reload assertion. This establishes the failure predates the terrain editor but does not establish its root cause or a fix.",
85 "baselineStats": {
86 "startTime": "2026-10-26T01:38:16.502Z",
87 "duration": 56691.128000000004,
88 "expected": 0,
89 "skipped": 0,
90 "unexpected": 1,
91 "flaky": 0
92 },
93 "report": "terrain-editor-baseline-restoration.json"
94 },
95 {
96 "issue": "An earlier compatibility run reported a closed browser context in the template journey; final source passes that same journey. Cause remains unproven.",
97 "report": "terrain-editor-initial-browser.json"
98 },
99 {
100 "issue": "The first browser server could not copy its engine assets under /tmp (cpSync EIO). Workspace TMPDIR succeeds; no filesystem root cause or fix is claimed.",
101 "report": "terrain-editor-tmp-copy-failure.log"
102 },
103 {
104 "issue": "Initial sandbox focused test runner produced only its TAP header and retained an idle compiler child; exact owned processes were stopped, and escalated focused execution completed. No assertion result from that interrupted attempt is used."
105 }
106 ],
107 "limits": [
108 "At most one terrain surface per place, four patches and sixteen chunks per editable document.",
109 "Whole-patch conflicts; per-sample collaborative journal, chunk streaming, paint, LOD transitions, voxels and procedural environment systems remain open.",
110 "No hardware, Docker/Coolify or long-session qualification is claimed.",
111 "Final character/environment/arrival art pass remains open."
112 ],
113 "progress": {
114 "approximateFullPlanPercent": 79,
115 "numberedMilestonesClosed": [],
116 "goalComplete": false
117 },
118 "sourceSha256": {
119 "apps/editor/main.ts": "c2d1778304ace8f6976d57682f482f831c35ce3efa9453ff9e185dc3f13e26ed",
120 "apps/editor/style.css": "80b88a38f10dee05cb9d2f5d8375639b56589da77c9a6df2551c0ec28c445a6d",
121 "apps/editor/templates.ts": "a46e97b1cc390b878b4219a25988311c41662f1a0553559072a739f70e148f17",
122 "apps/editor/terrain.ts": "f202c0ce3a93e6daaa61ea3f3c881101f1c3446e8c9b14445142ef1dd5720596",
123 "games/templates/catalog.ts": "71ecb20d823cfc212e18f53011822286dd6fb326621711084c90072ae91b17df",
124 "games/templates/meadow.ts": "d39ba9ad8780c87fd1d0915d18505bbb164a2a8cdd6ef86fde3442f2ccbd5ecd",
125 "package.json": "32f48a2784120b7b6c5fa507727df1686948b103354f2f0515e32cf3745501c7",
126 "packages/authoring/index.ts": "ea1b9f7ad385eb46419f6ff34aadd2dff5c5f6ea22261f9506341c7ea70c6588",
127 "packages/authoring/merge.ts": "e153502e6b5cf5daa0190dff43ba789c2a885fa1ee66c910f253ce8c7e3d6686",
128 "packages/authoring/observations.ts": "da81045755a35cab59d113874438d52afc17767181e807445a27651e19331b58",
129 "packages/authoring/review.ts": "f4445cc79680dd9cb12d1cd5a6dfac09635144500f3d591ecccfb737c45ef8a1",
130 "packages/authoring/terrain.ts": "e0b5769fc0853911aaa91506add32a5f30d045eb3a285dab8c8045d94d5a212d",
131 "packages/authoring/undo.ts": "1ef1a0b426486ca3f4263ff0fa8127b5a2c47ef520f1ba883e8362b3e373ddf4",
132 "packages/terrain/compiler.ts": "d4785c8f4b8289b7835c3ae1e4e42096d4b83d9b45606217bf0c11d14f282819",
133 "tests/authoring-proposals.test.ts": "4796fa8a459c7c36786877ee8f1cf9e1d2bbfe67dcec0d551abd8ab7c55f602f",
134 "tests/authoring-terrain.test.ts": "4acf0a81ef751d11300bdaefe2cb7d84944619180103989db048125846c96d35",
135 "tests/browser/editor-terrain-tools.spec.ts": "48d77d106c1dcacf41bb6f1b52979d4250230a2b05e8e74474eaeb7d4ad40834",
136 "tools/cli/author.ts": "16b4a4ae5bb91e6cf9fea43d177a6c48f409a4d1ff747f648e44c51ad491d817",
137 "tools/cli/check-boundaries.ts": "a66f59678cea8840bfc00db15edbfc71accdd63161e9d8e3b4d4539f9ae77a3b"
138 }
139}
140