管理会话回收站、跨区拖动与多根目录
26.3/100
综合分
1
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/10/15 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add yuanzehui313/dsh-workspace-enhance该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:仅索引
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
🔴 安全扫描发现高危能力自动 · 静态分析源码
v2.7.0🔴 扫描:高危尚无人工评估
静态扫描发现安装期即执行代码,或命令参数由运行时变量拼接(参数来源无法静态判定,从严处理)。
安装时即执行脚本读写/删除本地文件发起外部网络请求
查看扫描证据(共 33 处,展示前 21 条)
- 发起网络请求lib/client.js:132
const res = await fetch("/cost-meter/daily", { - 读取本地文件scripts/apply-overlay.mjs:38
return createHash("sha256").update(readFileSync(file)).digest("hex"); - 读取本地文件scripts/apply-overlay.mjs:45
for (const entry of readdirSync(dir, { withFileTypes: true })) { - 读取本地文件scripts/apply-overlay.mjs:62
if (p && existsSync(p) && !trees.includes(p)) trees.push(p); - 读取本地文件scripts/apply-overlay.mjs:67
if (existsSync(profiles)) { - 读取本地文件scripts/apply-overlay.mjs:68
for (const d of readdirSync(profiles, { withFileTypes: true })) { - 读取本地文件scripts/apply-overlay.mjs:79
if (existsSync(npxRoot)) { - 写入本地文件scripts/apply-overlay.mjs:171
mkdirSync(join(backupDir, dirname(rel)), { recursive: true }); - 写入本地文件scripts/apply-overlay.mjs:172
writeFileSync(join(backupDir, rel), readFileSync(target)); - 写入本地文件scripts/apply-overlay.mjs:173
writeFileSync(target, readFileSync(source)); - 读取本地文件lib/cost-meter.mjs:77
if (!existsSync(META_ROOT)) mkdirSync(META_ROOT, { recursive: true }); - 写入本地文件lib/cost-meter.mjs:77
if (!existsSync(META_ROOT)) mkdirSync(META_ROOT, { recursive: true }); - 读取本地文件lib/cost-meter.mjs:79
if (!existsSync(path)) { - 写入本地文件lib/cost-meter.mjs:80
writeFileSync(path, JSON.stringify(cfg, null, 2), "utf8"); - 读取本地文件lib/cost-meter.mjs:83
const raw = JSON.parse(readFileSync(path, "utf8").replace(/^ FEFF/, "")); - 写入本地文件lib/cost-meter.mjs:89
writeFileSync(path, JSON.stringify(cfg, null, 2), "utf8"); - 读取本地文件lib/cost-meter.mjs:182
const buf = readFileSync(path); - 读取本地文件lib/cost-meter.mjs:208
entries = readdirSync(dir, { withFileTypes: true }); - 读取本地文件lib/cost-meter.mjs:218
if (statSync(full).mtimeMs >= minMtimeMs) out.push({ path: full, sessionId }); - 写入本地文件lib/cost-meter.mjs:442
if (!existsSync(META_ROOT)) mkdirSync(META_ROOT, { recursive: true }); - 写入本地文件lib/cost-meter.mjs:517
writeFileSync(cachePath, JSON.stringify({
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
DeepSeek Harness 工作区与会话增强插件:回收站、跨工作区拖拽、未分组会话、多文件夹根目录、会话合并
README
由 DeepSeek 最新模型翻译生成dsh-workspace-enhance
DeepSeek Harness(DSH)工作区与会话管理增强插件。以标准 DSH 插件包形式发布,核心改动以 overlay 补丁集方式覆盖官方 @deepseek-ai/dsh- 的 17 个 bundle(这些改动点位于 apiproxy RPC 表、工作区注册表、工作区浏览器 UI 等不可叠加扩展的内部实现中),配套一键安装 / 回滚 / 校验脚本。
功能清单
1. 回收站(软删除 / 恢复 / 彻底删除,会话 + 工作区):session.delete 变为移入回收站,物理删除仅能从回收站执行(session.purge / workspace.purge)。
2. 跨工作区拖动会话:会话行可拖到其他工作区行(或「未分组」组)移动归属,关系持久化,会话自身目录与日志不动。
3. 未分组工作区:顶部「新会话」按钮创建的新会话自动进入「未分组」组;未分组组常驻显示。
4. 多文件夹工作区:每个工作区可挂载多个根目录(additionalPaths),沙箱同步授权全部根目录。
5. 应用内目录选择器:Windows 下使用内置浏览式选择器(含驱动器列表),不再弹原生对话框。
6. 文件夹行展开:侧边栏文件夹行可递归展开查看内部文件/目录。
展开完整文档(README 剩余 1 节)
dsh-workspace-enhance DeepSeek Harness(DSH)工作区与会话管理增强插件。以标准 DSH 插件包形式发布,核心改动以 overlay 补丁集方式覆盖官方 @deepseek-ai/dsh- 的 17 个 bundle(这些改动点位于 apiproxy RPC 表、工作区注册表、工作区浏览器 UI 等不可叠加扩展的内部实现中),配套一键安装 / 回滚 / 校验脚本。 功能清单 1. 回收站(软删除 / 恢复 / 彻底删除,会话 + 工作区):session.delete 变为移入回收站,物理删除仅能从回收站执行(session.purge / workspace.purge)。 2. 跨工作区拖动会话:会话行可拖到其他工作区行(或「未分组」组)移动归属,关系持久化,会话自身目录与日志不动。 3. 未分组工作区:顶部「新会话」按钮创建的新会话自动进入「未分组」组;未分组组常驻显示。 4. 多文件夹工作区:每个工作区可挂载多个根目录(additionalPaths),沙箱同步授权全部根目录。 5. 应用内目录选择器:Windows 下使用内置浏览式选择器(含驱动器列表),不再弹原生对话框。 6. 文件夹行展开:侧边栏文件夹行可递归展开查看内部文件/目录。 7. 会话合并已移除:新会话已自带整个工作区上下文,合并会话不再需要;相关按钮与入口全部删除(仅残留无引用的 i18n 文案)。 8. 会话行图标:分叉 / 归档 / 删除直接图标 + 分叉树形渲染;重命名图标从 ⋯ 菜单提出,会话行 ⋯ 菜单已移除。 9. 工作区行图标:重命名 / 新建会话 / 删除 直接平铺。(「管理文件夹」图标已移除,其入口改为文件夹区 / 文件区标题行右侧的 + 按钮。) 10. 回收站样式:与工作区同层级的分组行(垃圾桶图标、粗体品牌蓝标题、默认展开、点击收起、条目与标题左对齐)。 11. 文件预览面板:点击侧边栏文件夹树中的文件,右侧滑出 520px 预览面板——标题栏显示文件名与完整路径,正文使用与对话消息同款的 Markdown 渲染:.md 文件按 Markdown 排版(标题/列表/代码块/表格/链接等),.js/.ts/.vue/.json/.java/.py/.xml/.yml/.css/.html 等 30+ 种代码文件自动包进对应语言的语法高亮代码块;由服务端新增的 host.readFile RPC 提供内容(限制在工作区根目录内,≤256KB,二进制文件拒绝预览)。 12. 修复:回收站 RPC 信封解包错误、服务端默认 cwd 为盘符根目录(C:\)导致未分组会话创建失败等。 13. 文件夹区 / 文件区分区:每个工作区组内渲染两块独立区域——文件夹区(蓝色底,列出主目录 + 全部附加目录,主目录不可移除)在上,文件区(紫色底,列出公共文件或空态提示)在下;两个区标题行均可点击折叠/展开,无文件时仍保留占位;未分组区域不渲染这两块。 14. 多选文件/文件夹选择器:两个区标题行右侧的 + 按钮打开内置多选浏览器(盘符级入口,目录点击进入、勾选框多选、可跨目录保持选择;条目列表 320px 高度内滚动);确认后目录流入文件夹区、文件流入文件区;取消直接返回页面。 15. 会话文件:粘贴(Ctrl+V)到会话的文件发送后经 workspace.importFiles 写入工作区 .dsh-uploads/ 并以 sessionId 挂载到该会话行上方(绿色区块 + 左竖条强调线,标题显示「会话文件 · N 个文件 · 会话标题」);区块点击折叠,文件行常显 × 可移除、点击弹出预览。 16. 附件放开限制:粘贴/拖拽任意格式文件均可作为附件(图片四格式仍走图片管线);二进制发送只带 [附件 文件名] 标注;附件芯片显示扩展名徽标 + 文件名;大小限制只作用于真正传输内容的图片与文本。 17. 拖拽上传:文件可直接拖入文件区(虚线高亮),经 workspace.importFiles 落盘 .dsh-uploads/(重名自动编号,≤5MB/个)并立即展示;文件行点击即预览。 18. 预览增强:文件行(公共/会话)与文件夹树文件均可点击预览;host.readFile 对二进制返回 base64,预览面板内联渲染 png/jpg/jpeg/gif/webp/svg 图片;Markdown/30+ 代码语言同前。 19. 细节收敛:文件夹区只列附加目录(不含工作区主目录,空时显示 + 提示);文件区底部常驻虚线拖放区;对话框的拖拽监听与高亮遮罩收窄到输入框内部(不再全屏拦截)。 20. 跨会话记忆模板:handover/ 目录内置 OpenViking MCP 桥接配置片段与全局/工作区 AGENTS.md、HANDOFF.md 模板,配套「语义记忆 + 文件交接」的会话内容不隔离方案(详见下文「跨会话记忆(OpenViking + 文件交接)」)。 21. 文件夹 Git 面板:文件夹区中 git 仓库文件夹行显示当前分支 chip 与三色状态点(🟡 黄 = 有未提交修改 / 🔵 蓝 = 落后远程 / 🟢 绿 = 与远程一致);点击 chip 弹出 Git 菜单——切换分支、新建分支、更新代码(git pull --ff-only)、推送代码(自动暂存全部改动 → AI 生成中文提交信息 → 提交 → 推送,结果回显菜单)。所有操作直接作用于该文件夹的磁盘工作区。 文件夹 Git 面板(改造后) 工作区侧边栏 Git 面板 文件夹区中,git 仓库文件夹行右侧显示当前分支 chip 与状态圆点: - 🟡 黄 = 有未提交的修改 - 🔵 蓝 = 落后远程(有未更新) - 🟢 绿 = 与远程一致 点击分支 chip 弹出 Git 菜单:切换分支(点击列表行)、新建分支(输入框 + 回车)、 更新代码(git pull --ff-only)、推送代码(git add -A → AI 生成中文 Conventional Commits 提交信息 → 提交 → 推送,结果回显在菜单中)。每次操作后分支信息与目录树自动刷新。 安装 前置:已安装 DeepSeek Harness(@deepseek-ai/dsh@0.1.0-rc.6,Windows)。 一键安装:npm 的 postinstall 会自动应用 overlay 补丁集(自动探测全部 DSH bundle 安装位置:profile / 全局 / npx 缓存 / DSH Desktop / dsh-pinned) npm install --prefix "$env:USERPROFILE\.dsh\profiles" dsh-workspace-enhance 重启 DSH 服务,浏览器 Ctrl+Shift+R 强刷 装完即生效,无需再跑 install.ps1。 插件宿主侧每次加载时也会自动检查并补打 overlay(幂等:已补打的文件不动;带版本守卫与自动备份),官方包刷新 / DSH 升级导致补丁丢失时会自动恢复;首次加载后若功能未生效,重启 DSH 一次即可。 手工补打 / 预览(可选): node "<安装路径>\scripts\apply-overlay.mjs" --dry-run # 只预览会改哪些文件 node "<安装路径>\scripts\apply-overlay.mjs" # 实际补打 校验与回滚: powershell -ExecutionPolicy Bypass -File "...\scripts\verify.ps1" # 检查补丁是否生效 powershell -ExecutionPolicy Bypass -File "...\scripts\uninstall.ps1" # 从最近一次备份回滚(多安装位置) 补丁持久性 - overlay 安装时采用「删除后复制」方式落盘,与官方包的硬链接断开——DSH 宿主用 npx -y @deepseek-ai/dsh web 重启服务时重新拉取官方包,不会连带覆盖已打补丁的文件。 - 版本守卫:overlay 只匹配 @deepseek-ai/dsh@0.1.0-rc.6 的 bundle;检测到其他版本时会跳过并告警(直接覆盖新版 bundle 会破坏运行)。升级 DSH 后需同步更新 overlay 补丁(verify.ps1 会报告 REVERTED / apply-overlay 会报告 SKIP)。 - 可选持久化:把 scripts\guard.ps1 挂成计划任务,可在 DSH / 桌面端重启与包刷新后静默重新补打。 跨会话记忆(OpenViking + 文件交接) 插件自带 handover/ 模板目录,把 DSH 默认「会话隔离」改成「内容不隔离」的混合交接: - 语义记忆(OpenViking):把 handover/cordis.patch.openviking.yml 的补丁项追加进 ~/.dsh/cordis.patch.yml 并重启 DSH,新会话即获得 16 个 mcp__openviking__ 工具(find / search / recall / remember / read / write / …)。会话开工先 recall/find 检索,收工把结论与决策 remember 写入。 - 精确交接(文件):handover/ 提供全局 AGENTS.md、工作区 AGENTS.md 与 HANDOFF.md 三份模板(见 handover/README.md 的安装位置表)。工作区 AGENTS.md 在新会话开局自动注入,HANDOFF.md 在每个里程碑结束更新。 OpenViking 服务前置:pip install openviking → openviking init → openviking-server (默认 http://127.0.0.1:1933/mcp)。 目录结构 dsh-workspace-enhance/ ├── package.json # 标准 DSH 插件元数据(dsh.client → lib/client.js) ├── lib/ │ ├── index.js # 宿主侧 Cordis 服务(插件清单可见性 + 能力标记) │ └── client.js # 客户端插件(标准 __ModuleLoader__ 形式) ├── overlay/ # 覆盖补丁集(与 @deepseek-ai 相对路径一致,17 个 bundle) ├── handover/ # 跨会话记忆模板(OpenViking 桥接 + AGENTS.md/HANDOFF.md) ├── scripts/ # install / uninstall / verify └── README.md(中文,GitHub 默认展示)/ README.en.md(英文) 兼容性 目标版本:@deepseek-ai/dsh@0.1.0-rc.6(Windows)。升级 DSH 版本后需重新核对 overlay 与新版 bundle 的差异(verify.ps1 会报告 REVERTED)。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
yuanzehui313/dsh-workspace-enhance
管理会话回收站、跨区拖动与多根目录
相关插件 · 其他
模型破甲清洗HunYiSage/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,993已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,269已汉化DSH
70.8
这是你的仓库?认领条目