dsh-plugin-verified-search
f0909172434
Verified current-source search workflow for DeepSeek Harness
PROJECT TOPICS
PROJECT README
English | 中文
Export the current DeepSeek Harness conversation as Markdown, PDF (print dialog), or a long PNG image — one click in the session header, zero core changes.
conversation.session.header.actions slot — additive, safely uninstalled, and mirrors its open state via aria-pressed.foreignObject at 2x, images inlined as data URLs, downloaded as one tall PNG (height capped at 16000px).--dsw-alias-* design tokens; menu labels switch zh/en by document language.Requires Node.js ≥ 22 and pnpm (npm install -g pnpm) — dsh plugin add installs the bundle into the profile with pnpm.
dsh plugin --profile web add https://github.com/beijingwahw/dsh-conv-export/archive/refs/tags/v0.1.0.tar.gz
dsh web # restart the server to pick the plugin up
Tag URLs are immutable, so the tarball checksum never changes. (Branch URLs like refs/heads/main move with every push and trip pnpm's ERR_PNPM_TARBALL_INTEGRITY once a lockfile has recorded an older checksum.)
Open any conversation, click the download icon in the session header, pick a format. All three formats download directly — no dialogs, the app tab stays responsive.
lib/client.js), mounted by the stock loader with zero core changes.[data-conversation-scroll] in document order, pairing user rows ([class*="_userRow"] bubbles) with assistant markdown containers ([class*="_markdown_"]) — the stock renderer's stable class contracts.foreignObject, validates it with DOMParser, then rasterizes on a 2x canvas. External images are fetched and inlined first; unreachable ones are dropped rather than tainting the canvas.foreignObject (all evergreen browsers paint it); exotic embedded content may flatten.'pnpm' is not recognized during dsh plugin add → install pnpm first: npm install -g pnpm.
ETIMEDOUT fetching the GitHub tarball → pnpm/Node ignores the Windows system proxy (browsers read it; terminals don't). Fix once, forever — persist your proxy into npm config (pnpm reads it too):
$s = Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Internet Settings'
if ($s.ProxyEnable -and $s.ProxyServer) {
npm config set proxy "http://$($s.ProxyServer)"
npm config set https-proxy "http://$($s.ProxyServer)"
}
Every later dsh plugin add / pnpm / npm call then goes through the proxy with no env vars. Undo with npm config delete proxy; npm config delete https-proxy when running without the proxy tool. Per-session alternative: $env:HTTPS_PROXY = "http://$($s.ProxyServer)". Or switch the proxy tool to TUN/global mode so all traffic is covered. Prefer a fixed port? Pick an obscure one such as 49151 — the last registered port before the dynamic range, so no common service, no ephemeral allocation, and no proxy tool default ever lands on it. Port-free fallback: download the tarball in your browser and install locally: dsh plugin --profile web add .\Downloads\main.tar.gz.
EADDRINUSE ... :3080 on dsh web → a previous dsh web is still bound to the port. Stop it (Ctrl+C in its terminal; on Windows: Get-NetTCPConnection -LocalPort 3080 | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }), or start on another port with dsh web --port 3081.
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。