0.16.16SEPTEMBER 2026

100,000 MODULES · 10 GiB HEAP · STABLE SYMBOLS

Keep the symbols.
Release the old trees.

Kudzu now bounds complete canonical TypeScript records while preserving stable source-position identity and reparsing evicted modules only when needed.

100KTypeScript modules
5.46 GiBClean-build RSS
1,024Canonical records
0.16.16

BOUNDED COMPILER MEMORY

Retain what is hot.
Reparse what is cold.

CAUSE

Measure the retained graph

The full topology exposed roughly 90,000 parent-linked TypeScript ASTs held by an unbounded canonical cache.

BOUND

Keep 1,024 records

A small LRU releases old complete records while source text and stable module identities remain authoritative.

IDENTITY

Preserve stable symbols

Evicted modules reparse to the same source-position symbol IDs, declarations, diagnostics, and output.

SCALE

Compile 100,000 modules

The complete 10,110,000-line topology finishes under the same 10 GiB heap that previously exhausted memory.

INCREMENTAL

Touch one route

The retained session recompiles ten modules, renders one page, and matches a clean changed-source build.

OUTPUT

Ship zero extra bytes

The change affects compiler scratch only and adds no semantic primitive, runtime concept, or browser artifact.

UPGRADE

Bound compiler memory at source scale.

$npm install @kudzujs/core@^0.16.16