REPOSITORY SOURCE

restricted-behavior-acceptance.json

docs/evidence/restricted-behavior-acceptance.json

1{
2  "recordedAt": "2026-10-25T17:49:26.669102+00:00",
3  "baseCommit": "43baccbde7a65ec6812fbd5466722e308bc6bd25",
4  "scope": "Bounded interpreted custom object responses, cooperative shared execution, private creator fault inspection and retained state. Full milestones 0\u201318 remain open.",
5  "fullPlanEstimatePercent": 72,
6  "sourceSha256": {
7    "packages/behavior/script.ts": "b5160c8e2b53a095896a67b3f9df9d8a4bec51e8e964800cb77d0b3cb55197b9",
8    "packages/behavior/object-library.ts": "26104511e189c1119fcccf43cec5e1ce3986342a17f902a9f4b4b815196ed7bf",
9    "services/relay/behaviors.ts": "3d4e9c007388d517ac76c8a5587fcdec2fbc17cc04da6b3470177f45b1b2b79f",
10    "services/relay/server.ts": "c98a44dbb293811d75dfb2443cfbd5788208e7ce57a676ee33ddab782aa1e949",
11    "apps/editor/behaviors.ts": "1e3d96f37415033f0819f44a880755417327c658aace8a6d132c322b3e3f831a",
12    "apps/editor/main.ts": "53cc90bda0fa52e90b3d9bb72bd07e6b85cd47f0a07e26956bbb7208807390cc",
13    "apps/editor/style.css": "fa946bbab42dee1d0aeb7df50a0396694a2b865e3a632a40e5128654b113575f",
14    "tests/behavior-script.test.ts": "00c18fc0a1d42f930a04ceac33a3d887ed89d53f7c769565a86c2d44c35a3ef9",
15    "tests/behavior-room.test.ts": "d747cbb0e379a6e1774536f4138c603b8213cf136e228825b27b5eac55bb5cfb",
16    "tests/browser/editor-scripts.spec.ts": "713e530e3a9802c8f8c524a00659ccbb8f0b452e5627c5aa3ec1ba3f61cd1705",
17    "tests/browser/editor-behaviors.spec.ts": "2416b13cfc21d5a10cd32445dce2d88210595ac802ea3e0d3590a0541eb603c2",
18    "tools/cli/benchmark-scripts.ts": "80a893f2ff5e985294a8ce610711efc92d2408942f66a490c0fc4f20662ff25a",
19    "package.json": "c7c919d0f7d45617b46fdac0357b0c0530e91565f522cd98b8df31c1a61cc964"
20  },
21  "environment": {
22    "node": "22.23.4",
23    "playwright": "1.56.1",
24    "browser": "Chromium 141 headless shell",
25    "graphics": "SwiftShader WebGPU/Vulkan on Linux",
26    "editorViewport": [
27      1440,
28      1000
29    ],
30    "travelerViewport": [
31      960,
32      640
33    ]
34  },
35  "checks": {
36    "typeAndImports": {
37      "result": "passed; 129 package source files",
38      "log": "restricted-behavior-check.log"
39    },
40    "headless": {
41      "total": 712,
42      "pass": 656,
43      "fail": 0,
44      "skip": 56,
45      "log": "restricted-behavior-headless.tap"
46    },
47    "browser": {
48      "pass": 2,
49      "fail": 0,
50      "reports": "restricted-behavior-browser-reports.json",
51      "logs": [
52        "restricted-behavior-browser.log",
53        "restricted-behavior-glow.log"
54      ]
55    },
56    "benchmark": {
57      "report": "restricted-behavior-benchmark.json",
58      "note": "Final measurement run after the full suite exited; per-intent room preparation/restore/execute/export excludes network and fsync. No VM/WASM implementation benchmarked."
59    }
60  },
61  "verified": [
62    "Owned JSON source and engine-owned literal capability grants; no eval, host globals, imports or network operations in the language",
63    "Instruction, logical allocation, depth, collection, locals and command bounds; malformed/executable/prototype-bearing source rejected",
64    "Host transaction rolls back state, material selection, RNG and outbox on failure; three faults park the binding",
65    "Source/configuration changes rearm faults; unrelated edits retain them; same-kind revisions retain private counts and kind switches reset them",
66    "Two browser travelers contribute to the third-touch response, observe live color edits without counter reset and recover after a faulty source is repaired",
67    "Authenticated creator inspection shows the applied revision, fault count and JSON source path; unauthenticated request receives 401",
68    "Actual socket relay restart retains private count and identity; duplicate intent does not advance the counter; public packets omit the private script state component",
69    "Existing Touch glow save/apply/edit/remove/restore journey remains functional"
70  ],
71  "developmentFindings": [
72    "Initial interpreter fixtures retained a competing nearby beacon and interacted with it; removed that unrelated interaction from the fixture.",
73    "Running the independent authored-world browser journeys against one server reused the previous world identity. Split the commands into isolated fixtures and await the accepted document hash before joining.",
74    "Existing Touch glow journey timed out on the committed baseline as well as the change with three software-rendered pages. Explicit 960\u00d7640 traveler viewports bound fixture rendering load; the original 60-second deadline and assertions remain unchanged. This does not establish a production rendering performance fix.",
75    "Native socket tests first ran under a sandbox that could not bind sockets; reran the owned fixtures with local socket permission.",
76    "An initial final-source benchmark overlapped the tail of the headless suite; the recorded acceptance benchmark was rerun after that suite exited."
77  ],
78  "visuals": [
79    "restricted-behavior-source.png",
80    "restricted-behavior-fault.png",
81    "restricted-behavior-shared.png"
82  ],
83  "limitations": [
84    "Allocation units count logical values/keys/characters, not VM heap bytes; no general JavaScript sandbox claim",
85    "Authored adapter schedules onInteract only; static trusted-motion/PostgreSQL worlds still reject behavior-driven objects",
86    "Public untrusted hosting, creator UI isolation, async result scheduling and the full optional AI permission/tool system remain open",
87    "No Docker/Coolify execution, remote CI, physical-device qualification, long-soak or WAN capacity claim",
88    "Character redesign and shared-arrival camera/art polish remain in the final pass",
89    "No numbered roadmap milestone closed; no merge or deployment"
90  ]
91}
92