🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

工作区增强 yuanzehui313/dsh-workspace-enhance

DeepSeek Harness
yuanzehui31364 天前有提交已提供中文文档扫描:高危

管理会话回收站、跨区拖动与多根目录

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 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · other
装得上吗
本站尚未做安装检查
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 64 天前
档位由哪些信号合成

本站实装验证(真实安装 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
预览分享卡片长什么样 ↓yuanzehui313/dsh-workspace-enhance
分享 · DeepSeek Harness Hub
yuanzehui313/dsh-workspace-enhance

管理会话回收站、跨区拖动与多根目录

这是你的仓库?认领条目

回到顶部