deepseek-harness
deepseek-ai
DeepSeek Harness: Everything is a Plugin.
PROJECT TOPICS
PROJECT README
A floating one-click restart button for the DeepSeek Harness web GUI.
Pinned to the bottom-right corner of the page: one click arms a confirmation, a second click restarts DeepSeek Harness in place — the page shows a full-screen "restarting" overlay and automatically reloads onto the new host once it is back up. No manual refresh, no second tab, no launcher script.
node …/bin.js web --port N),
preserving workspace, port, profile and flags. No dependency on any launcher
script (DSH启动器.exe, shell wrappers, etc.).taskkill), macOS/Linux
(graceful SIGTERM then SIGKILL).Once published, install into the web profile with one command:
# from npm (once the package is published)
dsh plugin --profile web add dsh-restart-fab
# or straight from GitHub (works even before the npm release)
dsh plugin --profile web add github:miisaka19800/dsh-restart-fab
Then restart DeepSeek Harness once (close the console window / stop the process and start it again) — from then on the button is always there.
dsh plugin --profile web add /path/to/dsh-restart-fab
The profile keeps a link: dependency, so edits to this folder are live after
the next restart.
dsh plugin --profile web remove dsh-restart-fab
button (2nd click) ──POST /dsh-restart-fab/restart──▶ server route
│ spawns detached helper
│ node restart-helper.mjs <pid> <relaunch-spec-json>
helper: sleep 1.6s ──▶ kill server process ──▶ sleep 400ms ──▶ relaunch
(same argv, same cwd)
Windows: new visible console
(close it to stop; child processes
attach to it — no stray popups)
──▶ poll new host ──▶ exit
page: overlay + poll /dsh-restart-fab/ping every 1s
── boot id changed? ──▶ location.reload() on the new host
GET /dsh-restart-fab/ping — health check; reports the host boot id
(<pid>-<timestamp>). The page reloads when it changes.POST /dsh-restart-fab/restart — same-origin only; schedules the restart
through lib/restart-helper.mjs, spawned as a detached, hidden child so
it survives however the server dies. It kills the server process, relaunches
the same command line, and exits once the new host answers.| path | purpose |
|---|---|
client/client.js |
hand-authored CJS bundle, injected into the shell.overlay slot (bottom-right button + restart overlay), zh/en locale |
lib/index.js |
server-side cordis plugin: ping + restart routes on the webServer service |
lib/restart-helper.mjs |
detached helper: kill + relaunch (cross-platform) |
cordis.patch.yml |
profile bundle patch that inserts the plugin entry |
No build step — plain ESM server code and a hand-authored client bundle.
The restart route only accepts same-origin POSTs (the page served by the host
itself). Restarting stops the current dsh web process and starts a new one —
anything running inside it (including model sessions) is interrupted, then
resumed from persistence.
MIT
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。当前命中: 无有效分类标签。