terrain-acceptance.json
docs/evidence/terrain-acceptance.json
1{
2 "date": "2026-10-25",
3 "baseCommit": "201c8c42f6c3729ffabbc6a8957e1a42e58fa057",
4 "scope": "Heightfield source format 1, hash/revision-pinned sculpt and sample-version undo, incremental halo-aware chunk compiler, static world export, file/standalone CLI, real collision and shared generated-world revisions. Editor brushes and a server-managed terrain source journal are not implemented.",
5 "environment": {
6 "node": "22.23.4",
7 "browser": "Playwright 1.56.1 / Chromium 141 / SwiftShader Vulkan WebGPU",
8 "headlessTmpdir": "workspace .data/ld-terrain",
9 "detachedPortableTmpdir": "/tmp",
10 "isolation": "Fresh isolated browser relay; interactive editor and beta preserved"
11 },
12 "checks": {
13 "headless": {
14 "tests": 904,
15 "passed": 844,
16 "skipped": 60,
17 "failed": 0,
18 "concurrency": 4,
19 "report": "terrain-headless.tap"
20 },
21 "focused": {
22 "passed": 15,
23 "report": "terrain-portable-focused.tap",
24 "coverage": "Eight terrain tests plus seven precomputed-model tests, including standalone executions outside the checkout."
25 },
26 "build": {
27 "passed": true,
28 "packageFiles": 165,
29 "engine": {
30 "engine": "9e778fdb3a6d0b3a996db6e550b0edc6d56ebe79f7fc2dd04e56ec0db531afee",
31 "files": 28,
32 "bytes": 50431163,
33 "output": "/home/jason/coding/dw-web/engine-dist"
34 },
35 "report": "terrain-build.log"
36 },
37 "browser": {
38 "passed": 3,
39 "report": "terrain-browser.json",
40 "startTime": "2026-10-26T01:12:29.583Z",
41 "duration": 31249.545,
42 "expected": 3,
43 "skipped": 0,
44 "unexpected": 0,
45 "flaky": 0
46 }
47 },
48 "observations": {
49 "terrain-shared": {
50 "ids": [
51 "e5b48115-df1a-4aae-8c56-eddfa59c9bda",
52 "07f33299-2f20-44f8-9f53-04d37fcfe02d"
53 ],
54 "across": [
55 18.24550437927246,
56 2.237994432449341,
57 8.130276679992676
58 ],
59 "revision": "3",
60 "publication": "cfa7177acb4bc05012d34e342d854e9a50ac52ef68a70e0395e91c029443e948",
61 "errors": []
62 },
63 "terrain-main": {
64 "changedPixels": 19212,
65 "undoExact": true,
66 "recoveryExact": true,
67 "maximumBuffers": 23,
68 "maximumTextures": 3,
69 "initial": {
70 "buffers": 23,
71 "textures": 3
72 },
73 "disposed": {
74 "buffers": 0,
75 "textures": 0,
76 "chunks": 0
77 },
78 "errors": []
79 },
80 "terrain-worker": {
81 "changedPixels": 19212,
82 "undoExact": true,
83 "recoveryExact": true,
84 "maximumBuffers": 23,
85 "maximumTextures": 3,
86 "initial": {
87 "buffers": 23,
88 "textures": 3
89 },
90 "disposed": {
91 "buffers": 0,
92 "textures": 0,
93 "chunks": 0
94 },
95 "errors": []
96 },
97 "derivedBoundaryStudy": {
98 "chunks": 4,
99 "levels": 8,
100 "boundaryEdgesPreserved": true,
101 "method": "Compare the set of undirected edges occurring in exactly one base triangle with the corresponding set for each decoded generated LOD index stream.",
102 "scope": "One four-chunk meadow fixture; not complete terrain LOD transition qualification."
103 }
104 },
105 "visualReview": [
106 "terrain-main.png"
107 ],
108 "corrections": [
109 {
110 "issue": "Caller mutation could change a terrain brush while source admission awaited its checksum.",
111 "resolution": "Clone the complete request before any await; the same mutation regression fails before the fix and passes afterward.",
112 "retainedReport": "terrain-ownership-initial-failure.tap"
113 },
114 {
115 "issue": "The standalone author/model bundle left meshoptimizer/simplifier external; a temporary output under the checkout could resolve that accidental dependency and mask it.",
116 "resolution": "Bundle the meshoptimizer package root. Detached /tmp executions pass and a new output audit rejects bare meshoptimizer imports regardless of the test temporary-directory location.",
117 "retainedReport": "terrain-headless-initial-failure.tap"
118 }
119 ],
120 "environmentObservation": {
121 "issue": "The first full /tmp run also had four engine-pinning hook failures from cpSync EIO while copying a client assets directory. No code cause was established.",
122 "handling": "The final full suite used the established workspace temporary directory and passed. The focused standalone compiler checks still ran in detached /tmp directories and passed. This does not establish that the /tmp engine-copy failure itself is fixed.",
123 "retainedReport": "terrain-headless-initial-failure.tap"
124 },
125 "limits": [
126 "This is the heightfield foundation. Editor brushes, server-managed sculpt journal, per-chunk streaming, painting, terrain LOD transitions, procedural recipes, vegetation, water and voxels remain open.",
127 "Generated worlds contain static meshes, not the source edit history. Keep the source file; live activation currently uses ordinary whole-world authoring transactions.",
128 "Incremental reuse requires a persistent HeightfieldCompiler instance; separate CLI invocations rebuild their requested output.",
129 "No hardware, Docker/Coolify, PostgreSQL terrain-journal or long-soak qualification is claimed.",
130 "The rendered meadow is a diagnostic surface, not the final environment art pass."
131 ],
132 "progress": {
133 "approximateFullPlanPercent": 79,
134 "numberedMilestonesClosed": [],
135 "goalComplete": false
136 },
137 "sourceSha256": {
138 "package.json": "09860212b623b0a84059a69dde1eaff34a1bfa4956e4346ae0587b7abc125159",
139 "packages/terrain/compiler.ts": "1dcfc19a9686e6d2b83a7d5db97b204fc4581670a0d63283d19216ebcfc0d75b",
140 "packages/terrain/index.ts": "f51b8eff180f8d73d4766ec99ff892c8e7112729ccb74bbc90f2dda5415fd740",
141 "packages/terrain/world.ts": "e83d68e7d9b42725c37a2e3f831b24884ef74ac209d42d06ca63a0846c787ffa",
142 "tests/browser/editor-terrain.spec.ts": "73387cd8a87e230c8af949d9e2dab1258d112daf2eba16cc1fc89dc3710d6a4c",
143 "tests/browser/terrain.spec.ts": "fc269e95c91645d130dfad642870d487a9dae68ac33205b3fb21cc184bab0881",
144 "tests/fixtures/terrain-browser-entry.ts": "5ac7bb648b1b0f337f349114af3bce342072cb58683e07385e3f411292c8c3ce",
145 "tests/fixtures/terrain-browser.worker.ts": "f9caad0d42ffd60dc2fc67bd6c9dfd67853c07484360c8fae48e505163dfc298",
146 "tests/fixtures/terrain-native.ts": "57ba7c26f3233ccf0d89d9e2cae09c8011a7ecdd5f2eae4dacbc5c248364fcbe",
147 "tests/fixtures/terrain-world.ts": "895499e5fe0cc6073758f60c462d073eb117c3540c55fab89fa0327fa001a1d6",
148 "tests/terrain.test.ts": "67514139117c80751fecb42d73d34e97abd31bd3704cbd09b44585d98cafde06",
149 "tools/cli/build-author.mjs": "3dd638d302ae3f1dbcc5dc0656d8a61ff003fcfce7d19412cd4e5485310ca0ab",
150 "tools/cli/check-boundaries.ts": "e5d96bfbe5842b3a39ed2e9a2473b2645bed797d592d8108954cf125af480629",
151 "tools/cli/terrain.ts": "ee55e213c12d82ecf3e5e8261e24b188fbb1b9c120b89d1bd5fe61d5ae1c0e4a"
152 }
153}
154