Plain command IR
ADD, SET, and state logging become JSON-safe records instead of generated TypeScript nodes.
COMMAND MODULE IR
Counter-shaped handlers now cross a JSON-safe ModuleIR boundary before focused codegen restores the existing command-only build path.
WHAT CHANGED
ADD, SET, and state logging become JSON-safe records instead of generated TypeScript nodes.
Signal and handler slots are deterministic while readable names and lexical owners remain available for debugging.
Focused codegen consumes ModuleIR signal and handler data, recreating the existing behavior call without source discovery.
Unary plus and negative zero survive JSON through explicit syntax metadata; non-finite values use generic handlers.
Original handlers retain repository-relative ranges while synthetic compiler callbacks invent no locations.
Unchanged HTML, plans, command runtime, Worker graph, and window graph match 0.8.16 byte for byte.
UPGRADE
npm install @kudzujs/core@^0.8.17