REPOSITORY SOURCE

object-behaviors-acceptance.json

docs/evidence/object-behaviors-acceptance.json

1{
2  "capability": "Editor-authored Touch glow with authoritative shared state",
3  "headless": {
4    "passed": 580,
5    "failed": 0,
6    "command": "node --import tsx --test --test-concurrency=4 tests/*.test.ts",
7    "evidence": "object-behaviors-headless.tap"
8  },
9  "followup": {
10    "behavior_room_tests": 2,
11    "status": "passed",
12    "detail": "Replica tested while in reach; restart retains non-default active selection."
13  },
14  "checks": [
15    "TypeScript and package boundaries: 114 source files",
16    "Content-addressed active/inactive materials",
17    "Durable undo across dialogue/behavior replacement",
18    "Native automatic program recovery",
19    "Server-owned behavior requests, reach admission, duplicates, host handoff and restart",
20    "Private state excluded from public packets and protected from elected-browser commits"
21  ],
22  "browser": {
23    "status": "passed",
24    "cases": [
25      {
26        "title": "an editor-authored glow is shared, survives live color edits, and can be removed and restored",
27        "status": "expected",
28        "results": [
29          {
30            "status": "passed",
31            "duration": 47354
32          }
33        ]
34      }
35    ],
36    "stats": {
37      "startTime": "2026-10-25T11:32:38.828Z",
38      "duration": 50380.51,
39      "expected": 1,
40      "skipped": 0,
41      "unexpected": 0,
42      "flaky": 0
43    },
44    "command": "npm run test:browser:behaviors (CI=1, isolated production engine/client, SwiftShader)",
45    "screenshots": [
46      "object-behaviors-controls.png",
47      "object-behaviors-inactive.png",
48      "object-behaviors-active.png",
49      "object-behaviors-recolored.png"
50    ]
51  },
52  "initial_failures": [
53    {
54      "case": "Authoring schema coverage",
55      "cause": "New command increased parser schema count from 20 to 21; old test still expected 20.",
56      "correction": "Updated command count and first-entry ownership assertion; final full suite passed."
57    },
58    {
59      "case": "Initial browser interaction fixture",
60      "cause": "Starting positions were 2.09 metres from a two-metre interaction point.",
61      "correction": "Put both travelers within reach; both toggled the real object successfully."
62    },
63    {
64      "case": "Browser live apply",
65      "observed": "Graphics recovery occurred; room rejected with Graphics are not ready for this update and retained revision 3.",
66      "correction": "Run browser acceptance independently from the CPU-intensive full headless suite. Check recovery status before applying: null means no recovery has occurred; ready means a completed recovery. Final full scenario passed without changing product deadlines or graphics guards."
67    },
68    {
69      "case": "Browser readiness fixture",
70      "cause": "The new test initially required ready even for a healthy renderer with no recovery attribute.",
71      "correction": "Accept the documented initial state or completed recovery; retain rejection of recovering/failed."
72    },
73    {
74      "case": "Browser final interaction fixture",
75      "cause": "After editor tab switches, both players were paused normally; the final E press was ignored. Live recolor, removal and undo had applied to both clients.",
76      "correction": "Use Return to the world before interacting and assert the worker is unpaused. Final scenario passed."
77    }
78  ],
79  "limits": [
80    "One pinned built-in material-toggle module; maximum 16 static bindings",
81    "Surface glow does not cast light on nearby geometry",
82    "Solo lightweight reload saves do not retain behavior state; native checkpoints do and shared relay persists it",
83    "No uploaded JavaScript, general server tick scripts, async behavior jobs, or hostile-code isolation",
84    "No numbered full-plan milestone is closed"
85  ],
86  "verification_order": "580 passing full headless tests after production fixes; two strengthened room tests passed afterward; final type/import checks passed; final browser run passed after test-only fixture corrections."
87}
88