Repository navigation
v0.0.1
First public release.
Added
draw_figurehost tool: a JSON figure spec (or a hand-authored SVG) goes in, a full-width figure file plus one inline Markdown line comes out.- Five spec kinds:
raw_svg(primary path, for free-form structures),architecture,compare,timeline,chart. - Deterministic layout engine in
lib/figures/— 680-unit logical canvas, 1600-wide intrinsic size, golden-snapshot tested, never draws outside the canvas. - SVG sanitizer for model-authored figures: rejects scripts, doctypes, entities, iframes, embeds and objects; strips event attributes, external references,
<image>,<foreignObject>and comments. - Portable
./engineentry with zero DSH or cordis dependencies, so the same renderer works in any Node or browser app. - System-prompt guidance section: when to draw, how to place the figure, and the ASD-STE100-style prose and label rules.
- Soft nudge: one self-contained reminder when a session draws far below the guidance rate.
- PNG raster twin for every figure, because the GUI serves files with a CSP
sandboxheader and Chromium refuses to rasterize an SVG served that way.sharpis a normal dependency and ships prebuilt binaries, so the install needs no build step. - Figure hygiene: per-session
.gitignore, monotonic file numbering, and a 200-file LRU prune that removes a PNG twin with its SVG. - Unit tests for the schema, the four presets, the sanitizer, the host file helpers, the nudge policy, the guidance text, the release gates and the official host-plugin contract, run with
node --test.
Changed
- Packaged for the official install path. The harness supplies the
@deepseek-ai/*runtime packages, so they are peer dependencies, not dependencies: nothing duplicates the runtime inside the profile, and the plugin manager refuses an incompatible runtime before it installs anything.dsh plugin addand the Web Plugins page are the supported ways in; the hand-rolled offline installer is kept only as a fallback for machines that cannot reach a registry. - Renamed from
@local/dsh-inline-figurestodsh-inline-figures; the bundle patch row now names the package, and the two are checked against each other. - Every contributed resource registers through
ctx.effect, so disabling the plugin row removes both the tool and the prompt section. - Added the display metadata the plugin manager reads without activating the plugin:
locale/en.json,locale/zh.json, and an exportedicon.svg. - README in two languages:
README.md(English, default) andREADME.zh.md, each with a switcher at the top and its own rendered hero image (docs/assets/before-after.png,docs/assets/before-after.zh.png). Both come from one script, so they cannot drift apart.scripts/release.mjskeeps the version badge of every variant in step, and the test suite fails if one drifts or if a variant points at the other language's picture.