feat(sim): F4.2 the sim protocol, the simulation room and LocalSimHost; M9 measured

packages/protocol holds the one list of /sim messages and checks every
field, naming what is wrong. packages/sim has the simulation room for F and
the web worker: the document's snapshot at start, the engine's clock on the
wall clock with Java's speed as cable delay, subscriptions to cable
activity, a card's new frames and a program's new window lines, capture and
clock kept over a stop, the command line as first action, a core failure
told to every client. LocalSimHost mirrors the document into the worker and
back without echo. M9 in Chromium: 17 examples give the same capture as in
Node, character for character; the room runs in a real worker.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
2026-10-03 08:32:20 +00:00
co-authored by Claude Opus 5.5
parent 800e5de1d3
commit 0fd42f10e2
30 changed files with 1465 additions and 1 deletions
+4 -1
View File
@@ -11,14 +11,17 @@
},
"scripts": {
"test": "vitest run",
"typecheck": "tsc -b && tsc -p packages/core/test && tsc -p packages/fls/test && tsc -p packages/doc/test",
"typecheck": "tsc -b && tsc -p packages/core/test && tsc -p packages/fls/test && tsc -p packages/doc/test && tsc -p packages/protocol/test && tsc -p packages/sim/test && tsc -p packages/sim/browser",
"test:browser": "playwright test",
"check": "npm run typecheck && npm run test",
"hooks": "git config core.hooksPath scripts/hooks",
"oracle": "tools/swift-oracle/run.sh",
"oracle:java": "tools/java-oracle/run.sh"
},
"devDependencies": {
"@playwright/test": "^1.62.1",
"@types/node": "^20.19.0",
"esbuild": "^0.28.2",
"typescript": "^5.9.0",
"vitest": "^3.2.0"
}