dsh-web
zhu1090093659/dsh-webDeepSeek Harness(DSH)Web 插件聚合生态包 · 一切皆插件,创意工坊分发(dsh-market.com)
Claude-style recent deliverables panel for DeepSeek Harness (dsh)
做出来的文件,都在手边。 一个给 DeepSeek Harness 用的成品浮窗,集中查看 PDF、网页、Office、图片和文本,直接预览、改名、整理,或用系统应用打开。
下载最新版 · 安装说明 · 更新记录 · English
操作 · 结果 点一下小垃圾桶 · 把这一份文件移到系统废纸篓 / 回收站 按住垃圾桶向下拖 · 连续选中多份文件,松手后统一移到废纸篓;边缘自动滚动 点「多选」 · 在原有提示区切换操作按钮,列表不被往下挤;复选框占用原文件图标位置,行高和文字宽度保持不变 轻触 / 悬停文件名,再点一下 · 文件名以半透明提示可编辑,直接输入新名字;Enter 保存、Esc 取消,失焦也会保存 点左上角卡通图标 · 切换中文 / English、显示 / 隐藏时间,或选择自己的卡通形象 点击浮窗外 · 自动收成小胶囊,原来的按钮或输入仍正常响应
垃圾桶图案居中、左右对称,平时不挂爱心;点击后冒出 7 颗圆润的小爱心泡泡,向上飘散并消失,文件行移走后动画也能继续。系统开启「减少动态效果」时改为短暂淡入淡出。文件类型筛选条支持左右滚动,隐藏了会盖住按钮的滚动条。总数显示扫描范围内已收集到的真实文件数量,默认没有 40 或 200 条上限;后台收集交付记录时会显示整理提示。
批量整理会显示选中数量;可取消选择,也可用「全选当前结果」处理搜索 / 筛选后的全部结果,包含还没渲染出来的行。移到废纸篓后计数立即更新;若一部分文件已改变或无法移动,会保留失败的选择并提示结果。只移动你选中的文件,不删除目录,不永久擦除;符号链接只移动链接本身,保留指向的文件。
重命名会改动磁盘上的真实文件名,保留文件内容。遇到同名目标会提示,不会覆盖已有文件;拒绝路径分隔符和 Windows 保留名。重命名后的交付文件会继续对应到原交付记录,本机重命名映射保存在 DSH 数据目录的 recent-deliverables/renames.json,不修改会话日志。文件扩展名建议保留,以便系统继续识别文件类型。
展开浮窗后,标题下方可以显示小巧的 `19:07 ☀️`。点击左上角头像 → 外观与语言,三个开关分别控制:
开关 · 作用 文件时间 · 日期分组、文件修改时间和列表更新时间 当前所在地时间 · 当前电脑的时区时钟,每分钟独立更新,离线可用 自动天气 · 估算当前城市,按天气显示 ☀️、🌙、☁️、🌧️、🌨️、⛈️ 等图标
当前时钟与天气默认关闭,不改变已有的文件时间偏好。时钟更新独立于文件行,不会每分钟重新渲染整份文件列表;收成胶囊时停止时钟和天气的刷新计时。设置保存在本机。
天气开关打开后,通过 ipapi.co 按运行 DSH 的电脑公网 IP 估算城市,再把取整到 0.1 度的近似坐标发给 Open-Meteo 获取天气。返回前端的数据不含 IP、邮编或坐标;不读取设备精确定位,也不发送文件名、文件内容或会话。设置里显示识别出的城市,图标悬停可看天气和温度。VPN、代理或远程 DSH 宿主可能改变识别城市;时钟始终跟随浏览器所在电脑的时区。
天气约每 20 分钟更新一次,并合并并发请求、缓存结果;关闭时不请求第三方服务。网络失败时保留时钟,提示天气暂不可用;已有旧天气会明确标注,支持重试。天气数据来自 Open-Meteo(CC BY 4.0 与服务条款),自动 IP 城市来自 ipapi.co;公共免费端点适用于各服务允许的用途,Open-Meteo 免费 API 限非商业用途,商业集成需按其条款配置服务。
整理文件与磁盘空间: 搜索、类型筛选、直接改名和批量移到废纸篓,让工作区更好整理。移走文件后可从系统废纸篓 / 回收站恢复;只有清空系统废纸篓 / 回收站后,才会释放相应磁盘空间。插件不提供自动清空功能。
减少一次性的界面渲染负担: 首批最多渲染 100 个文件行,滚动时每次继续追加 100 行,也可点「继续显示」。文件总量完整统计;列表主要传输元数据,点开预览时才读取该文件内容。展开时约每 20 秒刷新,收成胶囊后约每 60 秒,页面重新聚焦也会刷新。
分批渲染减少首次创建的 DOM 行,持续滚动后已加载的行仍会保留;它不保证固定的 RAM 用量。完整列表元数据和扫描缓存仍占用内存,目前没有跨平台内存用量基准测试,因此不宣称某个具体的内存节省百分比。
支持 Windows 与 macOS 的 DSH Web 插件系统;Windows 使用系统回收站,macOS 使用系统废纸篓。自动化测试覆盖 Windows、macOS、Linux;真实 DSH / 浏览器交互在 Mac 上验证,Windows 桌面界面仍需实机验证。
从 GitHub Releases 下载 dsh-recent-deliverables-1.5.0.tgz,通过 DSH CLI 安装,或解压成固定本地目录后在图形界面添加。两种方法见 INSTALL.md。若 npm 尚未同步最新版,请优先使用 Releases 包;包名为 dsh-recent-deliverables。
升级后请完全退出并重新打开 DSH,让宿主路由与前端同时更新。
列表合并两个来源,按绝对路径去重,按修改时间从新到旧排列:
present 工具写入的 deliverables/presented 事件,附带说明和来源会话。后台整理,不阻塞首次文件扫描。extraRoots。默认扫描深度 5,跳过依赖、构建、隐藏目录和系统垃圾文件。“没有条数上限”指扫描范围内的结果数量;计数仍受根目录、深度、扩展名和访问权限影响。默认不限制扫描条目、会话数量或会话年龄。可用「交付」筛选只查看 agent 显式交付的成品。若主动设置 maxItems,declaredSlots 为交付文件保留位置,其余名额按修改时间填满。
在 profile 的 cordis.patch.yml 里改这个 bundle 的行即可(省略即用默认值):
键 · 默认 · 说明 maxItems · 0 · 0 表示不限条数;正数可主动限制显示总量 declaredSlots · 12 · 给「交付」文件保留的席位(0–200) maxSessions · 0 · 0 表示所有可见会话;正数限制最近会话数量。关闭交付来源请用 includePresent: false maxSessionAgeDays · 0 · 只看最近多少天内活跃过的 Session(0 表示不限制) scanDepth · 5 · 目录扫描深度(0–20) maxScanFiles · 0 · 0 表示不限扫描条目;正数可主动限制扫描预算 cacheMs · 15000 · 磁盘扫描结果的缓存时间 includePresent · true · 是否包含交付记录 includeFiles · true · 是否包含文件扫描 extraRoots · [] · 额外要扫描的绝对路径 ignoreRoots · [] · 不扫描的绝对路径(其子目录也跳过) extensions · 内置清单 · 覆盖文件扫描的扩展名清单,例如 [pdf, html, docx]
七个路由均注册在宿主 Connection 的鉴权围栏内:
路由 · 用途 GET /api/recent-deliverables.list · 列表、统计、能力及每份文件的操作令牌 GET /api/recent-deliverables.file?path=… · 允许访问的文件内容 POST /api/recent-deliverables.open?path=…[&action=reveal] · 系统打开或定位 POST /api/recent-deliverables.delete · JSON {path, token},移动一份未变化的文件 POST /api/recent-deliverables.delete-batch · JSON {files: [{path, token}]},每个请求最多 200 项,逐项返回结果;客户端自动分批 POST /api/recent-deliverables.rename · JSON {path, token, name},同目录中重命名,不覆盖目标 GET /api/recent-deliverables.weather · 可选天气,缓存近似城市与当前天气;只在启用天气时调用
读取和打开前解析真实路径、检查目录边界;.. 和符号链接不能绕过工作区限制。显式交付并列出的工作区外文件仍可使用。删除和改名核对列表令牌与文件身份,拒绝已更换的文件或链接;并发重复操作不会重复移动。HTML / SVG 预览处于沙盒中,不得访问宿主页面。
扫描不改动文件;只有用户明确执行删除或重命名时才移动选中文件。会话日志不被修改,移到废纸篓失败时不会降级成永久删除。
转发到 IM 助理、账号与聊天管理
IM 助理(@michengai/dsh-im-connect)在 1.0.12 里撤掉了主动投递的 HTTP 接口 / im-send / Agent 工具,所以没有「直接推文件」的公开 API。本插件走的是它仍然支持的投递链路:
GET /api/dsh-im-connect/channels,把已绑定的聊天列出来(muted / detached 的不列,因为 IM 引擎不会投递到它们)。session.prompt Remote 往那个 IM 会话里排一条消息:要求助手只调用 `present` 宣布这个文件、不要改动文件。assistant/message,把该回合 present 的文件经宿主文件服务读出来、用渠道的 sendFile 发到聊天(绝对路径即使不在 IM 会话的工作区内也能读,这是 workspaceFiles 的既有行为,已在源码里确认)。聊天里会收到该文件 + 一句「已发送」之类的确认。代价与前提:
present 是标准工具;文件读取走宿主服务,不需要沙盒写权限。账号 = 助理。每个账号在自己的详情页里独立配置工作区、模型、权限、命令权限;转发面板里列出的每一条是聊天,由某个账号承载。
sessions/remove 解除绑定(DSH 会话记录本身不受影响);也可以在 IM 助理的渠道会话列表里删除该会话。~/.dsh/dsh-im-connect/channels.json,聊天绑定存在同目录的 sessions.json,两份数据独立;删账号只清前者。~/.dsh/dsh-im-connect/gateway.log 有每个账号的启动 / 投递 / 模型错误。常见两类:凭据不足,无法启动渠道 → 该账号没有有效凭据,重新添加或补配置;no adapter registered for provider "xxx" → 账号详情里的助手模型指向了宿主没有的供应商,换一个可用模型。Node.js 18.17.0+,运行时使用 trash 依赖处理平台废纸篓 / 回收站。前端复用宿主 React,无需前端构建。
npm ci --ignore-scripts
npm test
npm pack --dry-run测试覆盖列表合并与无限计数、语言和本机设置、拖选范围、失效操作令牌、批量部分成功、真实临时文件重命名、同名保护、符号链接、写入失败回滚和旧响应竞态。CI 在 Windows、macOS、Linux 运行。宣传图来自真实插件界面与示例文件,图文排版保存在 docs/images/。
shell.overlay 挂载,只对 Web 界面有意义。转发到 IM 助理需要额外安装相应插件并绑定聊天。Recent Deliverables keeps files produced in DeepSeek Harness within reach. Preview PDF, HTML, images and text; open Office files in their native apps; search or filter the full collected list.
Version 1.5 keeps selection controls in a fixed space, so entering batch selection preserves list position, row height and text width. The centered trash bin releases heart bubbles only after a click. Independent local-clock and automatic-weather switches join file-time preferences. Direct inline renaming, collision protection and the clean filter strip remain available. Chinese/English, local cartoon avatars and outside-click collapse are included. The clock follows the browser computer’s timezone and works offline. Optional weather uses approximate host-IP location from ipapi.co and Open-Meteo data; it may reflect a VPN or remote host city, and sends no file data. Weather requests are cached for 20 minutes. Open-Meteo’s free API is for non-commercial use; see its terms above.
The first 100 file rows render initially, with more appended on scroll; the total remains complete. Content loads when a preview opens, and the collapsed capsule refreshes less often. Moving files to OS trash is recoverable; disk space is reclaimed when the OS trash is emptied. No measured RAM-saving percentage is claimed.
Windows and macOS are supported; core tests also run on Linux. Real DSH/browser interaction has been verified on macOS; Windows desktop UI verification is still pending. Install the latest GitHub Release using the installation guide, then fully restart DSH.
MIT