dsh-clean-desktop-shell 0.1.2 → 0.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.en.md CHANGED
@@ -1,168 +1,181 @@
1
- <div align="center">
2
-
3
- # dsh-clean-desktop-shell
4
-
5
- **A clean desktop shell for DeepSeek Harness, shipped as a DSH plugin**
6
-
7
- Does exactly one thing: wraps your already-configured DSH Web in a clean native desktop window — system tray, single instance, auto-launch, just like a normal app. No frosted glass, no fancy materials. **Clean.**
8
-
9
- [English](README.en.md) · [中文](README.md)
10
-
11
- [![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20macOS-0078D6?logo=windows&logoColor=white)](https://github.com/Icather/dsh-clean-desktop-shell)
12
- [![License](https://img.shields.io/badge/License-MIT-22c55e)](LICENSE)
13
- [![Release](https://img.shields.io/github/v/release/Icather/dsh-clean-desktop-shell?color=blue)](https://github.com/Icather/dsh-clean-desktop-shell/releases/latest)
14
- [![DSH](https://img.shields.io/badge/DeepSeek_Harness-rc.7-4D6BFE)](https://github.com/deepseek-ai/deepseek-harness)
15
- [![Contributors](https://img.shields.io/github/contributors/Icather/dsh-clean-desktop-shell?color=blueviolet)](https://github.com/Icather/dsh-clean-desktop-shell/graphs/contributors)
16
-
17
- </div>
18
-
19
- ## What is this
20
-
21
- `dsh-clean-desktop-shell` is a **DSH-plugin-shaped clean desktop shell**: it wraps an already-running DSH Web (default `http://127.0.0.1:3080`) in a native desktop window — system tray, single instance, auto-launch, so it behaves like any normal desktop app. **No visual changes at all**: no frosted glass, no skinning — purely a window shell.
22
-
23
- Key differences from other desktop clients in the ecosystem:
24
-
25
- | | Other desktop clients (e.g. dsh-desktop family) | This plugin |
26
- |:--|:--|:--|
27
- | **Form** | Standalone Electron app with its own profile | **DSH plugin** mounted into your existing profile |
28
- | **Profile** | New `desktop` profile, plugins/config must be reinstalled | **Reuses your web profile**, zero migration |
29
- | **Visual changes** | Custom title bar / frosted glass etc. | **None** — pure window shell |
30
- | **Upstream** | Pinned version | **Tracks rc.7** |
31
-
32
- ## Architecture
33
-
34
- ```
35
- ┌─────────────────── Core (dsh web / headless service) ───────────────────┐
36
- │ Sessions · Agent · Plugins · Memory live here, decoupled from UI │
37
- └─────────────────────────────────────────────────────────────────────────┘
38
-
39
- ┌───────────────┴───────────────┐
40
- │ dsh-clean-desktop-shell │
41
- │ Electron shell (client)
42
- │ tray · single-instance · │
43
- │ auto-launch │
44
- └────────────────────────────────┘
45
- ```
46
-
47
- - **Default**: loads the local `127.0.0.1:3080` (your configured web profile, zero migration).
48
- - **Remote-capable**: configure any remote DSH address; the shell is just a window. Phones / Linux / other devices can reach the core via browser or PWA — the shell is never bound to a local service.
49
-
50
- ### Platform matrix
51
-
52
- | Platform | Shell | Status |
53
- |:--|:--|:--|
54
- | Windows | ✅ Electron (frameless + native window buttons) | Released (NSIS installer) |
55
- | macOS | Electron (hiddenInset) | Released (CI builds Intel + Apple Silicon DMG) |
56
- | Linux | — (browser / PWA to the core) | Not planned |
57
- | Termux / phone / tablet |(headless / PWA to the core) | Covered by remote core access |
58
-
59
- ## Install
60
-
61
- **Option 1: download the installer from Releases (recommended for end users)**
62
-
63
- - Windows: `DSH-Clean-Desktop-Shell-Setup-<version>.exe`
64
- - macOS: `DSH-Clean-Desktop-Shell-<version>.dmg` (Intel) or `-arm64.dmg` (Apple Silicon)
65
-
66
- The first time you run the Windows installer you may see a SmartScreen warning — **this is normal for unsigned programs, not a virus**, see "Windows SmartScreen warning" below.
67
-
68
- **Option 2: install as a DSH plugin (developers)**
69
-
70
- ```sh
71
- dsh plugin --profile web add dsh-clean-desktop-shell
72
- ```
73
-
74
- Restart `dsh web`, then launch the shell from the tray / shortcut.
75
-
76
- > The shell needs a reachable `dsh web` service (local or configured remote address). See Usage.
77
-
78
- ### Windows SmartScreen warning
79
-
80
- **Why does the warning appear?**
81
-
82
- Our installer has **no code signing certificate** (a personal open-source project — certificates cost a few hundred USD per year). Microsoft Defender SmartScreen is a **reputation system**: it decides whether a program is trusted based on download volume plus a history of clean executions. For a rarely-downloaded, unsigned `.exe` it cannot confirm reputation, so it warns. **This does not mean the file is a virus**: the project is fully open source and the binaries are built by GitHub Actions from this repository (see `.github/workflows/build.yml`).
83
-
84
- **When Edge downloads the file:**
85
-
86
- It may be flagged as "not commonly downloaded". To keep it:
87
-
88
- 1. Hover the download entry and click the `...` menu on the right
89
- 2. Choose **Keep**
90
- 3. Confirm with **Keep anyway**
91
-
92
- **When you double-click the installer:**
93
-
94
- A blue dialog appears: "Windows protected your PC" — Microsoft Defender SmartScreen prevented an unrecognized app from starting.
95
-
96
- 1. Click **More info**
97
- 2. Verify the file name is `DSH-Clean-Desktop-Shell-Setup-<version>.exe`
98
- 3. Click **Run anyway**
99
-
100
- **Alternative: unblock the file once (recommended)**
101
-
102
- Right-click the installer → Properties → General → tick **Unblock** at the bottom → OK. No more warnings afterwards.
103
-
104
- Or bulk-unblock via PowerShell:
105
-
106
- ```powershell
107
- Unblock-File -Path "$env:USERPROFILE\Downloads\DSH-Clean-Desktop-Shell-Setup-*.exe"
108
- ```
109
-
110
- > A code signing certificate (EV or Azure Trusted Signing) would remove this warning entirely, but it costs money and is rarely worth it for individual open-source maintainers. We may adopt signing when the project allows.
111
-
112
- ## Usage
113
-
114
- 1. Start `dsh web` (or configure a remote service address).
115
- 2. Launch the shell: it auto-detects local 3080; if not running it starts the service per configuration.
116
- 3. Drag the window by its top area (right side reserved for native buttons); close minimizes to tray by default.
117
-
118
- **All backend controls live in the tray** the main window stays a pure shell:
119
-
120
- - Start / restart / stop the backend (with progress dialogs; stopping really
121
- shuts down the service on 3080, including externally started instances)
122
- - Auto-detect backend · set the backend install folder (auto-detect default)
123
- - Reload window · check for updates · repo homepage · auto-launch
124
-
125
- **Window reliability (Edge-style instant refresh):**
126
-
127
- - Shows immediately on launch, never waits for the backend
128
- - While the backend is down, a local "backend offline" screen is shown and
129
- re-probed; the real page loads automatically the moment it answers
130
- - The instant the backend stops (tray stop, kill or crash) the window flips
131
- back to the offline screen a stale page never fakes "still alive"
132
- - The offline screen has self-service buttons: reload / start backend /
133
- auto-detect backend / set backend install folder
134
-
135
- ## Development
136
-
137
- ```sh
138
- npm install
139
- npm run build # build the plugin bundle
140
- npm run dev # launch the shell (dev mode)
141
- npm run pack # package NSIS (Win) / DMG (mac)
142
- ```
143
-
144
- ## Changelog
145
-
146
- ### 0.1.1
147
- - Backend lifecycle: fixed `spawn EINVAL` / stuck "starting" on Windows;
148
- "stop backend" now really shuts the service down (including externally
149
- started instances); start/restart/stop show progress dialogs.
150
- - Window reliability: shows instantly on double-click; flips to the offline
151
- screen the moment the backend stops; auto-reconnects when it comes back
152
- (Edge-style instant refresh).
153
- - Offline screen self-service: reload / start backend / auto-detect backend /
154
- set backend install folder.
155
- - Tray: new "reload window" item; macOS builds released (Intel + Apple
156
- Silicon DMG).
157
-
158
- ### 0.1.0
159
- - Initial release: Electron shell skeleton, system tray / single instance / auto-launch, DSH plugin mounting.
160
-
161
- ## Contributing
162
-
163
- Contributions of any kind are welcome bug fixes, features, docs. Please read [CONTRIBUTING.md](CONTRIBUTING.md) first (project layout, dev conventions, commit style, PR flow) and follow [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md). Security issues: report privately via [SECURITY.md](SECURITY.md).
164
-
165
- ## Credits
166
-
167
- - [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) — the core.
168
- - Architecture inspired by [Hermes Agent Desktop](https://github.com/NousResearch/hermes-agent)'s shell/core separation.
1
+ <div align="center">
2
+
3
+ # dsh-clean-desktop-shell
4
+
5
+ **A clean desktop shell for DeepSeek Harness, shipped as a DSH plugin**
6
+
7
+ Does exactly one thing: wraps your already-configured DSH Web in a clean native desktop window — system tray, single instance, just like a normal app. No frosted glass, no fancy materials. **Clean.**
8
+
9
+ [English](README.en.md) · [中文](README.md)
10
+
11
+ [![Platform](https://img.shields.io/badge/Platform-Windows%20%7C%20macOS-0078D6?logo=windows&logoColor=white)](https://github.com/Icather/dsh-clean-desktop-shell)
12
+ [![License](https://img.shields.io/badge/License-MIT-22c55e)](LICENSE)
13
+ [![Release](https://img.shields.io/github/v/release/Icather/dsh-clean-desktop-shell?color=blue)](https://github.com/Icather/dsh-clean-desktop-shell/releases/latest)
14
+ [![DSH](https://img.shields.io/badge/DeepSeek_Harness-rc.7-4D6BFE)](https://github.com/deepseek-ai/deepseek-harness)
15
+ [![Contributors](https://img.shields.io/github/contributors/Icather/dsh-clean-desktop-shell?color=blueviolet)](https://github.com/Icather/dsh-clean-desktop-shell/graphs/contributors)
16
+
17
+ </div>
18
+
19
+ ## What is this
20
+
21
+ `dsh-clean-desktop-shell` is a **DSH-plugin-shaped clean desktop shell**: it wraps an already-running DSH Web (default `http://127.0.0.1:3080`) in a native desktop window — system tray, single instance, so it behaves like any normal desktop app. **No visual changes at all**: no frosted glass, no skinning — purely a window shell.
22
+
23
+ Key differences from other desktop clients in the ecosystem:
24
+
25
+ | | Other desktop clients (e.g. dsh-desktop family) | This plugin |
26
+ |:--|:--|:--|
27
+ | **Form** | Standalone Electron app with its own profile | **DSH plugin** mounted into your existing profile |
28
+ | **Profile** | New `desktop` profile, plugins/config must be reinstalled | **Reuses your web profile**, zero migration |
29
+ | **Visual changes** | Custom title bar / frosted glass etc. | **None** — pure window shell |
30
+ | **Upstream** | Pinned version | **Tracks rc.7** |
31
+
32
+ ## Install
33
+
34
+ > **Status**: plugin-market install (Option 2) is under construction, expected live early tomorrow. **Only Option 1 (the installer) is currently available.**
35
+
36
+ **Option 1: download the installer from Releases (recommended for end users — the only full desktop-app install)**
37
+
38
+ - Windows: `DSH-Clean-Desktop-Shell-Setup-<version>.exe`
39
+ - macOS: `DSH-Clean-Desktop-Shell-<version>.dmg` (Intel) or `-arm64.dmg` (Apple Silicon)
40
+
41
+ The installer **creates a desktop shortcut automatically** and provides the full desktop experience (tray). The first time you run the Windows installer you may see a SmartScreen warning — **this is normal for unsigned programs, not a virus**, see "Windows SmartScreen warning" below.
42
+
43
+ **Option 2: register as a DSH plugin (developers/power users only) — ⚠️ this command does NOT install any desktop app**
44
+
45
+ ```sh
46
+ dsh plugin --profile web add dsh-clean-desktop-shell
47
+ ```
48
+
49
+ > **Important**: Option 2 only "registers" the shell into your DSH profile. **No desktop app appears on your machine** — no installer, no desktop icon, no tray. It is meant for developers who want the shell mounted in the DSH ecosystem (reuses your web profile config, future settings integration). **For a double-clickable desktop app, use Option 1** (or run the source with `npm run dev`).
50
+
51
+ > The shell needs a reachable `dsh web` service (local or configured remote address). See Usage.
52
+
53
+ ### Windows SmartScreen warning
54
+
55
+ **Why does the warning appear?**
56
+
57
+ Our installer has **no code signing certificate** (a personal open-source project certificates cost a few hundred USD per year). Microsoft Defender SmartScreen is a **reputation system**: it decides whether a program is trusted based on download volume plus a history of clean executions. For a rarely-downloaded, unsigned `.exe` it cannot confirm reputation, so it warns. **This does not mean the file is a virus**: the project is fully open source and the binaries are built by GitHub Actions from this repository (see `.github/workflows/build.yml`).
58
+
59
+ **When Edge downloads the file:**
60
+
61
+ It may be flagged as "not commonly downloaded". To keep it:
62
+
63
+ 1. Hover the download entry and click the `...` menu on the right
64
+ 2. Choose **Keep**
65
+ 3. Confirm with **Keep anyway**
66
+
67
+ **When you double-click the installer:**
68
+
69
+ A blue dialog appears: "Windows protected your PC" — Microsoft Defender SmartScreen prevented an unrecognized app from starting.
70
+
71
+ 1. Click **More info**
72
+ 2. Verify the file name is `DSH-Clean-Desktop-Shell-Setup-<version>.exe`
73
+ 3. Click **Run anyway**
74
+
75
+ **Alternative: unblock the file once (recommended)**
76
+
77
+ Right-click the installer → Properties → General → tick **Unblock** at the bottom → OK. No more warnings afterwards.
78
+
79
+ Or bulk-unblock via PowerShell:
80
+
81
+ ```powershell
82
+ Unblock-File -Path "$env:USERPROFILE\Downloads\DSH-Clean-Desktop-Shell-Setup-*.exe"
83
+ ```
84
+
85
+ > A code signing certificate (EV or Azure Trusted Signing) would remove this warning entirely, but it costs money and is rarely worth it for individual open-source maintainers. We may adopt signing when the project allows.
86
+
87
+ ## Architecture
88
+
89
+ ```
90
+ ┌─────────────────── Core (dsh web / headless service) ───────────────────┐
91
+ │ Sessions · Agent · Plugins · Memory live here, decoupled from UI │
92
+ └─────────────────────────────────────────────────────────────────────────┘
93
+
94
+ ┌───────────────┴───────────────┐
95
+ │ dsh-clean-desktop-shell │
96
+ │ Electron shell (client) │
97
+ │ tray · single-instance · │
98
+ │ │
99
+ └────────────────────────────────┘
100
+ ```
101
+
102
+ - **Default**: loads the local `127.0.0.1:3080` (your configured web profile, zero migration).
103
+ - **Remote-capable**: configure any remote DSH address; the shell is just a window. Phones / Linux / other devices can reach the core via browser or PWA — the shell is never bound to a local service.
104
+
105
+ ### Platform matrix
106
+
107
+ | Platform | Shell | Status |
108
+ |:--|:--|:--|
109
+ | Windows | ✅ Electron (frameless + native window buttons) | Released (NSIS installer) |
110
+ | macOS | Electron (hiddenInset) | Released (CI builds Intel + Apple Silicon DMG) |
111
+ | Linux | — (browser / PWA to the core) | Not planned |
112
+ | Termux / phone / tablet | — (headless / PWA to the core) | Covered by remote core access |
113
+
114
+ ## Usage
115
+
116
+ 1. Start `dsh web` (or configure a remote service address).
117
+ 2. Launch the shell: it auto-detects local 3080 — loads the page if the backend is up, otherwise shows the "backend offline" screen where you can start it in one click.
118
+ 3. Drag the window by its top area (right side reserved for native buttons); close minimizes to tray by default.
119
+
120
+ **All backend controls live in the tray** — the main window stays a pure shell:
121
+
122
+ - Start / restart / stop the backend (with progress dialogs; stopping really
123
+ shuts down the service on 3080, including externally started instances)
124
+ - Auto-detect backend · set the backend install folder (auto-detect default)
125
+ - Reload window · check for updates · repo homepage
126
+
127
+ **Window reliability (Edge-style instant refresh):**
128
+
129
+ - Shows immediately on launch, never waits for the backend
130
+ - While the backend is down, a local "backend offline" screen is shown and
131
+ re-probed; the real page loads automatically the moment it answers
132
+ - The instant the backend stops (tray stop, kill or crash) the window flips
133
+ back to the offline screen a stale page never fakes "still alive"
134
+ - The offline screen has self-service buttons: reload / start backend /
135
+ auto-detect backend / set backend install folder
136
+
137
+ ## Development
138
+
139
+ ```sh
140
+ npm install
141
+ npm run build # build the plugin bundle
142
+ npm run dev # launch the shell (dev mode)
143
+ npm run pack # package NSIS (Win) / DMG (mac)
144
+ ```
145
+
146
+ ## Changelog
147
+
148
+ ### 0.1.2
149
+ - Windows auto-update: tray "check for updates" now downloads in the
150
+ background with progress and installs on restart (electron-updater);
151
+ macOS keeps the manual download flow.
152
+ - Launch-time backend auto-start removed (fully manual now, no longer
153
+ fights an explicit "stop backend").
154
+ - Contributor files added (CONTRIBUTING / CoC / SECURITY / issue & PR
155
+ templates).
156
+ - README: Windows SmartScreen install guide; clarified that "plugin
157
+ registration ≠ installing the desktop app".
158
+
159
+ ### 0.1.1
160
+ - Backend lifecycle: fixed `spawn EINVAL` / stuck "starting" on Windows;
161
+ "stop backend" now really shuts the service down (including externally
162
+ started instances); start/restart/stop show progress dialogs.
163
+ - Window reliability: shows instantly on double-click; flips to the offline
164
+ screen the moment the backend stops; auto-reconnects when it comes back
165
+ (Edge-style instant refresh).
166
+ - Offline screen self-service: reload / start backend / auto-detect backend /
167
+ set backend install folder.
168
+ - Tray: new "reload window" item; macOS builds released (Intel + Apple
169
+ Silicon DMG).
170
+
171
+ ### 0.1.0
172
+ - Initial release: Electron shell skeleton, system tray / single instance, DSH plugin mounting.
173
+
174
+ ## Contributing
175
+
176
+ Contributions of any kind are welcome — bug fixes, features, docs. Please read [CONTRIBUTING.md](CONTRIBUTING.md) first (project layout, dev conventions, commit style, PR flow) and follow [CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md). Security issues: report privately via [SECURITY.md](SECURITY.md).
177
+
178
+ ## Credits
179
+
180
+ - [DeepSeek Harness](https://github.com/deepseek-ai/deepseek-harness) — the core.
181
+ - Architecture inspired by [Hermes Agent Desktop](https://github.com/NousResearch/hermes-agent)'s shell/core separation.