REPOSITORY SOURCE

editor-selection-acceptance.json

docs/evidence/editor-selection-acceptance.json

1{
2  "sourceBase": "03be433c0b4fe50af5b744d7dda2ba65bde66d38",
3  "sourceSha256": {
4    "apps/editor/main.ts": "6dafe37e4f9d52b22b3a43ebea79c2a06f496387cef58d9485e29dd1dc758d03",
5    "package.json": "7a062a0af885786c16a7c6b47811df573bac7f2d1868869782772b45501e9ad6",
6    "packages/authoring/selection.ts": "c195d0cd9c04ae6ff7060903ecb0e9d8e53d1b1a8a8d67f9891fa91c57952de1",
7    "tests/browser/editor-selection.spec.ts": "d9aacb2902f561950058f198a3b461b611d393ea18b794c985752e357b14bd62",
8    "tests/editor-selection.test.ts": "f2c42bc8921a10d59e25d0d869748ca4548c10cd586330ac612b4fc1d431d1f8",
9    "tools/cli/check-boundaries.ts": "0fac00164b8634d1af1b998c906440b5888e76085da3ac92ff1fe222fda220a7"
10  },
11  "headless": {
12    "fullSuite": {
13      "tests": 450,
14      "pass": 450,
15      "fail": 0,
16      "skipped": 0
17    },
18    "focused": {
19      "tests": 22,
20      "pass": 22,
21      "fail": 0,
22      "skipped": 0
23    },
24    "finalPrecision": {
25      "tests": 4,
26      "pass": 4,
27      "fail": 0,
28      "skipped": 0
29    }
30  },
31  "browser": {
32    "finalSelection": [
33      {
34        "title": "mixed primitive and imported selection transforms together with pointer cancellation and atomic save undo redo",
35        "status": "expected",
36        "results": [
37          "passed"
38        ]
39      },
40      {
41        "title": "a linked member or shearing scale rejects the entire selection and discard restores the saved scene",
42        "status": "expected",
43        "results": [
44          "passed"
45        ]
46      },
47      {
48        "title": "group saves merge unrelated properties and reject an overlapping member without partial writes",
49        "status": "expected",
50        "results": [
51          "passed"
52        ]
53      },
54      {
55        "title": "viewport picking toggles primitive and imported bounds in the same selection",
56        "status": "expected",
57        "results": [
58          "passed"
59        ]
60      }
61    ],
62    "editorRegression": [
63      {
64        "title": "viewport handles move, rotate and scale a draft with snapping and exact save undo redo",
65        "status": "expected",
66        "results": [
67          "passed"
68        ]
69      },
70      {
71        "title": "cancelled handle gestures preserve earlier drafts and keyboard handles obey gameplay validation",
72        "status": "expected",
73        "results": [
74          "passed"
75        ]
76      },
77      {
78        "title": "mixed primitive and imported selection transforms together with pointer cancellation and atomic save undo redo",
79        "status": "expected",
80        "results": [
81          "passed"
82        ]
83      },
84      {
85        "title": "a linked member or shearing scale rejects the entire selection and discard restores the saved scene",
86        "status": "expected",
87        "results": [
88          "passed"
89        ]
90      },
91      {
92        "title": "group saves merge unrelated properties and reject an overlapping member without partial writes",
93        "status": "expected",
94        "results": [
95          "passed"
96        ]
97      },
98      {
99        "title": "browser editor previews, saves, undoes and exports durable transforms without changing identity",
100        "status": "expected",
101        "results": [
102          "passed"
103        ]
104      },
105      {
106        "title": "two editors reject a stale save and preserve the unsaved local transform",
107        "status": "expected",
108        "results": [
109          "passed"
110        ]
111      },
112      {
113        "title": "atelier creates and duplicates solid shapes, stages deletion and restores exact identities through undo and reload",
114        "status": "expected",
115        "results": [
116          "passed"
117        ]
118      }
119    ],
120    "distinctScenarios": 9
121  },
122  "validation": {
123    "typecheck": true,
124    "packageBoundaries": 88,
125    "productionClientBuild": "Final Playwright run builds an isolated Vite client before all four scenarios.",
126    "productionRelayBuild": "/tmp/dw-selection-server-final"
127  },
128  "ordering": "The 450-test suite preceded a final near-singularity Euler precision correction. The four final geometry/transaction tests include that case; the final four browser journeys, typecheck and client build used the corrected source. The relay build does not import the editor selection helper.",
129  "verified": [
130    "64-object bounded selection produces one atomic transaction of at most 192 property changes.",
131    "Group position, rotation and scale compose about a common pivot without changing source objects.",
132    "Uniform scale preserves rotated shapes; unsupported shear rejects before persistence.",
133    "Mixed primitive/imported selections preserve child transforms and display gold bounds.",
134    "Pointer and keyboard handles, cancellation, no-op input, save, exact undo/redo and reload work.",
135    "A linked member rejects the entire proposal without disk changes.",
136    "Independent collaborator properties merge and survive group undo; an overlapping member blocks the whole save.",
137    "Shift-click viewport picking adds/removes both primitive and imported bounds."
138  ],
139  "initialFindings": [
140    "Returning group fields to their saved transform initially produced an empty transaction error; it now clears the draft without a write.",
141    "An initial viewport-picking test overlapped objects left by earlier scenarios. It correctly picked the older object. The fixture now hides earlier selection objects before the picking scenario; the complete four-scenario matrix passes.",
142    "Group rotation decomposition now uses atan2 with a measured cosine to retain precision near Euler singularities; the matrix-composition test covers this case."
143  ],
144  "localPreview": {
145    "url": "http://localhost:5181/editor.html",
146    "editorStatus": 200,
147    "updatedModuleServed": true,
148    "savedDraftRevision": "0",
149    "savedDraftSha256": "f076388ad340c7b1e1aa84e72368aa6a9d3a3f6546187a2fed1d0fba66c36977",
150    "note": "Observed the authoritative saved draft without writing it. Vite serves the new source; no process was restarted. Browser tests use isolated temporary builds and data. Existing editor relay and beta health both ready."
151  },
152  "remaining": [
153    "Persistent hierarchy/grouping and marquee selection.",
154    "Multi-object duplication/deletion and group presence/remote cages (presence retains the focused member).",
155    "Cross-session durable undo and remaining live-revision retention/fault gates.",
156    "The full milestones 0\u201318 acceptance and deferred character art pass."
157  ],
158  "fullPlanEstimatePercent": 44,
159  "wholeRoadmapMilestonesClosed": []
160}
161