0.8.17AUGUST 2026

COMMAND MODULE IR

Plain command data.
The same deploy program.

Counter-shaped handlers now cross a JSON-safe ModuleIR boundary before focused codegen restores the existing command-only build path.

1Real ModuleIR slice
0 BRuntime graph delta
166/166Tests passing
01

WHAT CHANGED

Analyze plain data.
Generate known commands.

ANALYSIS

Plain command IR

ADD, SET, and state logging become JSON-safe records instead of generated TypeScript nodes.

IDENTITY

Numeric slots

Signal and handler slots are deterministic while readable names and lexical owners remain available for debugging.

CODEGEN

One-way boundary

Focused codegen consumes ModuleIR signal and handler data, recreating the existing behavior call without source discovery.

NUMBERS

Exact semantics

Unary plus and negative zero survive JSON through explicit syntax metadata; non-finite values use generic handlers.

SOURCE

Honest provenance

Original handlers retain repository-relative ranges while synthetic compiler callbacks invent no locations.

OUTPUT

Byte parity

Unchanged HTML, plans, command runtime, Worker graph, and window graph match 0.8.16 byte for byte.

UPGRADE

Compile commands through data.

$npm install @kudzujs/core@^0.8.17