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

_84 commits._

### Fixes
- **Merge pull request #2841 from d2lang/agent/fix-negative-padding** (bbb2add)
- **Merge pull request #2839 from d2lang/agent/fix-reversed-edge-index** (5ef950e)
- **Merge pull request #2840 from d2lang/agent/fix-nonfinite-opacity** (6afa386)
- **Merge pull request #2832 from d2lang/agent/fix-theme-override-precedence** (f636ff9)
- **Merge pull request #2830 from d2lang/agent/fix-rich-connection-links** (c935624)
- **Merge pull request #2829 from d2lang/agent/fix-glob-suffix-anchoring** (1df4eef)
- **Merge pull request #2835 from d2lang/agent/fix-wasm-completion-utf16** (1191037)
- **Merge pull request #2836 from d2lang/agent/fix-one-stop-gradient** (bc23e11)
- **Merge pull request #2834 from d2lang/agent/fix-d2js-concurrent-calls** (685535b)
- **Merge pull request #2831 from d2lang/agent/fix-pptx-xml-escaping** (b521d23)
- **d2svg: fix one-stop gradient offsets** (3e01ba4)
- **fix PPTX XML escaping** (c8e5acf)
- **document d2js concurrency fix** (5a6a209)
- **fix d2js concurrent request handling** (2620077)
- **perf: remove compiler and layout cliffs** (c816364)
- **Merge pull request #2815 from d2lang/agent/fix-docker-continuity-cleanup** (31806a6)

### Backend
- **v0.8.2** (1c0d93b)
- **Merge pull request #2853 from d2lang/agent/release-build-hardening** (f70746d)
- **install: preserve legacy release compatibility** (64383d1)
- **release: harden standalone artifacts** (78557f5)
- **Merge pull request #2852 from d2lang/agent/go-1.27-upgrade** (d7e373d)
- **Merge pull request #2845 from d2lang/agent/rough-4.6.6-d2-integration** (a0cb0de)
- **deps: use rough-go v0.2.0** (03aba52)
- **d2sketch: update rough-go to Rough.js 4.6.6** (841e2a1)
- **Merge pull request #2844 from d2lang/agent/dagre-3.1.1-integration** (0e827b0)
- **deps: use Dagro v0.2.0** (e7d431c)
- **d2dagre: cover compound parallel cycles** (ad41186)
- **e2e: accept Dagre 3.1.1 layout output** (fc28444)
- **d2dagre: upgrade Dagro to Dagre 3.1.1** (975bbd9)
- **Merge pull request #2843 from d2lang/agent/elk-0.12-native** (1a60d69)
- **d2elk: use elk-go v0.2.0** (dd762b3)
- **d2elk: upgrade to ELK.js 0.12** (700e933)
- **elk: deconflict overlapping self-loop labels** (7ff3638)
- **d2svg: reject invalid negative padding** (59e4472)
- **compiler: index reversed equivalent edges** (24a58dc)
- **compiler: reject non-finite opacity values** (0964ad0)
- **d2lib: preserve theme override precedence** (5639a66)
- **Merge pull request #2838 from d2lang/agent/pin-elk-go-v0.1.1** (169da02)
- **go: pin elk-go v0.1.1** (8318c75)
- **d2svg: preserve links on rich connection labels** (16d2db6)
- **Merge pull request #2837 from d2lang/agent/deprecate-dead-apis** (844d01d)
- **deprecate legacy and test-only APIs** (ee95be2)
- **compiler: anchor glob suffix matches** (b17035f)
- **d2js: use UTF-16 columns for completions** (8196131)
- **Merge pull request #2833 from d2lang/agent/remove-dead-code** (2198728)
- **remove unreachable code and stale wasm artifact** (d75de35)
- **Merge pull request #2828 from d2lang/agent/changelog-performance-numbers** (27fbcc0)
- **Merge pull request #2827 from d2lang/agent/algorithmic-performance** (6844d24)
- **go: pin dagro v0.1.1** (7518c65)
- **Merge pull request #2826 from d2lang/codex/dependency-modernization** (ac05ca6)
- **Merge pull request #2825 from d2lang/agent/document-native-go-speedups** (5a7a6ba)
- **Merge pull request #2824 from d2lang/agent/use-mathjax-go** (443ffe7)
- **d2latex: pin mathjax-go v0.1.0** (ac6a7ee)
- **d2latex: replace MathJax JavaScript with mathjax-go** (b039f25)
- **Merge pull request #2823 from d2lang/agent/github-windows-msi** (05ca26f)
- **Merge pull request #2822 from d2lang/agent/refresh-release-branding** (9f73d47)
- **Refresh release artifact branding** (8b9af50)
- **Merge pull request #2821 from d2lang/agent/use-rough-go** (5666d93)
- **Merge master into agent/use-rough-go** (b703ae0)
- **Merge pull request #2820 from d2lang/agent/use-elk-go** (87f6900)
- **go: pin elk-go v0.1.0** (fd4b6b4)
- **sketch: update rough-go for cross-architecture parity** (4142d8b)
- **sketch: replace Rough.js with rough-go** (c84ace3)
- **d2elk: replace ELK.js with native elk-go** (0d14510)
- **Merge pull request #2819 from d2lang/agent/use-dagro** (4e2abf0)
- **go: pin dagro v0.1.0** (b83487e)
- **release: ship Dagro license notices** (e1faa6a)
- **d2dagre: use native Go Dagro port** (6775d80)
- **Merge pull request #2817 from d2lang/agent/canonicalize-text-to-diagram-links** (541941e)
- **Merge pull request #2816 from d2lang/agent/migrate-npm-to-d2lang** (3ec3e94)
- **Merge pull request #2814 from d2lang/agent/migrate-dockerhub-to-d2lang** (fd242dc)

### Docs
- **docs: add algorithmic performance numbers** (fda5b70)
- **docs: document native Go speedups** (d3416af)
- **docs: update comparison site repository** (f03f306)

### Chore
- **build: update to Go 1.27.0** (5700632)
- **ci: keep WiX acceptance release-gated** (aed18e1)
- **build: modernize dependencies and toolchains** (9a16d2e)
- **ci: enforce scalar MSI metadata** (8dca13c)
- **ci: normalize MSI product version** (55cc80d)
- **ci: accept Windows archive metadata** (0c55daa)
- **ci: build Windows MSI on GitHub** (7fe4c6d)
- **ci: migrate npm package to d2lang** (dab68b6)
- **ci: fix Docker continuity cleanup** (826ea49)
- **ci: migrate Docker images to d2lang** (785de70)

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