## d2lang/d2 — v0.8.2…v0.9.0

_89 commits._

### Features
- **e2e: add ten real-world diagram fixtures** (0dbc2d7)
- **raster: add pure-Go export rendering** (235c34a)
- **Merge pull request #2863 from d2lang/agent/add-d2js-dispose** (39e1190)
- **d2js: add worker disposal API** (10b7c15)

### Fixes
- **perf: limit PNG filter shortcut to identical rows** (8f5bd50)
- **perf: skip zero residual runs in PNG row filters** (cb8ab86)
- **perf: allocate grid row cache only for multi-object rows** (1f6f801)
- **fix: keep regional raster bounds conservative for extreme geometry** (699f871)
- **perf: bound connection effects to visible stroke and mask regions** (237a2d3)
- **perf: copy only selected import fields** (466eb26)
- **perf: reuse dynamic grid partition measurements** (ad97556)
- **Fix CI failure reporting and interrupted draft uploads** (a8679da)
- **fix: synchronize plugin options and watch test lifecycle** (521161d)
- **perf(svg): reduce SVG payloads with verified rendering parity** (6fc35fb)
- **perf: eliminate repeated work in compilation** (a7d629d)
- **perf: avoid repeated font and glyph processing** (a8ba8ae)
- **raster: fix structured text parity** (cd56453)
- **Merge pull request #2861 from d2lang/agent/fix-remote-icon-compression** (1759981)
- **Merge origin/master into agent/fix-remote-icon-compression** (a27f9eb)
- **Merge pull request #2862 from d2lang/agent/fix-recursive-class-glob-cycle** (75915ca)
- **Merge origin/master into agent/fix-recursive-class-glob-cycle** (c591064)
- **Merge origin/master into agent/fix-remote-icon-compression** (48ad5e9)

### Backend
- **v0.9.0** (d5a5174)
- **Merge pull request #2884 from d2lang/agent/d2-v090-release-prep** (3facad7)
- **Build npm releases from exact D2 tags and stamp WASM versions** (b412b9c)
- **Prepare D2 0.9.0 and d2.js 0.1.34 release notes** (218d7c9)
- **Merge pull request #2883 from d2lang/agent/tala-nested-seed-propagation** (52a5974)
- **Preserve TALA seed configuration in nested layouts** (912bb87)
- **Merge pull request #2882 from d2lang/agent/open-source-tala** (99b0791)
- **open source TALA** (5566e49)
- **Merge pull request #2880 from d2lang/agent/pipeline-performance-2** (c058268)
- **deps: use Dagro v0.2.1 ranking optimizations** (e190744)
- **bench: measure Dagre layout on real-world diagrams** (1f1ef56)
- **textmeasure: reuse font faces and measure glyphs without temporary allocations** (b0b843c)
- **Avoid repeated JSON decoding and corpus copying during rendering** (ba3e964)
- **Merge pull request #2879 from d2lang/agent/pipeline-performance** (70affc0)
- **Merge pull request #2878 from d2lang/agent/readme-weekly-race-badge** (e500d42)
- **Merge pull request #2877 from d2lang/agent/ci-recovery-fixes** (9b3a2dd)
- **Merge pull request #2876 from d2lang/agent/streaming-png-memory** (a25ad90)
- **Merge pull request #2875 from d2lang/agent/remove-discord-ci** (b52ceac)
- **cli: stream PNG rendering to reduce memory usage** (d5cdaa9)
- **Merge pull request #2874 from d2lang/agent/ci-coverage-cleanup** (a8dd6d4)
- **Merge pull request #2873 from d2lang/agent/d2-svg-size-20260905** (a825194)
- **Merge pull request #2872 from d2lang/agent/d2-nonlayout-performance-20260905** (5cfc0d2)
- **Merge pull request #2871 from d2lang/agent/real-world-e2e** (5a067f2)
- **e2e: replace fixture icons with built-in shapes** (5ab6c1a)
- **e2e: clarify third-party icon attribution and terms** (fd51f08)
- **Merge pull request #2870 from d2lang/agent/remove-redundant-code** (0515f60)
- **cleanup: remove unused font work and renderer scaffolding** (a26acab)
- **cleanup: remove redundant Docker test and unused helpers** (33ab46c)
- **Merge pull request #2869 from d2lang/agent/remove-playwright-residue** (40e3b67)
- **release: remove obsolete browser continuity tooling** (e90e3a9)
- **Merge pull request #2868 from d2lang/agent/native-raster-renderer** (8c35339)
- **raster: optimize native export pipeline** (51c7830)
- **Merge pull request #2866 from d2lang/agent/native-markdown-svg** (0d69dca)
- **Merge pull request #2867 from d2lang/agent/architecture-stable-lifeline-id** (07cd321)
- **d2sequence: stabilize lifeline endpoint IDs** (e3c318c)
- **d2svg: satisfy simplified formatting** (ffa06fb)
- **d2svg: align native Markdown with browser rendering** (83b5481)
- **d2svg: render Markdown as native SVG** (5d2f579)
- **Merge pull request #2864 from d2lang/agent/dedupe-docker-playwright** (702e1c8)
- **release: avoid duplicate Docker browser install** (430ef1c)
- **Merge pull request #2860 from d2lang/agent/propagate-png-timeout** (3ac2d83)
- **imgbundler: group local imports** (bda555b)
- **d2compiler: prevent recursive class glob cycles** (b2be5bc)
- **png: honor configured timeout in Playwright** (522661c)
- **imgbundler: decode compressed remote images** (0347090)
- **Merge pull request #2859 from d2lang/agent/docker-release-noninteractive** (2e5c2c5)
- **release: make Docker browser install noninteractive** (b086720)
- **Merge pull request #2854 from d2lang/v0.8.2** (d3a6700)
- **Merge pull request #2857 from d2lang/agent/release-final-audit** (69c8fe0)
- **release: restrict uploaded assets** (8144958)
- **deps: update golang.org/x/image to v0.45.0** (0578338)
- **Merge pull request #2856 from d2lang/agent/windows-draft-archive** (0c0d487)
- **release: hand off draft archive to Windows job** (41b0b29)
- **Merge pull request #2855 from d2lang/agent/release-draft-lookup** (659cd11)
- **release: discover draft releases by listing** (3a00324)

### Tests
- **test: invalidate release checks when scripts change** (a44842c)
- **test: refresh CLI expectations for smaller SVG exports** (d1c7ac4)

### Docs
- **docs: note rendering and measurement performance improvements** (6c08449)
- **docs: note pipeline performance improvements** (83170a3)
- **docs: point race badge to weekly workflow** (22180db)
- **docs: adopt Contributor Covenant code of conduct** (330de6c)
- **docs: note smaller SVG exports** (d48eba7)
- **docs: note compiler and rendering performance gains** (1b65492)

### Chore
- **style: group font cache test imports** (25d2dbd)
- **ci: remove Discord notifications** (76b89e2)
- **ci: preserve release tags and document immutable publication** (3c142fe)
- **ci: restore coverage and simplify release orchestration** (433157c)

_Recap by [Repo Wrapped](https://repowrapped.com/gh/d2lang/d2?utm_source=github-action)._