Kudzu 0.8.17 - Command ModuleIR
Kudzu 0.8.17 lands the first Goal A vertical slice: supported command handlers now pass through plain JSON-safe ModuleIR and focused source codegen without changing deploy behavior.
Highlights
- Represents direct setter arithmetic, primitive setter values, and state logging as plain command data.
- Assigns deterministic numeric signal and handler slots while preserving lexical state-owner identity.
- Preserves unary-plus and negative-zero semantics with JSON-safe syntax metadata.
- Keeps non-finite numeric forms on the existing generic handler path.
- Retains real repository-relative source ranges and omits invented positions for synthetic handlers.
- Leaves initial values, final state IDs, route plans, and runtime ownership on their existing paths.
Validation
npm run checkpasses with 132 generated pages and 2 interactive pages.npm testpasses 166/166.- Focused compiler tests and production build pass on Node 22.
- Worker graph remains 907 B raw / 475 B gzip.
- Window graph remains 12,148 B raw / 5,427 B gzip.
- The 21-run clean-build median remains within the 5% architecture gate.
- A packed 0.8.17 tarball installs, typechecks, and builds a clean generated starter.
Upgrade
npm install @kudzujs/core@^0.8.17create-kudzu remains 0.1.101 because its unchanged template already accepts @kudzujs/core@^0.8.15.