DeepSHPlugins
dsh-restart-fab 專案預覽
GITHUB / COMMUNITY PROJECT

dsh-restart-fab

UI 增強JavaScriptMIT

DSH 網頁介面右下角的一鍵重啟按鈕:全屏遮罩原地重啟 dsh 程序並自動重新整理頁面;無需啟動指令碼,跨 Windows/macOS/Linux。

3 Starsmiisaka19800 更新時間 2026-08-15
訪問 GitHub 倉庫
dsh-restart-fab 專案預覽

專案介紹

中文

DSH 網頁介面右下角的一鍵重啟按鈕:全屏遮罩原地重啟 dsh 程序並自動重新整理頁面;無需啟動指令碼,跨 Windows/macOS/Linux。

English

Floating restart button for the DSH web GUI: restarts the dsh process in place with a full-screen overlay and auto-reloads the page; no launcher script required, works on Windows/macOS/Linux.

專案資訊與收錄訊號

快照 2026-09-11
作者 / 組織
miisaka19800
倉庫
miisaka19800/dsh-restart-fab
GitHub Stars
3
Forks
0
開發語言
JavaScript
許可證
MIT
最近推送
2026-08-15
Manifest
資料中檢測到宣告

公開倉庫不自動等於可商用;許可證與當前相容性以原專案文件為準。Manifest 和資料評分不構成安裝安全認證。

資料評分

57/ 100
維護活躍
81
文件與實用資訊
100
生態關注度
17
安裝便捷訊號
75
專案宣告訊號
100

README 含完整安裝與使用說明;關注度尚低(3)。

評分來自已有資料快照的五維模型,僅作瀏覽參考,不是實際使用評測或安全檢測結論。

安裝與使用

所有專案資料與許可均以對應 GitHub 倉庫為準。

dsh plugin --profile web add github:miisaka19800/dsh-restart-fab

複製命令不會自動執行。請先閱讀倉庫文件,確認環境要求與許可證。

專案截圖

倉庫 README

GitHub 原文

已儲存的倉庫文件快照;文件抓取時間未記錄,可能與上方目錄介紹處於不同版本。安裝前請核對當前倉庫說明。

儲存庫檔案保留原文,指令與授權文字不作自動改寫。

dsh-restart-fab

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.

button platform license

Features

  • Fully self-contained — the restarted host is relaunched with the *exact

same command line* that started the current one (node …/bin.js web --port N), preserving workspace, port, profile and flags. No dependency on any launcher script (DSH启动器.exe, shell wrappers, etc.).

  • Cross-platform — Windows (force kill via taskkill), macOS/Linux

(graceful SIGTERM then SIGKILL).

  • Fast — the old process is killed ~1.6 s after you confirm; the new host

starts immediately.

  • Clean UX — full-screen overlay with a spinner and elapsed timer while

restarting; the page polls the host every second and reloads itself the moment the new host responds. A "refresh now" fallback appears after 60 s.

  • Sessions survive — DeepSeek Harness persists sessions, so your

conversations resume automatically after the restart.

  • Same-origin only — the restart route rejects requests from other origins.

Install

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.

Install from a local checkout (development)

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.

Uninstall

dsh plugin --profile web remove dsh-restart-fab

How it works

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.

Project layout

pathpurpose
client/client.jshand-authored CJS bundle, injected into the shell.overlay slot (bottom-right button + restart overlay), zh/en locale
lib/index.jsserver-side cordis plugin: ping + restart routes on the webServer service
lib/restart-helper.mjsdetached helper: kill + relaunch (cross-platform)
cordis.patch.ymlprofile bundle patch that inserts the plugin entry

No build step — plain ESM server code and a hand-authored client bundle.

Security

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.

License

MIT

使用前核對

安裝步驟、相容版本與授權範圍以原專案當前文件為準。Stars 和評分是快照中的導航訊號。

安裝與排錯 · 專案問題反饋

同類專案