DSH Plugins Marketplace

DSH Plugins

Plugins

/

Security & Audit

/

dsh-trust-panel

d

dsh-trust-panel

Manifest valid

Plain-language trust dashboard for the dsh trust family: aggregates the nine channels (injection interception, write denials, egress blocks, custody-chain verification, tool-surface and prompt drift,

UI (client)hasBundlePatch

dsh-trust-panel

If this helps you, please give it a star — it helps others find it. Thanks!

demo: a tool-drift and a forgotten-constraint card acknowledged until the light turns green

One plain-language dashboard for the dsh trust family in your DeepSeek Harness (dsh) web sidebar: every interception, denial, drift and forgotten constraint across nine channels, translated into sentences a non-security user can read and act on. Zero LLM calls.

What you see

A status light, nine channel rows, and event cards — that's it:

  • 🟢 All clear — nothing suspicious
  • 🟡 Caught a few things for you — all handled, nothing to do
  • 🔴 {n} thing(s) worth a look (below) — each such card carries a Got it button; acknowledging it clears the state, and the light falls back on its own

Every event answers the same four questions in order: who, what they tried, what we did about it, whether you must act. Engine jargon (INSTR_OVERRIDE, hash-chain digests, surface drift) stays in the expandable detail; the headline is a sentence like:

Something the agent read tried to send your credentials somewhere. It was quarantined — the agent did not follow it.

A long conversation was summarized — the agent forgot 2 of your instructions. They were re-inserted automatically.

The tools available to your agent changed since the last checkpoint. 1 removed: janitor_scan.

A first-run intro card explains the light and the row semantics in one glance; it dismisses with one click and stays dismissed.

Bilingual (zh/en)

The panel follows the DSH i18n system: events travel from the host as translation keys + params, the client renders them through its zh/en dictionaries with the host's locale service (language switches live, browser language as fallback). A regression test pins the contract: every key the host can produce must exist in both dictionaries.

State-like events (tool-surface / prompt / composition drift) carry a content-derived stable id: acknowledging one sticks across polling, and a genuinely new drift arrives as a genuinely new card.

The nine channels

ChannelSourceWhat it watches
What the agent readsdsh-read-guardprompt injection in files and fetches
What the agent changesdsh-pr-gatewrites outside the promised scope
The activity recorddsh-attest-chaintampering with the custody ledger (verified live)
The tools it can usedsh-mcp-testregistry drift vs baseline
Leftovers in your workspacedsh-janitorscan verdicts
Where data is sentdsh-egress-gatedestinations outside the allow list
The instructions it starts withdsh-prompt-driftsystem-prompt changes
The plugins that are loadeddsh-freezeprofile composition
What it remembersdsh-compaction-guardconstraints lost to compaction

Channels report not installed when their plugin/data source is absent — the panel degrades gracefully and still works standalone: the read/egress engines run from the panel's own npm dependencies, so injection and egress events appear even without the sibling plugins.

Install

dsh plugin --profile web add dsh-trust-panel

Configuration (in cordis.yml): eventsPath (panel event log), maxEvents, and the allow/deny domain lists used by the built-in egress mirror.

Design notes

  • The trust path stays deterministic — the panel only reads files and harness events; it never calls a model.
  • Translation, not display — the engine terminology the family logs internally is mapped to plain sentences in translate.ts; the mapping is unit-tested, so a rule rename cannot silently regress the wording.
  • Poll, don't push (v0.1) — the client polls /trust-panel/api/summary every 5 s; a WebSocket upgrade can come later without changing the model.
  • Web client modules are not plain ESM — dsh's web runtime loads client halves through its window.__ModuleLoader__ module table (react arrives via that table's require, not a bundler). This package authors its client directly in that format and ships it unbuilt; a rolldown build is unnecessary at this size. Undocumented upstream, learned the hard way.
  • Native sidebar tabs are address-driven — registering a tab kind shows nothing until the sidebarRight controller opens it; the panel calls openTab once per session so the light is visible out of the box.

Kill criteria

If the family's engines change their ledger formats in incompatible ways and the sync cannot be maintained, this panel should be retired rather than show stale or wrong translations — a trust UI that lies is worse than none.

Compatibility

  • Verified on DSH 0.2.x (source snapshot 0.2.1-alpha.2, 2026-10-19): disposable-profile install → boot → right-sidebar tab compose → /trust-panel/api/summary responds with live aggregation (including a true-positive tool-surface drift detection during the verification boot), Chinese rendering verified in-browser, acknowledge flow verified across poll cycles by browser automation.
  • Node ≥ 20.

License

MIT

Comments

Loading…

Similar plugins

dsh-plugin-gate

by 863683348

Installation safety gate for DSH plugins: antivirus-style scan of install scripts, permissions, secrets and network callbacks on local directories or npm tarballs, returning a BLOCK/WARN/PASS verdict

Security & AuditTools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 0

MIT

JavaScript

Sep 11, 2026

dsh plugin --profile web add dsh-plugin-gate

by tangzheng202202

Self-media workbench plugin: 8-tab dashboard (daily brief, narrative lines, topics, drafts, knowledge-card distill review, sources, publish, advice) with hard guards (48h window, event dedup, card/lin

Workflow & AutomationManifest valid

★ 0

TypeScript

Sep 30, 2026

dsh plugin --profile web add dsh-sparkos

by beartackler

Slash commands ported from other coding agents (setup, connect, install, trust, browse, doctor, status, model, memory, compact, resume, review, mcp, init, suggest, improve, refactor), a zero-dependenc

Tools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 1

↓ 506/wk

MIT

TypeScript

Aug 30, 2026

dsh plugin --profile web add dsh-bridge

by tancheng33

Runtime security gate on the tool pipeline: denies calls naming hosts outside an egress allowlist, redacts credentials from results at the canonical value rather than only the rendered content, and ap

Security & AuditDevelopment & InfrastructureManifest valid

★ 1

↓ 95/wk

MIT

TypeScript

Sep 22, 2026

dsh plugin --profile web add dsh-egress-guard

Static pre-install security auditor for plugin bundles: lifecycle scripts, dynamic execution, credential-exfiltration combos, and patch-layer hazards, with zero dependencies and in-memory tar parsing.

Security & AuditTools & CapabilitiesDevelopment & InfrastructureManifest valid

★ 0

dsh plugin --profile web add dsh-plugin-sentinel

by wulun811

Trust pipeline for deepseek-harness plugins: deterministic static scan (11 rules) + LLM-driven audit protocol + two-part scorecard, with optional runtime guard (T1 sentinel / T2 fs & child_process hoo

Security & AuditDevelopment & InfrastructureManifest valid

★ 4

↓ 1.2k/wk

MIT

TypeScript

Sep 29, 2026

dsh plugin --profile web add @jieai/dsh-plugin-vet