Back to home@bigfurma-bot

dsh-web-restart

One-click restart for DeepSeek Harness Web UI — arm-to-confirm button pinned to the Settings › General corner, live status dot, detached Linux restarter. Linux port of 1123762794/dsh-web-restart

Stars
0
Language
JavaScript
Created
Aug 25, 2026
Updated
Aug 25, 2026

Introduction

dsh-web-restart

One-click restart for the DeepSeek Harness Web UI — a small Restart DSH control pinned to the bottom-right corner of Settings ▸ General, with an arm-to-confirm guard and a live liveness dot.

Linux port of 1123762794/dsh-web-restart, reworked for the web-profile plugin layer.

Features

  • Pinned corner placement — lives inside the Settings panel (last item of General), absolutely positioned to the panel's bottom-right corner; stays put even when the settings list scrolls. Nothing in the sidebar, no misclicks.
  • Arm-to-confirm — first click only arms the button (red, "Click again to confirm · 5s"); a deliberate second click fires. Auto-disarms after 5 seconds, so it can never go off by accident or stay armed forever.
  • Liveness dot — polls GET /dsh-health every 5 s: green = harness online, red = offline/restarting.
  • Survives its own restart — installed as a bundle-layer profile plugin, so it comes back with the harness it just restarted.

Screenshots

Screenshot 1Screenshot 2Screenshot 3

How it works

PieceFileWhat it does
Hosthost.jsRegisters GET /dsh-health and POST /restart-dsh on the webServer; responds before restarting so the UI can render state
Restarterrestart-dsh-web.shTwo phases in one file: outer re-execs itself into a fresh setsid session and exits (nothing for executor teardown to kill); inner traps TERM/INT/HUP, kills the source-checkout instance, waits for port 3080 to close, relaunches pnpm dsh web detached
Clientclient.jsFactory-form bundle registering the Settings ▸ General item

Safety notes

  • Origin guard: cross-site no-cors POSTs at /restart-dsh are rejected with 403 (drive-by restart-DoS protection; upstream had none).
  • No black boxes: the actual restart logic is fully readable in-repo (upstream delegated to an external PowerShell script outside the repository).
  • No dependencies, no telemetry, no network egress — everything talks to localhost only.
  • Single-click-no-confirm was upstream's default; this fork deliberately requires two clicks within 5 s.

Install (DSH web profile)

git clone https://github.com/bigfurma-bot/dsh-web-restart.git /path/to/dsh-web-restart

Add the dependency (link: so future edits need no reinstall):

// ~/.dsh/profiles/web/package.json
{
  "dependencies": {
    "@deepseek-ai/dsh-web-restart": "link:/path/to/dsh-web-restart"
  }
}

Add the loader row:

# ~/.dsh/profiles/web/cordis.patch.yml
- insert:
    - id: web-restart
      name: '@deepseek-ai/dsh-web-restart'

Then:

cd ~/.dsh/profiles/web && pnpm install

And restart dsh web once manually — after that, the button in Settings ▸ General handles every restart itself (~15–20 s downtime; sessions persist on disk).

Configuration

Paths are constants at the top of each file — adjust to your machine:

  • host.js: SCRIPT (restarter path), LOG (log file)
  • restart-dsh-web.sh: LOG, kill patterns, and the checkout dir + launch command at the bottom (default: cd /home/prime/deepseek-harness && pnpm dsh web)

Requirements: Linux, DSH web profile (bundle-layer plugins), pnpm on PATH.

License

MIT — see LICENSE.