# What changed in @streamdown/code

> 5 changes in @streamdown/code 1 to 2 from its official release notes, upgrade guides and advisories: 1 breaking, 1 new APIs and options. Each one cited. Sources checked 2026-10-27. HTML: https://unstale.sh/npm/@streamdown/code/

To see which of these apply to a repository, run `npx @unstale/cli init` in it.

## @streamdown/code 2

### Breaking changes

- Node.js 20 or newer is now required when using @streamdown/code. (2.0.0) — [release notes](https://github.com/vercel/streamdown/releases/tag/%40streamdown/code%402.0.0)

### Performance

- Streaming code blocks tokenize only new lines instead of re-tokenizing the whole block on every update. (2.0.0) — [release notes](https://github.com/vercel/streamdown/releases/tag/%40streamdown/code%402.0.0)

### Behavior and default changes

- Streaming results are no longer cached; finished blocks use a size-bounded LRU cache of up to 5,000 results, compare full code, and ignore results for code already passed. (2.0.0) — [release notes](https://github.com/vercel/streamdown/releases/tag/%40streamdown/code%402.0.0)

## @streamdown/code 1

### New APIs and options

- Adds a themes option accepting a [light, dark] pair of bundled theme names or full theme registration objects, enabling custom Shiki themes. (1.1.0) — [release notes](https://github.com/vercel/streamdown/releases/tag/%40streamdown/code%401.1.0)

### Fixes and other changes

- Unknown or mid-stream truncated code block language identifiers now fall back to plain text highlighting, preventing Shiki from throwing on unsupported language names. (1.1.1) — [release notes](https://github.com/vercel/streamdown/releases/tag/%40streamdown/code%401.1.1)
