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
Visual annotation plugin that lets you select elements in local app previews and send structured UI feedback to your agent.
- Select elements directly in local app previews
- Sends structured UI feedback to your agent
- Built as a DSH plugin for developer workflows
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:alaliqing/dsh-annotate#v0.1.15Install 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 |
|---|---|---|---|
| v0.1.15 | ○ | · | · |
| v0.1.14 | · | ○ | ○ |
v0.1.15github○ 1 ecosystem plugin2026-10-21
https://github.com/alaliqing/dsh-annotate
○dsh 0.2.1-rc.2current2026-10-21Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.2.1-rc.2
- • Plugin artifact: github · https://github.com/alaliqing/dsh-annotate#v0.1.15
ID: dsh-annotate-3@v0.1.15@dsh0.2.1-rc.2 · profile: l3-fullscan
Issued: 2026-10-21 · expires: 2026-10-28
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.
v0.1.14github○ 2 ecosystem plugin2026-10-18
https://github.com/alaliqing/dsh-annotate
○dsh 0.2.1-alpha.42026-10-16Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.4
- • Plugin artifact: github · https://github.com/alaliqing/dsh-annotate#v0.1.14
ID: dsh-annotate-3@v0.1.14@dsh0.2.1-alpha.4 · profile: l4-sandbox
Issued: 2026-10-16 · expires: 2026-10-23
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-14Ecosystem plugin
- • Node.js: v24.14.0
- • DSH: 0.2.1-alpha.2
- • Plugin artifact: github · https://github.com/alaliqing/dsh-annotate#v0.1.14
ID: dsh-annotate-3@v0.1.14@dsh0.2.1-alpha.2 · profile: l4-sandbox
Issued: 2026-10-14 · expires: 2026-10-21
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.
Author badges
Embed the official badges in your README to showcase security & install-test status:
`[](https://www.dsh.so/artifact/dsh-annotate-3/)`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.
v0.0.0v0.1.15git2026-10-21v0.1.15same versionclean · gitVet is an AST static scan (npm artifact or git source).
show static findings (4)
- warningnetIp · network
examples/demo-app/server.mjs:49const url = new URL(req.url ?? '/', `http://127.0.0.1:${port}`) - warningnetIp · network
examples/demo-app/server.mjs:139console.log(`fixture dev server: http://127.0.0.1:${port}${base} (base ${base})`) - warningnetIp · network
packages/dsh-app-bridge/lib/index.js:104const target = new URL(config.target ?? 'http://127.0.0.1:5173') - warningnewFunction · code-exec
scripts/check.mjs:60const dsaI18n = new Function(`${i18nSource}\nreturn dsaI18n`)()
show 2 audit findings
- mediumOptional app-bridge mounts a loopback dev server on the harness origin, exposing same-origin harness APIs
packages/dsh-app-bridge/lib/index.js:196Any script served by the bridged dev server executes at the harness origin. The credential stripping in buildHeaders/buildResponseHeaders only covers requests the proxy itself forwards; the app's own same-origin fetch/XHR to /api/* does not go through the proxy and carries the user's harness cookies/credentials, so a compromised dev dependency or the previewed app can act with the user's harness session. Precondition: install the optional dsh-app-bridge package and point it at a dev server.
- lowUpgrade/refusal relay bypasses the Set-Cookie stripping applied to normal proxied responses
packages/dsh-app-bridge/lib/index.js:164With forwardCredentials=false, proxyHttp strips upstream Set-Cookie through buildResponseHeaders, but the WebSocket upgrade (line 164) and refused-upgrade (line 187) paths write all upstream headers verbatim. A loopback dev server can therefore place its Set-Cookie on a harness-origin response, contrary to the stated policy. Browser handling of cookies on 101/failed-handshake responses is inconsistent, so the practical impact is limited.
Shim/overlay code is defensively written, but core host preview/proxy code was not harvested and the optional dsh-app-bridge mounts a dev server on the harness 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-10-18 · activity: Active
• Repo created: 2026-09-20
• Stars: ★ 7 · Forks: 0
• Health: Active — committed within last 30 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).
