packages/dsh-task-board
zhu1090093659/dsh-web侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
DSH 侧栏里的 JetBrains 式 IDE 工作台:Project 文件树、Commit 面板、泳道图 Git 历史、真实 PTY 终端与内置编辑器(Markdown 预览、全项目查找),并支持聊天文件链接与发送到聊天框的 @ 引用。
把 JetBrains 式 IDE 工作区搬进 DeepSeek Harness 的右侧栏。
Project / Commit / Git / Terminal 四个工具窗围绕插件自带的编辑器,与聊天同屏协作——文件、代码行、提交和终端都留在对话旁边,不用来回切换窗口。
简体中文 · English
DSH 的对话很适合“边聊边改”,但真正改代码时还是要在聊天、终端、文件管理器和 IDE 之间来回跳。IDE Workbench 把一整套 JetBrains 风格的工作区放进 DSH 的右侧栏,并且始终和当前会话在一起:
@路径 引用——选中代码时连同行号和代码一起带上。Alt+1 / Alt+0 / Alt+9 / Alt+F12 切换工具窗;单击预览、双击固定标签;Alt+Insert 新建、F2 重命名、Ctrl+K 聚焦提交、Ctrl+Shift+K 推送。界面 · 功能 :-- · :-- · Project 工具窗。 惰性加载的文件树,JetBrains 状态色(红 = 未跟踪、绿 = 新增、蓝 = 已修改,目录递归染色)。单击选中、双击打开或展开;Ctrl/Shift 多选、拖拽移动(Ctrl = 复制)。新建文件/目录、F2 重命名、Delete 删除(优先进回收站)、F5 复制、F6 移动、Ctrl+X/C/V。收藏夹、树内过滤与全项目文件名快速定位;右键菜单直接 发送到聊天框。 · 内置编辑器。 CodeMirror 6,语法高亮;自动 / 始终可编辑 / 始终只读三档打开模式,自动档下 1 MiB 以内的文本可直接编辑(Markdown 默认进渲染预览)。Ctrl+S 原子保存并保留 UTF-8 / BOM / UTF-16 与 CRLF,脏点与“未保存”提示清晰。外部程序改动触发冲突条,可“从磁盘重新加载”或“覆盖磁盘”;同一文件被自己保存后不再误报。编辑器内查找/替换、光标行列与编码状态栏。 · Markdown 预览。 用宿主 MarkdownText 渲染,表格、任务列表、代码卡与 DSH 聊天排版一致。默认直接进入渲染预览,“预览 / 源码 / 编辑”一键切换;文档大纲可跳转并跟随滚动高亮。打开文档不再先落到源码编辑器里。 · 全项目查找与快速打开。 Ctrl+Shift+F 全项目搜索(被外层占用时用 Ctrl+Alt+F),Aa / 全词 / 正则三个开关全部可用。结果按文件分组并显示命中数、耗时;点击命中直接在编辑器中定位到行。Ctrl+P / Ctrl+Shift+N 按文件名快速打开全项目文件。 · Commit 工具窗。 Changes / Unversioned 两组,勾选即纳入本次提交且列表不跳动;变更列表(Changelist)、按目录分组。Change View(工作区 / 上次修订 / 最新提交)+ 跳转到源码 + 回滚;Diff 工具栏支持行/块级暂存。提交、提交并推送、Amend、最近提交消息、可选 pre-commit 命令(测试 / 优化导入 / 清理)。 · Diff。 并排 / 统一两种布局,单词级高亮,未变更块可折叠。与工作区、上次修订、任意提交或两个提交(Ctrl+点击)比较;可直接暂存/丢弃单个 hunk。HTML/二进制文件走 DSH 侧栏或系统默认程序预览。 · Git 历史。 分页提交表 + 泳道式 commit graph;按分支 / 作者 / 消息 / 路径过滤。单击选中、双击(或 Enter)打开右侧详情抽屉:元信息、完整消息、变更文件,点文件看逐文件 Diff。复制 SHA、检出、回退、两提交 Compare;从项目树可对指定路径定向查看历史。 · Terminal。 真实 PTY(WebSocket + xterm.js),支持多会话、重命名、关闭;shell profiles(PowerShell / Git Bash / cmd / …)。停靠 ↔ 全屏、面板缩放后自动按新宽度重排,并向 PTY 发送 resize。选中即复制、Ctrl+Shift+V 粘贴;工作目录跟随项目根或当前文件。 · 与聊天协作。 聊天里的文件链接默认在工作台打开并定位 #L24;工作区外自动降级到 DSH 自带侧栏。项目树 / 编辑器右键 发送到聊天框:文件或文件夹插入 @路径 引用;选中代码时追加行号与代码块。HTML 可在 DSH 侧栏或系统浏览器预览;不抢走聊天输入的焦点。 · 设置与快捷键。 工具窗/命令快捷键、默认 shell、终端字号、打开模式、Markdown 预览、隐藏/忽略文件、聊天链接行为、外部 IDE 路径、git 路径与提交命令。修改后约 300 ms 自动落盘并显示“已保存”;关闭面板前不会丢失最后一次改动。设置页固定头部与关闭按钮,长表单滚动时不迷路。
前置:DSH ≥ 0.1.7(DSH Desktop 0.2.x 或 Web profile 均可)。插件已发布到 npm:dsh-ide-workbench。
dsh-ide-workbench(可带版本号,如 dsh-ide-workbench@0.4.0)。Desktop 的 profile 由 Electron 应用独占管理,dsh plugin --profile desktop ... 会被拒绝——桌面端请走插件页安装。# 安装到指定 profile(例如 web)
dsh plugin --profile web add dsh-ide-workbench
# 只装指定版本
dsh plugin --profile web add dsh-ide-workbench@0.4.0安装后重启该 profile;如果 bundle 尚未启用,在 设置 → 插件 里打开 IDE Workbench。
# 直接从 GitHub 安装(仓库自带构建好的 dist/client.js)
dsh plugin --profile web add git+https://github.com/LiangshouX/dsh-ide-workbench.git
# 或克隆后从本地目录安装
git clone https://github.com/LiangshouX/dsh-ide-workbench.git
dsh plugin --profile web add ./dsh-ide-workbenchF11 全屏与停靠之间切换。Alt+1 直接聚焦 Project。.git 的子目录带 Git 徽标)。Ctrl+Shift+F 搜代码、Alt+0 提交、Alt+F12 开终端、Ctrl+K 写提交信息。动作 · 快捷键 :-- · :-- 切换工具窗 · Alt+1 Project · Alt+0 Commit · Alt+9 Git · Alt+F12 Terminal 聚焦提交消息 / 推送 · Ctrl+K / Ctrl+Shift+K 全项目查找 / 备用键 · Ctrl+Shift+F / Ctrl+Alt+F 快速打开文件 · Ctrl+P 或 Ctrl+Shift+N 全屏 / 停靠 · F11 隐藏全部工具窗 · Ctrl+Shift+F12 编辑器内查找 · Ctrl+F、F3 保存 / 关闭标签 · Ctrl+S / Ctrl+W 文件操作 · Alt+Insert 新建 · F2 重命名 · F5 复制 · F6 移动 · Delete 删除 · Ctrl+Alt+Shift+C 复制路径 提交详情 · Ctrl+Alt+D
工具窗、提交、推送、查找与快速打开快捷键可在 设置 → IDE 工作台 中重绑;F2/F5/F6/Delete、Ctrl+Alt+D与Ctrl+Shift+F12使用默认值(也可在设置文档中手动修改)。
DSH 工作区常常是容器:根本身不是 Git 仓库,一级子目录才是。项目面板头部的项目名下拉可以选择 工作区根 或任一一级子目录;选择会按工作区持久化(projectRoots),切换后 Project 树、Git/Commit 数据、新终端会话的 cwd 与保存的标签状态一并切换。当前目录不是仓库时,四个窗口都会给出“选择 Git 子项目”引导。
sidebar.right.pane.tab 与聊天并排;皮肤隐藏头部工具时底部入口仍可用。@ 引用与助手 Markdown 链接默认在工作台打开,展开文件树并定位到 #L24 这样的行号;工作区外的文件自动降级到 DSH 自带侧栏;在工作区内但不在当前 IDE 项目内时,先询问是否把 IDE 项目拓宽到工作区根。设置 → IDE 工作台 → 聊天文件链接可切回始终使用 DSH 侧栏。@路径 形式成为引用;代码行会附带 (L起-L止) 与代码块。--dsw-alias-* 令牌,明暗与皮肤完全跟随宿主。status --porcelain=v2 -z、diff --numstat -z 与 log 记录流解析。/api 相同的 Connection 准入围栏。$DSH_HOME/ide-workbench/settings.json(~/.dsh;宿主导出 DSH_PROFILE_DIR 时使用 profile 目录),含快捷键、Shell、git 路径、打开模式、UI 几何、每工作区展开目录与打开标签。Ctrl+Shift+F 可能被 DSH / 浏览器外层截获 → 提供备用键 Ctrl+Alt+F。@文件 (Lx-Ly) + 代码块表达(@ 语法本身没有行号后缀)。npm install
npm run build # 将 src/client 打包为 dist/client.js(React 外置,xterm 内联)
npm test # 宿主 git/diff/graph + 组件 SSR + 客户端回归测试源码结构:
src/index.js 宿主半边:围栏 HTTP API + 终端 WebSocket
src/host/git.js git CLI 适配器,status/log/numstat 解析
src/host/workspace.js 路径围栏、目录树、文件预览、shell
src/host/fileops.js 新建/重命名/复制/移动/删除(回收站)
src/host/settings-store.js JSON 设置持久化
src/client/index.jsx 客户端入口:侧栏 tab、快捷键、聊天输入桥
src/client/store.js 工作台状态机(项目、标签、搜索、Git、设置)
src/client/*.jsx 工具窗与编辑器 UI
src/client/chat-bridge.js 发送到聊天框:@ 引用与代码块提交前请重新构建 dist/client.js 并跑完 npm test(当前 180 条测试)。
README 的截图与徽标条存放在 docs/readme/,通过 main 分支的 raw URL 引用——DSH 与 npm 的 Markdown 渲染都不解析相对图片路径,raw URL 同时兼容 GitHub、IDEA 与 Typora。顶部的 badges.svg 把 npm / 许可证 / DSH / 平台合成一张图,因为 DSH 会把独立图片渲染成块级元素,四个单独的徽章会各占一行。截图源文件在 qa-screenshots/(工作区仓库),修改后按 720px 宽导出并更新 docs/readme/。
截图来自 DSH Desktop 0.2.1(Windows 11,亮色主题);界面语言跟随 DSH 设置。示例项目为测试用 Git 沙箱。