Releases: kkdev92/plantuml-local
Release list
v0.4.0 — rebuilt on vscode-ext-kit 3.x
Rebuilt on @kkdev92/vscode-ext-kit 3.x. Rendering, sanitisation, the worker
queue and the markdown-it plugin are untouched — what changed is how the
extension starts and stops. Diagrams render exactly as they did.
Breaking
-
VS Code 1.125 or later is now required, up from 1.101. The framework's
minimum cascades here. Installations on older versions keep 0.3.0 and stop
receiving updates. -
plantumlLocal.logLevelis a floor, not the only filter. The output
channel is aLogOutputChannelnow, and VS Code decides what one of those
shows — an extension cannot raise its own channel's level. The setting can
still make the log quieter.To see
debug, run Developer: Set Log Level and pick PlantUML Local.
That is a per-channel level and it persists across restarts. In exchange the
channel gains per-level colouring and the panel's own filter.
Changed
Activation is one declaration, validated before VS Code is touched: a duplicate
id or a missing dependency fails at import rather than half-registering at
runtime. The render worker and the debounced preview refresh are owned by the
framework and released on its single cleanup path, in reverse order, within a
shutdown budget.
extendMarkdownIt is declared rather than assembled by hand, which makes
activate asynchronous — VS Code awaits it before reading the contribution,
which is what the Markdown preview has always done.
Full changelog: https://github.com/kkdev92/plantuml-local/blob/main/CHANGELOG.md
v0.3.0
The minimum supported VS Code version is now 1.101 (from 1.96). This is the only change, and it is why this is a minor release rather than a patch.
Changed
VS Code 1.101 is the first release whose extension host runs Node 22 — it moved to Electron 35, which bundles Node 22.15, while 1.96 through 1.100 shipped Node 20.
engines.node has declared >=22.0.0 since 0.2.0 while engines.vscode still allowed 1.96, so that requirement was not actually satisfied by the oldest supported host. Raising the floor makes the declaration true rather than aspirational. The bundle target moves from node20 to node22 accordingly.
| VS Code | Released | Electron | Extension host Node |
|---|---|---|---|
| 1.96 (old floor) | 2024-12 | 32.2.6 | 20.18.1 |
| 1.100 | 2025-05 | 34.5.1 | 20.19.0 |
| 1.101 (new floor) | 2025-06 | 35.5.1 | 22.15.1 |
| 1.125 (current) | 2026-06 | 42.2.0 | 24.15.0 |
Upgrading
If you are on VS Code 1.101 or later — anything from June 2025 onward — nothing changes. Rendering, SVG sanitisation and the Markdown preview integration are identical to 0.2.1.
If you are on VS Code 1.96 through 1.100, this update will not be offered. Your existing 0.2.1 installation keeps working; update VS Code to receive newer releases.
Full changelog: v0.2.1...v0.3.0
v0.2.1
Documentation, third-party licence notices and build tooling. No functional changes — the rendering path, SVG sanitisation and Markdown preview integration are identical to 0.2.0.
Added
- The VSIX now ships
THIRD_PARTY_NOTICES.mdandthird-party/, carrying the copyright and licence texts of every bundled component: PlantUML, Viz.js, Graphviz (EPL-1.0, not MIT), Expat, happy-dom and its dependencies, and the extension kit. The licences of that code require their notices to travel with the package, and previously none shipped. verify-vsixfails the build if a licence text is missing from the package or is unreferenced by the notices file, so a future bundled dependency cannot ship without its notice.
Changed
- README and
SECURITY.mdnow describe the local-rendering and network behaviour as design and implementation rather than as absolute guarantees.SECURITY.mdgains a Non-goals section stating plainly that the render worker is an isolation boundary for JavaScript globals — not a process- or OS-level security sandbox — and that disabling browser-style network APIs is not the same as closing every network path available to Node.js. - README gains a Known Limitations section:
!include, remote themes and images, external sprite libraries, approximate text metrics and the render timeout. - The Marketplace description and the repository description now match the README's wording.
SECURITY.mdsupported-versions table tracks the latest release instead of naming0.1.x;CONTRIBUTING.mdrequires Node 22 to matchengines.nodeand CI; theuntrustedWorkspacesdescription no longer calls the worker "sandboxed".- Development moved to TypeScript 6.0 (from 5.9). Build tooling only — esbuild does the transpiling, so the shipped bundles are unaffected.
Fixed
- The Marketplace badge in the README was dead: shields.io has retired its entire
visual-studio-marketplace/*family, so it rendered as a grey "retired badge".
Full changelog: v0.2.0...v0.2.1
v0.2.0
Migrates to @kkdev92/vscode-ext-kit 1.1.0. Rendering, sanitisation and the Markdown preview integration are unchanged; the work is in the extension's wiring.
Changed
- The output channel is now a native
LogOutputChannel: timestamps, level colours, the Output panel's level dropdown andDeveloper: Set Log Levelall work.plantumlLocal.logLevelis applied on top of the panel's own level selector — raising the setting alone no longer guarantees thattrace/debuglines are visible. - Settings are read through a validated schema, so a hand-edited
settings.jsonfalls back to the declared default instead of reaching the renderer as an unchecked value. plantumlLocal.themechanges are observed per key rather than by filtering whole-configuration events.- Development now requires Node.js 22 or newer (Node 20 reached end of life on 2026-04-30). The shipped bundle still targets the Node 20 runtime of the VS Code 1.96 extension host, so the supported VS Code range is unchanged.
Fixed
- Scratch files under
work/are no longer packaged into the VSIX.
Full changelog: v0.1.0...v0.2.0
v0.1.0
First public release.
Added
- Render
```plantumlfenced code blocks as inline SVG in the built-in
Markdown preview, powered by@plantuml/core
(PlantUML compiled to JavaScript/WebAssembly). No Java, no PlantUML server,
no network access. - Rendering runs in a worker thread on the extension host; only sanitised SVG
is injected into the preview. - Serialised rendering queue — many diagrams per page render correctly, and one
failing diagram never blocks the others. - Syntax errors appear inline at the failing diagram; the rest of the page is
unaffected. - Dark-mode rendering that follows the VS Code colour theme, with a
plantumlLocal.themesetting (auto/light/dark) to pin the palette. PlantUML Local: Clear Render Cache and Re-rendercommand.plantumlLocal.logLevelsetting for the output channel.- Localised UI (English, Japanese).
Security
- SVG output is sanitised in the worker (scripts, event handlers and non-fragment
links are removed) before it reaches the preview. - URL-based
!include/!themedirectives are rejected with an inline message. - happy-dom's bundled self-signed TLS certificate (unused fetch machinery) is
stripped from the worker bundle at build time.