editor-handles-acceptance.json
docs/evidence/editor-handles-acceptance.json
1{
2 "sourceBase": "234dad9d76dd62f542faef913fe99593b5f9bd1a",
3 "sourceSha256": {
4 "apps/editor/main.ts": "afa85c158ae80c554f558a6e336651d9b069f98da8f9842bdc4c0166b5196ae3",
5 "apps/editor/style.css": "671d0b586fafb00a13147b0d9b16a96959f8d7f1e23a6215e73253190a397612",
6 "apps/editor/transform-handles.ts": "4065f77811d4baf9e3a8b3e9311ecd3e8fd3c23e9be0469167a39fa82f30413e",
7 "packages/authoring/index.ts": "835be785e76c161431bf423907a75316479dc80e56cb8decc738af8bc9da8cac",
8 "tests/editor-handles.test.ts": "49088a5423047bb9f545eac1060b1cda68026941ced361aa32a6cb7e113b6aa8",
9 "tests/browser/editor-handles.spec.ts": "5e2f28df4ae5a1e4fda8ffb3aa3b2ce1007ecad892f80167a6ea7c4c4aaa7f70"
10 },
11 "headless": {
12 "passed": 404,
13 "failed": 0
14 },
15 "browser": {
16 "earlierCombinedRun": [
17 {
18 "title": "viewport handles move, rotate and scale a draft with snapping and exact save undo redo",
19 "status": "unexpected",
20 "results": [
21 "failed"
22 ]
23 },
24 {
25 "title": "cancelled handle gestures preserve earlier drafts and keyboard handles obey gameplay validation",
26 "status": "unexpected",
27 "results": [
28 "failed"
29 ]
30 },
31 {
32 "title": "browser editor previews, saves, undoes and exports durable transforms without changing identity",
33 "status": "expected",
34 "results": [
35 "passed"
36 ]
37 },
38 {
39 "title": "two editors reject a stale save and preserve the unsaved local transform",
40 "status": "expected",
41 "results": [
42 "passed"
43 ]
44 },
45 {
46 "title": "atelier creates and duplicates solid shapes, stages deletion and restores exact identities through undo and reload",
47 "status": "expected",
48 "results": [
49 "passed"
50 ]
51 }
52 ],
53 "finalHandleRun": [
54 {
55 "title": "viewport handles move, rotate and scale a draft with snapping and exact save undo redo",
56 "status": "expected",
57 "results": [
58 "passed"
59 ]
60 },
61 {
62 "title": "cancelled handle gestures preserve earlier drafts and keyboard handles obey gameplay validation",
63 "status": "expected",
64 "results": [
65 "passed"
66 ]
67 }
68 ],
69 "physicalGpu": "not claimed; Chromium SwiftShader acceptance"
70 },
71 "checks": {
72 "typescript": "passed",
73 "importBoundaries": 83,
74 "productionClient": "isolated browser build",
75 "productionServer": "passed in /tmp/dw-handles-server",
76 "livePreview": "8791 editor and 8788 garden healthy; editor draft SHA256 unchanged across restart"
77 },
78 "corrections": [
79 "Refresh handle layout synchronously when selection, tool or framing changes, avoiding stale hit positions.",
80 "Re-enable tools after reloading a discarded invalid draft.",
81 "Undo removes originally absent rotation via a validated null rotation command instead of materializing zeroes."
82 ],
83 "visualReview": "Inspected final 1440 x 900 scene captures with rotation rings and local scale handles, axis labels, toolbar, snap and numeric inspector.",
84 "limits": [
85 "One selected object; grouping, multi-selection, plane and uniform-scale handles remain open.",
86 "Euler coordinate rotation; gimbal singularities remain subject to numeric editing and camera changes.",
87 "Near-edge-on or clipped handles are hidden; numeric fields remain available.",
88 "History remains session-local and commits remain revision-preconditioned; collaborative disjoint merge is next.",
89 "No physical-device acceptance, main merge or Coolify deployment."
90 ]
91}
92