dsh-doctor
asdf17128
Find what your DeepSeek Harness (dsh) patches silently broke — dead patches, config fields dropped by whole-config repla…
PROJECT TOPICS
PROJECT README
English | 中文
A DeepSeek Harness (DSH) Web plugin that adds a QR-code button above the Settings button in the sidebar footer. It runs a small auth-gated reverse proxy so a phone on the same network (or the internet) can scan a QR code and open the web UI securely. It is a persistent bundle plugin (a host half plus a browser half) that loads on every boot.
sidebar.footer.action, id qr-connect) stacked
above the shipped Plugins button.http://<lan-ip>:<port>/?auth=<secret>.http://<public-ip>:<port>/?auth=<secret> (blue).node process on 0.0.0.0:<port>) validates the
secret, issues a session cookie (default 30 days), and forwards to the
loopback web UI — including WebSocket upgrades so live updates reach the phone.0 disables auto-refresh).| File | Purpose |
|---|---|
lib/index.js |
Host half — runs the reverse proxy and the /__qr/* state routes. |
lib/client.js |
Browser half — the QR button and the settings card. |
lib/proxy.cjs |
The auth-gated reverse proxy child process (HTTP + WebSocket). |
cordis.patch.yml |
Composition patch that inserts the plugin row. |
package.json |
Package metadata (dsh.bundle + dsh.client manifest). |
dsh plugin --profile web add github:mervyn-teo/dsh-plugin-qr-connect
Then restart dsh web — host bundles load at boot.
Defaults live in cordis.patch.yml (port, sessionDays, refreshSeconds).
Change them there (or in the profile's own cordis.patch.yml) and restart, or
adjust them at runtime from the settings card. The host half serves three
same-origin routes the browser half uses: GET /__qr/info,
POST /__qr/rotate, and GET|POST /__qr/config.
subprocess, fs, and webServer services mounted.https://api.ipify.org).Local-IP and public-IP detection run in-process (no ip/curl/shell commands),
and manual secret rotation signals the proxy child over its stdin, so the host
half works on Windows, macOS, and Linux.
The proxy exposes the full agent shell to anyone who can reach the port, gated only by the 30s secret and the session cookie. Use a short session length and treat this as a trusted-network convenience, not a hardened remote-access layer.
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。