dsh-vscode-workbench 0.2.1 → 0.2.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
@@ -29,155 +29,37 @@
29
29
  - **One local workbench**: explorer, Monaco editor, search, Git, terminal, and DSH conversation in one VS Code-style interface.
30
30
  - **Complete file experience**: open text, Markdown, images, PDF, Word, Excel, and PowerPoint files directly; the tree supports drag-and-drop uploads and common file operations.
31
31
  - **Reliable and live**: atomic saves and revision checks prevent silent overwrites, while WebSocket updates flag external workspace changes.
32
- - **Visual Git workflow**: status, staging, commits, branches, diffs, commit files, and a swimlane commit graph.
32
+ - **Visual Git workflow**: status, staging, commits, branches, diffs, commit files, a swimlane commit graph, and AI-generated commit messages from the current changes.
33
33
  - **Persistent workspace context**: restore tabs, tree, views, panels, and widths per workspace; terminals support multiple sessions, splits, and rename.
34
34
  - **Built for DSH**: reuse the DSH conversation surface on the right and manage theme and layout from workbench settings.
35
35
 
36
- ## Features
37
-
38
- - **Files and editor**: lazy explorer with create, upload, drag-and-drop, rename, delete, and Git markers; Monaco tabs provide dirty state, atomic saves, and conflict notices.
39
- - **Preview**: Markdown source, outline, relative links, and images; built-in PDF paging and zoom, plus Word, Excel worksheet tabs, and PowerPoint rendering, with DOC/ODT download support.
40
- - **Language intelligence**: install language servers per language; TypeScript / JavaScript ship with the plugin and can be enabled in settings, Python, PHP, Shell, YAML, JSON, CSS, HTML, and Dockerfile install in one click, and Go, Rust, C/C++, Java, C#, and Lua are detected; includes definition jumps, references, Peek, completion, signature help, and diagnostics.
41
- - **Search and Git**: `@vscode/ripgrep` supports case, whole-word, regex, and path filters; Git covers stage, unstage, discard, commit, branches, diffs, commit files, and the graph.
42
- - **Terminal**: `node-pty` and xterm with up to eight sessions, rename, a right-side switcher, splits, ANSI output, and Ctrl+C.
43
- - **Layout and DSH**: the primary view, terminal panel, and DSH conversation sidebar can be shown and resized independently; settings manage theme, widths, and watcher exclusions.
44
- - **Sync and restore**: workspace file changes stream to the UI after skipping large trees such as `node_modules`, `vendor`, `third_party`, `build`, and `dist`, with extra exclusions configurable in settings; reload restores views, tabs, expanded directories, panels, and layout.
45
-
46
- The workbench mounts through the official `sidebar.footer.action` and `shell.overlay` extension points. It does not replace or disable `ui-layout`.
47
-
48
36
  ## Demo
49
37
 
50
38
  <p align="center">
51
- <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/explorer-0.2.0.png" width="800" alt="Explorer, Monaco editor, terminal, and DSH conversation">
39
+ <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/workbench-light.png" width="800" alt="Explorer, Monaco editor, terminal, and DSH conversation">
52
40
  <br><em>Explorer, Monaco editor, terminal, and DSH conversation</em>
53
41
  </p>
54
42
 
55
43
  <p align="center">
56
- <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/source-control-0.2.0.png" width="800" alt="Source control and commit graph">
57
- <br><em>Source control and commit graph</em>
44
+ <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/source-control-light.png" width="800" alt="Source control, AI commit message, and commit graph">
45
+ <br><em>Source control, AI commit message, and commit graph</em>
58
46
  </p>
59
47
 
60
48
  <p align="center">
61
- <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/language-0.2.0.png" width="800" alt="Language intelligence settings">
49
+ <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/settings-light.png" width="800" alt="Workbench settings">
62
50
  <br><em>Language intelligence and language server management</em>
63
51
  </p>
64
52
 
65
-
66
53
  ## Installation
67
54
 
68
- Plugin 0.2.1 targets DeepSeek Harness `0.2.2-rc.1` (Cordis `4.1.0`). Update Harness before installing; see the table below for older plugin versions.
55
+ Plugin 0.2.3 targets DeepSeek Harness `0.2.2-rc.1` (Cordis `4.1.0`). Update Harness before installing:
69
56
 
70
57
  ```bash
71
58
  npm i -g @deepseek-ai/dsh@0.2.2-rc.1
72
- ```
73
-
74
- ```bash
75
59
  dsh plugin --profile web add dsh-vscode-workbench
76
60
  ```
77
61
 
78
- Installing from the DSH Plugins page or a marketplace also adds the package to `dsh.profile.bundles` and enables it. The CLI command above only writes `dependencies`, so add `dsh-vscode-workbench` to `dsh.profile.bundles` in `~/.dsh/profiles/web/package.json` and restart `dsh web`:
79
-
80
- ```json
81
- {
82
- "dsh": {
83
- "profile": {
84
- "bundles": [
85
- "@deepseek-ai/dsh-base",
86
- "@deepseek-ai/dsh-web-app",
87
- "dsh-vscode-workbench"
88
- ]
89
- }
90
- }
91
- }
92
- ```
93
-
94
- ### First terminal installation
95
-
96
- The terminal uses `node-pty`. If installation reports a blocked build script, merge the following into `~/.dsh/profiles/web/pnpm-workspace.yaml` on the DSH host, preserving existing settings:
97
-
98
- ```yaml
99
- allowBuilds:
100
- node-pty: true
101
- ```
102
-
103
- Newer Harness releases may roll back failed installations, so run the install command again after configuring builds. If the plugin is installed but `node-pty` still cannot load, run:
104
-
105
- ```bash
106
- cd ~/.dsh/profiles/web
107
- pnpm rebuild node-pty
108
- ```
109
-
110
- pnpm can also delay versions published less than 24 hours ago. Retry after the waiting period, or use DSH's "Update now" action when it is offered.
111
-
112
- ### Upgrading an existing installation
113
-
114
- The running plugin manager rejects installing over an existing package when HMR is active. Remove the old plugin before installing the new version. With the CLI:
115
-
116
- ```bash
117
- dsh plugin --profile web remove dsh-vscode-workbench
118
- dsh plugin --profile web add dsh-vscode-workbench
119
- ```
120
-
121
- Reopen the workbench afterwards; restart `dsh web` and refresh the page if needed.
122
-
123
- ### Install fails: incompatible Harness
124
-
125
- If the install ends with only this line, Harness refused the plugin before installing anything — pnpm never ran and no file was written:
126
-
127
- ```
128
- dsh: plugin command failed; diagnostics: ~/.dsh/profiles/<profile>/.plugin-manager/logs/operation-*/pnpm.log
129
- ```
130
-
131
- Harness runs a compatibility preflight first: `engines.dsh` takes precedence; when absent, every `@deepseek-ai/dsh*` peerDependency must match the running Harness version. Prereleases participate in matching. A mismatch aborts installation. The diagnostic log holds the actual verdict:
132
-
133
- ```
134
- dsh: installation rejected: Plugin dsh-vscode-workbench@<plugin version> is incompatible with dsh <Harness version>: peerDependencies {...}
135
- dsh: nothing was installed.
136
- ```
137
-
138
- The plugin marketplace files this under the generic `plugin-side install failure`, so the auto-submitted issue body keeps only the `pnpm.log` path instead of that line.
139
-
140
- | Plugin version | Required Harness |
141
- | --- | --- |
142
- | 0.2.1 | `0.2.2-rc.1` (Cordis `4.1.0`, default baseline); also checked with `0.2.1-rc.5` (Cordis `4.0.5`) |
143
- | 0.2.0 | `0.2.2-rc.1` (Cordis `4.1.0`, default baseline); also checked with `0.2.1-rc.5` (Cordis `4.0.5`) |
144
- | 0.1.14 | `0.2.2-rc.1` (Cordis `4.1.0`, default baseline); also checked with `0.2.1-rc.5` (Cordis `4.0.5`) |
145
- | 0.1.12 | `0.2.1-rc.5` (Cordis `4.0.5`, default baseline); also checked with `0.2.2-rc.1` (Cordis `4.1.0`, Node.js ≥24.9) |
146
- | 0.1.11 | `0.2.1-rc.5` (Cordis `4.0.5`, default baseline); also checked with `0.2.2-rc.1` (Cordis `4.1.0`, Node.js ≥24.9) |
147
- | 0.1.10 | `0.2.1-rc.4` (Cordis `4.0.5`, previous validation baseline) |
148
- | 0.1.9 | `0.2.1-alpha.3` (Cordis `4.0.5-alpha.2`, previous validation baseline) |
149
- | 0.1.8 | `0.1.1-rc.2` |
150
-
151
- No plugin version runs on Harness `0.2.0-rc.2`: 0.1.9 needs the `workingDirectory` service that first shipped in Harness `0.2.1-alpha.2`, while 0.1.8 only targets `0.1.1-rc.2`. Update Harness to `0.2.2-rc.1` before installing plugin 0.2.1, for example with a global npm install:
152
-
153
- ```bash
154
- npm i -g @deepseek-ai/dsh@0.2.2-rc.1
155
- ```
156
-
157
- `dsh plugin allow-version` only bypasses the version gate; it does not supply the missing host services, so the plugin still fails to load on `0.2.0-rc.2`. Update Harness instead.
158
-
159
- ### Harness architecture integration
160
-
161
- Version 0.1.11 updates DSH development dependencies and peers to `0.2.1-rc.5`, keeps Cordis at `4.0.5`, and declares `engines.dsh` explicitly. It also explicitly declares prerelease dependency ranges for `0.2.2-rc.1`. The official `evaluatePluginCompatibility()` validates the installation gate without version exemptions.
162
-
163
- Both dependency environments pass type checking, 52 tests and the build, covering the official version gate, real Harness cookie authentication and session-directory switching regressions. Full DSH browser end-to-end validation has not been run. The next channel requires Node.js ≥24.9.
164
-
165
- Version 0.1.12 focuses on reliability and macOS usability. It preserves and restores unsaved workspace drafts, hardens concurrent saves and file operations, adds a draggable title bar with correct window clearance, and hides the native DSH sidebar chrome while the workbench is active. WebSocket URLs now follow the DSH transport, and terminal startup repairs the `spawn-helper` execute bits. PDF, DOCX, image and Markdown previews were verified in DSH Desktop.
166
-
167
- Version 0.1.14 fixes the overlapping header on Windows Desktop: DSH 0.2 reserves a 40px custom title bar at the top of the window and draws its App and Edit menus there. The workbench now honors `data-windows-titlebar`, starts below that bar, and no longer overlaps sidebar titles such as Source Control, while the title bar drag area remains usable. The development and test baseline moves to Harness `0.2.2-rc.1` / Cordis `4.1.0` while keeping the compatibility range for `0.2.1-rc.5` / Cordis `4.0.5`.
168
-
169
- Version 0.1.14 also targets large repositories and crowded tab strips. The file watcher skips large trees such as `vendor`, `third_party`/`third_part`, `build`, `dist`, `out`, `target`, `.venv`, and `__pycache__` by default, with extra exclusions configurable in workbench settings; running out of watches now disables auto-refresh instead of crashing DSH at the inotify limit. Tabs stay on one line with ellipsis and no native scrollbar, the close-all action stays pinned to the right, and the active tab scrolls into view. The bottom status bar is hidden by default and can be re-enabled in settings.
170
-
171
- Version 0.2.0 adds language intelligence: install a language server per language from settings (TypeScript/JavaScript ship with the plugin and can be enabled in settings; Pyright, Intelephense, Shell, YAML/JSON/CSS/HTML and Docker LS install with one click; gopls, rust-analyzer, clangd, Eclipse JDT LS, csharp-ls and LuaLS need a manual install), with go to definition, find references, Peek, completion, signature help and diagnostics. Opening a file for a language without a server no longer prompts; install it from workbench settings when needed. The editor previews PDF, Word (converted to PDF by LibreOffice), Excel (sheet tabs) and PowerPoint; the explorer supports dragging entries to move them, dragging files out to the desktop or another app, and dropping files on the editor to open them, while previewable Git changes open their preview directly; selected code or files can be added to the DSH conversation. The activity bar can be reordered by dragging and views hidden or restored from a right-click menu; a centered workspace switcher creates workspaces, enters existing ones and switches sessions inside one workspace without reloading the explorer. Watcher exclusions now come from `.gitignore`; a session that is not published yet no longer shows an error at startup; the light terminal uses VS Code's Light ANSI palette; Git changes use the explorer's colourful icons and the graph follows VS Code's rounded links and nodes.
172
-
173
- Version 0.2.1 retries terminal requests while a session is being published, so switching workspaces no longer leaves a failed terminal behind. It tightens the DSH conversation panel, composer and status bar at narrow widths and aligns the workbench with the macOS title bar. Go to definition now triggers Monaco's official command, so Ctrl+click navigates across files on macOS. The UI is closer to VS Code: larger, centered activity-bar icons, rounded tabs without separators, roomier explorer rows, and a DSH whale mark in the empty editor.
174
-
175
- Version 0.1.15 unifies the dark palette: the activity bar, sidebar, tab strip, bottom panel and status bar share `#191a1b`, the editor uses `#121314`, inputs and overlays use `#202122` / `#252526`, and text and accents move to one VS Code-style scale (`#bfbfbf` / `#8c8c8c` / `#6e6e6e`, `#307e9f`). Monaco and the terminal use the same surfaces, and the dark status bar no longer switches to a separate blue background. The light theme follows VS Code Light: the sidebar and terminal use `#f9fafb`, the editor uses `#fff`, separators use `#e5e5e5`, and the sidebar/editor and editor/terminal boundaries get dividers with 8px rounded corners. The Follow DSH mode now follows DSH's light/dark scheme but uses the same palettes as the explicit Dark and Light options, so Follow DSH in dark mode matches the Dark theme exactly. Settings gain an editor font size slider (11–20px) that only affects the Monaco editor for the open file, with a debounced commit so dragging no longer reflows the whole workbench. Activity bar icons use a consistent 18px size with a rounded selected background instead of a left accent bar; the activity bar itself gets a border and 8px top-left/bottom-left corners while staying flush to the window edge. Tabs follow VS Code's top-rounded active tab with an 8px radius, are slightly shorter at 33px, and close on middle-click; the explorer's right edge, the editor group, the terminal and the DSH conversation panel are rounded cards backed by a dedicated gutter color, with their bottom edges flush to the status bar. List rows return to full-width square selection, while inputs, menus and terminal entries use VS Code's corner radii; the terminal tab sidebar shares the terminal surface color, and the xterm canvas reads the panel background so it is panel-gray instead of pure white in the light theme. Sidebar headers, the tab strip, the editor toolbar and panel headers share a 35px height, file/search/Git/terminal rows use 22px, inputs follow VS Code heights, and scrollbars use VS Code-style rounded sliders; the tab-strip bottom line appears only outside the active tab, which stays connected to the editor; the close-all button is gone and tabs use a VS Code context menu (Close, Close Others, Close to the Right, Close Saved, Close All). The editor group, tab strip and terminal gain their missing top/bottom hairline borders, and the activity bar no longer shows a stray scrollbar. The explorer, editor group, terminal and DSH conversation panel share the same outer borders, with the explorer bordered on top and bottom and all cards flush to the top bar and status bar. The editor and terminal form one continuous middle card: their side borders join without a break and only the outer corners are rounded; the editor card regains its bottom corners when the terminal panel is closed. All cards sit flush against the top bar with no remaining top gap; the empty tab strip is hidden when no file is open so the empty editor matches the editor background, and the terminal is a separate rounded card with a 4px gap from the editor. Both panel dividers share a 4px indicator; dragging the explorer or DSH conversation panel below its minimum width hides it, and the matching activity-bar icon restores it. Clicking a search result opens the file, jumps to the matched line and highlights the match in the editor; Markdown files switch to the source view automatically. Source Control now has a branch picker: it lists local branches, marks the current one, and can create and switch to a new branch by name; branches checked out in another worktree are marked and disabled to avoid a failed `git switch`, and a failed switch (for example when local changes would be overwritten) opens a centered error dialog instead of inline red text in the sidebar. Monaco preloads its Chinese language pack, so its built-in menus are Chinese (`zh-cn`); opening a file no longer highlights the first line until the editor is clicked. In the dark theme, hiding the DSH conversation panel keeps the DSH title bar dark instead of turning it white, and the workbench status bar uses VS Code dark/light surfaces instead of a fixed blue. The terminal panel can be dragged down to hide, and dragging up from the editor's bottom edge pulls it back out. The explorer and tab bar use the `vscode-icons` colorful file/folder icon pack, served on demand by the new `/dsh-vscode/file-icons` route. The DSH conversation panel follows the same surfaces in the fixed dark theme. The workbench entry moves into the DSH sidebar panel list next to Plugins and Scheduled Tasks instead of using a floating button, and the DSH conversation panel toggles from the whale icon in the activity bar.
176
-
177
- - Client contributions use `ui-renderer` slots and select the current session through `ui-session`'s `mainView` retain count, replacing the removed `dsh-client-runtime`.
178
- - Files, search, Git and new terminals use `workingDirectory.get(session)`. Workspace selection follows the working-directory projection; missing sessions return 404.
179
- - HTTP and WebSocket routes share Harness authentication and Host/Origin checks through `connection.requestRejection()`. Terminals also require loopback access.
180
- - The conversation panel locates the official `data-phase` container across the new `conversation.content` layout.
62
+ Installing from the DSH Plugins page or a marketplace enables the plugin automatically. After a CLI install, add `dsh-vscode-workbench` to `dsh.profile.bundles` in `~/.dsh/profiles/web/package.json` and restart `dsh web`. The terminal depends on `node-pty`; see [Installation](https://github.com/tingfeng347/dsh-vscode-workbench/blob/main/docs/INSTALL.en.md) for blocked build scripts, upgrades, and Harness compatibility failures.
181
63
 
182
64
  ## Shortcuts
183
65
 
@@ -206,6 +88,13 @@ pnpm build
206
88
 
207
89
  Requires Node.js `^22.19 || >=24`, pnpm 11.7, system Git, and the native build prerequisites for `node-pty` when no prebuild is available.
208
90
 
91
+ ## Docs
92
+
93
+ - [Architecture](https://github.com/tingfeng347/dsh-vscode-workbench/blob/main/docs/ARCHITECTURE.en.md): mounting, DSH services, and Harness compatibility.
94
+ - [Installation](https://github.com/tingfeng347/dsh-vscode-workbench/blob/main/docs/INSTALL.en.md): CLI and marketplace installs, terminal prerequisites, upgrades, and troubleshooting.
95
+ - [Changelog](https://github.com/tingfeng347/dsh-vscode-workbench/releases): release notes.
96
+ - [Release checklist](https://github.com/tingfeng347/dsh-vscode-workbench/blob/main/docs/RELEASE-CHECKLIST.md): validation and packaging steps.
97
+
209
98
  ## License
210
99
 
211
100
  [MIT](LICENSE)
package/README.md CHANGED
@@ -29,156 +29,37 @@
29
29
  - **一体化本地工作台**:资源管理器、Monaco 编辑器、搜索、Git、终端和 DSH 对话集中在一个 VS Code 风格界面。
30
30
  - **完整文件体验**:文本、Markdown、图片、PDF、Word、Excel 和 PowerPoint 文档均可直接打开;目录支持拖放上传和常用文件操作。
31
31
  - **可靠且实时**:原子保存与版本校验避免静默覆盖,WebSocket 会及时标记工作区的外部变更。
32
- - **可视化 Git 工作流**:覆盖状态、暂存、提交、分支、差异、提交文件与泳道式提交图。
32
+ - **可视化 Git 工作流**:覆盖状态、暂存、提交、分支、差异、提交文件与泳道式提交图,并可用 AI 根据当前更改生成提交信息。
33
33
  - **可持续的工作上下文**:按工作区恢复标签、目录、视图、面板与栏宽;终端支持多会话、分屏与重命名。
34
34
  - **贴合 DSH**:右侧直接复用 DSH 对话能力,主题与布局集中在工作台设置中管理。
35
35
 
36
- ## 功能
37
-
38
- - **文件与编辑器**:懒加载目录树、创建、上传、拖放、重命名、删除和 Git 状态;Monaco 多标签编辑支持脏状态、原子保存与冲突提示。
39
- - **预览**:Markdown 支持源码、大纲、相对链接和图片;内置 PDF 翻页缩放,以及 Word、Excel 工作表页签和 PowerPoint 渲染,DOC/ODT 可直接下载打开。
40
- - **语言智能**:按语言安装语言服务器;TypeScript / JavaScript 随插件提供、可在设置中启用,Python、PHP、Shell、YAML、JSON、CSS、HTML、Dockerfile 可一键安装,Go、Rust、C/C++、Java、C#、Lua 支持检测;提供定义跳转、引用查找、Peek、补全、签名帮助与诊断。
41
- - **搜索与 Git**:`@vscode/ripgrep` 支持大小写、全词、正则和路径筛选;Git 提供暂存、撤销、丢弃、提交、分支、差异、提交文件和提交图表。
42
- - **终端**:基于 `node-pty` 与 xterm,支持最多 8 个会话、会话重命名、右侧切换、分屏、ANSI 输出和 Ctrl+C。
43
- - **布局与 DSH**:左侧视图、终端面板和右侧 DSH 对话栏可独立显示和调整;设置面板管理主题、各栏宽度和文件监听排除项。
44
- - **同步与恢复**:工作区文件变化实时推送,默认跳过 `node_modules`、`vendor`、`third_party`、`build`、`dist` 等大目录,可在设置里追加排除项;刷新后恢复活动视图、标签、目录展开、面板和布局。
45
-
46
- 工作台通过官方 `sidebar.footer.action` 与 `shell.overlay` 扩展点挂载,不替换或卸载 `ui-layout`。
47
-
48
36
  ## 演示
49
37
 
50
38
  <p align="center">
51
- <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/explorer-0.2.0.png" width="800" alt="资源管理器、Monaco 编辑器、终端与 DSH 对话">
39
+ <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/workbench-light.png" width="800" alt="资源管理器、Monaco 编辑器、终端与 DSH 对话">
52
40
  <br><em>资源管理器、Monaco 编辑器、终端与 DSH 对话</em>
53
41
  </p>
54
42
 
55
43
  <p align="center">
56
- <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/source-control-0.2.0.png" width="800" alt="源代码管理与提交图表">
57
- <br><em>源代码管理与提交图表</em>
44
+ <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/source-control-light.png" width="800" alt="源代码管理、AI 提交信息与提交图表">
45
+ <br><em>源代码管理、AI 提交信息与提交图表</em>
58
46
  </p>
59
47
 
60
48
  <p align="center">
61
- <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/language-0.2.0.png" width="800" alt="语言智能设置">
49
+ <img src="https://raw.githubusercontent.com/tingfeng347/dsh-vscode-workbench/main/assets/screenshots/settings-light.png" width="800" alt="工作台设置">
62
50
  <br><em>语言智能与语言服务器管理</em>
63
51
  </p>
64
52
 
65
-
66
53
  ## 安装
67
54
 
68
- 插件 0.2.1 适配 DeepSeek Harness `0.2.2-rc.1`(Cordis `4.1.0`)。请先更新 Harness,再安装插件;旧版对应关系见下表。
55
+ 插件 0.2.3 适配 DeepSeek Harness `0.2.2-rc.1`(Cordis `4.1.0`)。请先更新 Harness,再安装插件:
69
56
 
70
57
  ```bash
71
58
  npm i -g @deepseek-ai/dsh@0.2.2-rc.1
72
- ```
73
-
74
- ```bash
75
59
  dsh plugin --profile web add dsh-vscode-workbench
76
60
  ```
77
61
 
78
- 通过 DSH 插件页或插件市场安装时,界面会把它加入 `dsh.profile.bundles` 并启用。用上面的 CLI 命令安装时只写入 `dependencies`,还需要在 `~/.dsh/profiles/web/package.json` 的 `dsh.profile.bundles` 中加入 `dsh-vscode-workbench`,然后重启 `dsh web`:
79
-
80
- ```json
81
- {
82
- "dsh": {
83
- "profile": {
84
- "bundles": [
85
- "@deepseek-ai/dsh-base",
86
- "@deepseek-ai/dsh-web-app",
87
- "dsh-vscode-workbench"
88
- ]
89
- }
90
- }
91
- }
92
- ```
93
-
94
- ### 首次安装终端支持
95
-
96
- 终端使用 `node-pty`。如果安装日志提示其构建脚本被阻止,在 DSH 所在机器的 `~/.dsh/profiles/web/pnpm-workspace.yaml` 中合并以下配置,保留已有设置:
97
-
98
- ```yaml
99
- allowBuilds:
100
- node-pty: true
101
- ```
102
-
103
- 新版 Harness 可能回滚失败的安装,配置后应重新执行安装命令。若插件已安装但终端仍提示 `node-pty` 加载失败,可执行:
104
-
105
- ```bash
106
- cd ~/.dsh/profiles/web
107
- pnpm rebuild node-pty
108
- ```
109
-
110
- 刚发布不足 24 小时的版本可能被 pnpm 的安全等待期拦截。等待后重试即可;DSH 提供“立即更新”时可直接选择它。
111
-
112
- ### 从旧版升级
113
-
114
- 运行中的插件管理器启用 HMR 时,不允许覆盖安装同名包。先在插件管理器中移除旧版,再安装新版;CLI 可使用:
115
-
116
- ```bash
117
- dsh plugin --profile web remove dsh-vscode-workbench
118
- dsh plugin --profile web add dsh-vscode-workbench
119
- ```
120
-
121
- 完成后重新打开工作台,必要时重启 `dsh web` 并刷新页面。
122
-
123
- ### 安装失败:Harness 版本不兼容
124
-
125
- 如果安装只以这一行结束,说明 DSH 在安装前就拒绝了插件,pnpm 没有执行、也没有任何文件被写入:
126
-
127
- ```
128
- dsh: plugin command failed; diagnostics: ~/.dsh/profiles/<profile>/.plugin-manager/logs/operation-*/pnpm.log
129
- ```
130
-
131
- 原因是 Harness 的兼容性预检:优先用插件的 `engines.dsh` 比对当前 Harness 版本;未声明时,检查所有 `@deepseek-ai/dsh*` peerDependencies。预发布版本也参与匹配,不满足就中止安装。诊断日志里能看到真正的结论:
132
-
133
- ```
134
- dsh: installation rejected: Plugin dsh-vscode-workbench@<插件版本> is incompatible with dsh <Harness 版本>: peerDependencies {...}
135
- dsh: nothing was installed.
136
- ```
137
-
138
- 插件市场把这类失败归入通用的 `plugin-side install failure`,所以自动提交的 Issue 里不会带上上面这行,正文只剩 `pnpm.log` 的路径。
139
-
140
- | 插件版本 | 需要的 Harness |
141
- | --- | --- |
142
- | 0.2.1 | `0.2.2-rc.1`(Cordis `4.1.0`,默认基线);另验证 `0.2.1-rc.5`(Cordis `4.0.5`) |
143
- | 0.2.0 | `0.2.2-rc.1`(Cordis `4.1.0`,默认基线);另验证 `0.2.1-rc.5`(Cordis `4.0.5`) |
144
- | 0.1.15 | `0.2.2-rc.1`(Cordis `4.1.0`,默认基线);另验证 `0.2.1-rc.5`(Cordis `4.0.5`) |
145
- | 0.1.14 | `0.2.2-rc.1`(Cordis `4.1.0`,默认基线);另验证 `0.2.1-rc.5`(Cordis `4.0.5`) |
146
- | 0.1.12 | `0.2.1-rc.5`(Cordis `4.0.5`,默认基线);另验证 `0.2.2-rc.1`(Cordis `4.1.0`,Node.js ≥24.9) |
147
- | 0.1.11 | `0.2.1-rc.5`(Cordis `4.0.5`,默认基线);另验证 `0.2.2-rc.1`(Cordis `4.1.0`,Node.js ≥24.9) |
148
- | 0.1.10 | `0.2.1-rc.4`(Cordis `4.0.5`,旧版验证基线) |
149
- | 0.1.9 | `0.2.1-alpha.3`(Cordis `4.0.5-alpha.2`,旧版验证基线) |
150
- | 0.1.8 | `0.1.1-rc.2` |
151
-
152
- Harness `0.2.0-rc.2` 上没有可用的插件版本:0.1.9 依赖 Harness `0.2.1-alpha.2` 才引入的 `workingDirectory` 服务,0.1.8 又只适配 `0.1.1-rc.2`。请先把 Harness 升级到 `0.2.2-rc.1` 再安装 0.2.1,例如 npm 全局安装时:
153
-
154
- ```bash
155
- npm i -g @deepseek-ai/dsh@0.2.2-rc.1
156
- ```
157
-
158
- `dsh plugin allow-version` 只跳过版本闸门,不会补上缺失的宿主服务,在 `0.2.0-rc.2` 上插件仍然加载不起来;请优先升级 Harness。
159
-
160
- ### 新版架构适配
161
-
162
- 0.1.11 将 DSH 开发依赖与 peerDependencies 同步至 `0.2.1-rc.5`,Cordis 保持 `4.0.5`,并显式声明 `engines.dsh`。同时显式声明 `0.2.2-rc.1` 的预发布依赖范围。安装版本闸门使用官方 `evaluatePluginCompatibility()` 验证,无需版本豁免。
163
-
164
- 两套依赖环境均通过类型检查、52 项测试及构建,覆盖官方版本闸门、真实 Harness cookie 认证与会话目录切换回归;尚未完成完整 DSH 页面端到端验证。next 渠道需 Node.js ≥24.9。
165
-
166
- 0.1.12 在此基础上集中修复可靠性与 macOS 使用问题:保留并恢复工作区草稿,加强并发保存和文件操作;补齐可拖动标题栏与窗口留白,修正活动工作台的 DSH 原生侧栏遮挡;WebSocket 地址跟随 DSH transport,终端启动时自动修复 `spawn-helper` 执行位。PDF、DOCX、图片和 Markdown 预览已在 DSH Desktop 中实际验证。
167
-
168
- 0.1.14 修复 Windows Desktop 的顶部叠字:DSH 0.2 的 Windows 自定义标题栏会在窗口顶部预留 40px,并绘制「应用」「编辑」菜单;工作台现在识别 `data-windows-titlebar`,从标题栏下沿开始布局,不再与「源代码管理」等侧栏标题重叠,同时保留标题栏的拖动区域。开发与测试基线同步升级到 Harness `0.2.2-rc.1` / Cordis `4.1.0`,并在 `0.2.1-rc.5` / Cordis `4.0.5` 上保留兼容范围。
169
-
170
- 0.1.14 同时处理大仓库与多标签场景:文件监听默认跳过 `vendor`、`third_party`/`third_part`、`build`、`dist`、`out`、`target`、`.venv`、`__pycache__` 等大目录,并允许在工作台设置里追加排除项;监听资源耗尽时只停用自动刷新,不再让 DSH 因 inotify 上限崩溃。标签栏改为单行省略并隐藏原生滚动条,关闭全部按钮固定右侧,切换标签时自动滚入可视区域。底部状态栏默认隐藏,可在设置中重新开启。
171
-
172
- 0.2.0 新增语言智能:可在设置里按语言安装语言服务器(TypeScript / JavaScript 随插件提供、可在设置中启用,Python Pyright、PHP Intelephense、Shell、YAML / JSON / CSS / HTML、Dockerfile 可一键安装,Go gopls、Rust rust-analyzer、C / C++ clangd、Java Eclipse JDT LS、C# csharp-ls、LuaLS 需手动安装),提供转到定义、查找引用、Peek 多结果、智能补全、签名帮助与诊断;打开未安装语言的文件不再弹窗,需要时从工作台设置里安装。编辑器现在可直接预览 PDF、Word(LibreOffice 转 PDF)、Excel(工作表页签)和 PowerPoint;资源管理器支持拖动移动条目、拖到桌面或其他应用导出、拖到编辑器打开,Git 更改里的可预览文档会直接打开预览;选中代码或文件可一键添加到 DSH 对话。活动栏支持拖动排序和右键隐藏/恢复视图;新增居中的工作区切换窗口,可新建工作区、进入已有工作区并在同一工作区内切换会话,切换会话不再重载文件管理器。文件监听排除项改为自动读取 `.gitignore`;启动时会话尚未就绪不再显示错误;浅色终端改用 VS Code Light ANSI 色板;Git 更改列表使用资源管理器同款彩色图标,Git 图谱改为 VS Code 风格的圆角连线与节点。
173
-
174
- 0.2.1 修复会话尚未发布时终端请求失败的问题,切换工作区会等待会话就绪并自动重试;收紧窄窗口下 DSH 对话栏、输入区和状态栏的对齐,并让工作台与 macOS 标题栏留白一致。Monaco 的转到定义改为触发官方命令,macOS 上的 Ctrl+点击现在可以跨文件跳转。界面进一步对齐 VS Code:活动栏图标增大并统一居中,标签栏改为无分隔线的圆弧标签,资源管理器行高与图标放大,空编辑器加入 DSH 鲸鱼标识。
175
-
176
- 0.1.15 统一深色主题配色:活动栏、侧栏、标签栏、底部面板和状态栏统一为 `#191a1b`,编辑器为 `#121314`,输入框与浮层为 `#202122` / `#252526`,文本和强调色同步到同一套 VS Code 风格色板(`#bfbfbf` / `#8c8c8c` / `#6e6e6e`、`#307e9f`);Monaco 与终端使用相同底色,深色状态栏不再单独使用蓝色背景。浅色主题同步 VS Code Light:侧栏和终端为 `#f9fafb`、编辑器为 `#fff`、分隔线为 `#e5e5e5`,并为侧栏与编辑器、编辑器与终端之间加入分隔线和 8px 圆角。「跟随 DSH」模式按 DSH 的明暗切换使用与「深色」「浅色」相同的色板,因此跟随 DSH 的深色外观与右侧「深色」完全一致。设置中新增「编辑器字体大小」(11–20px),只作用于右侧打开文件的 Monaco 编辑器,拖动时防抖提交,不再让整个工作台重新排版。活动栏图标统一为 18px,选中态改为 VS Code 的圆角背景并去掉左侧蓝条;左侧活动栏增加边框和左侧上下 8px 圆角,仍然贴满窗口左边;标签栏改为 VS Code 的顶部圆角活动标签并收紧到 33px,支持鼠标中键关闭;活动标签顶部圆角加大到 8px;标签栏底线只在非活动区域显示,活动标签直接与编辑器连通。资源管理器右侧、编辑器组、终端和 DSH 对话栏改为圆角卡片,间隙使用独立的 gutter 底色,卡片底部直接贴住状态栏。列表恢复整行方角,输入框、菜单和终端按 VS Code 的圆角尺寸调整;终端标签侧栏与终端主区统一使用相同底色,终端画布背景会读取面板的实际底色(浅色下为面板灰,而不是纯白)。侧栏头、标签栏、编辑工具栏和面板头统一为 35px,文件/搜索结果/Git/终端列表行统一为 22px,输入框高度对齐 VS Code,滚动条改为 VS Code 风格的圆角滑块;编辑器组、标签栏和终端补齐顶部/底部细线,活动栏隐藏多余滚动条。资源管理器、编辑器组、终端和 DSH 对话栏统一 4px 上下留白和外边框,资源管理器补齐上下边线;中间的编辑器与终端合并为一张连续卡片,左右边框不断开,只在最外层保留圆角;终端面板关闭时编辑器卡片会自动补全底部圆角。所有卡片顶部直接贴住标题栏,不再保留 4px 上缝隙;未打开文件时隐藏空标签栏,空编辑区与编辑器背景一致;终端作为独立圆角卡片,与编辑器之间保留 4px 空隙。左右分隔条统一为 4px 指示线;将资源管理器或 DSH 对话栏拖到最小宽度以下会自动隐藏,可通过活动栏对应图标恢复。搜索结果点击后会打开对应文件、跳到匹配行并在编辑器中高亮匹配词;Markdown 文件会自动切到源码视图。源代码管理的分支名改为下拉选择器:列出本地分支、标记当前分支,并可直接输入名称创建并切换新分支;已在其他 worktree 检出的分支会标记并禁用切换,避免 `git switch` 报错;切换失败(例如本地修改会被覆盖)会弹出居中的错误对话框,而不是在侧栏显示内联红字。右侧「全部关闭」按钮已移除,改为标签右键菜单(关闭、关闭其他、关闭右侧标签页、关闭已保存、全部关闭);Monaco 编辑器显式预加载中文语言包,右键菜单等内置文案使用中文(`zh-cn`);打开文件时不再默认高亮第一行,只有点击编辑器后才显示当前行高亮。深色主题下隐藏 DSH 对话栏时,工作台会继续保持 DSH 标题栏的深色,不再出现顶部变白;工作台底部状态栏改为 VS Code 风格的深/浅色底,不再固定为蓝色。终端面板可向下拖动隐藏;隐藏后从编辑器底部边缘向上拖动可重新拉出终端。资源管理器和标签栏改用 `vscode-icons` 彩色文件/文件夹图标包,图标由新增的 `/dsh-vscode/file-icons` 路由按需提供。DSH 对话栏在固定深色模式下也使用同一套底色。工作台入口移入 DSH 侧栏的面板列表(与「插件」「自动化任务」等并列),不再使用右下角悬浮按钮;DSH 对话栏的开关移到活动栏的鲸鱼图标,可随时打开或关闭。
177
-
178
- - 客户端通过 `ui-renderer` 提供的槽位服务注册界面,使用 `ui-session` 的 `mainView` 引用选择当前会话;不再依赖已移除的 `dsh-client-runtime`。
179
- - 文件、搜索、Git 和新建终端通过 `workingDirectory.get(session)` 使用会话当前目录,跟随工作目录投影切换;失效会话返回 404。
180
- - HTTP 与 WebSocket 接口使用 `connection.requestRejection()`,共享 Harness 登录认证及 Host/Origin 校验;终端额外保留 loopback 限制。
181
- - 对话栏按官方 `data-phase` 容器定位,支持新版 `conversation.content` 布局。
62
+ 通过 DSH 插件页或插件市场安装会自动启用。用 CLI 安装后还需在 `~/.dsh/profiles/web/package.json` 的 `dsh.profile.bundles` 中加入 `dsh-vscode-workbench`,再重启 `dsh web`。终端依赖 `node-pty`,首次安装如被构建策略拦截、升级旧版或遇到 Harness 版本不兼容,见[安装与升级](https://github.com/tingfeng347/dsh-vscode-workbench/blob/main/docs/INSTALL.md)。
182
63
 
183
64
  ## 快捷键
184
65
 
@@ -209,6 +90,13 @@ pnpm build
209
90
 
210
91
  需要 Node.js `^22.19 || >=24`、pnpm 11.7、系统 Git,以及 `node-pty` 所需的本机构建环境(预编译产物不可用时)。
211
92
 
93
+ ## 文档
94
+
95
+ - [架构适配](https://github.com/tingfeng347/dsh-vscode-workbench/blob/main/docs/ARCHITECTURE.md):挂载方式、DSH 服务接入与版本兼容范围。
96
+ - [安装与升级](https://github.com/tingfeng347/dsh-vscode-workbench/blob/main/docs/INSTALL.md):CLI 与插件市场安装、终端依赖、旧版升级和排错。
97
+ - [版本记录](https://github.com/tingfeng347/dsh-vscode-workbench/blob/main/docs/CHANGELOG.md):0.1.11 起的版本变化。
98
+ - [发布检查](https://github.com/tingfeng347/dsh-vscode-workbench/blob/main/docs/RELEASE-CHECKLIST.md):发布前的验证与打包步骤。
99
+
212
100
  ## 许可证
213
101
 
214
102
  [MIT](LICENSE)