dsh-draft-attachments
Manifest valid★ 1DeepSeek Harness Plugin: Persist the draft images/files in the input box just like text drafts. After switching pages, restarting the app, or returning to the session, unsent attachments are automatically restored. Built on IndexedDB, using the official createDrafts/addAttachments channel.
dsh-draft-attachments
DeepSeek Harness(DSH)插件:把输入框的草稿图片/文件像文字草稿一样持久化。
DSH 桌面端的已知行为:在 A 会话输入框上传了几张图片,中途点到其他页面再切回来,输入的文字还在,但上传的图片消失了。本插件修复这个问题——切换页面、切换会话、甚至重启 DSH 之后回到该会话,未发送的附件会自动恢复到输入框,缩略图原样重现。
原理
| 文字草稿(官方) | 附件草稿(官方) | 附件草稿(本插件) | |
|---|---|---|---|
| 存储 | localStorage(dsh.conversation.<sessionId>) | 仅内存(draftAttachments Map + attachmentIds 数组) | IndexedDB(字节 + 元数据,按会话记序) |
| 重挂载 | 自动 seed 回输入框 | 被 release(objectURL revoke + Map 删除)→ 丢失 | 读回 IndexedDB → 官方 createDrafts 通道重建 |
- 捕获:插件在
conversation.input.dock(官方 list 型会话级插槽,hero/composer 两种输入区形态都渲染)挂一个不可见哨兵组件,订阅输入态的attachmentIds,每次变化把草稿附件字节写入 IndexedDB(300ms 去抖;卸载/切换会话时立即冲刷)。 - 恢复:输入区重新挂载时读回记录,走
conversation.createDrafts(sessionId, files)(与点输入框「添加附件」完全同一条官方通道)重建草稿,再经inputActions.addAttachments回填 → 官方缩略图 rail 原样显示。 - 清空同步:发送成功或手动删除附件后
attachmentIds变化,捕获写入同样集合(空集合 = 清除记录),不会复活已发送的图片。
不 patch 任何官方函数;全部通过官方插槽与官方服务公开方法实现。任何一步失败只 console.warn,最坏退化为官方原行为(附件照旧丢失),绝不影响正常输入。
限制
- 单附件 ≤ 30 MB,单会话合计 ≤ 120 MB(超限的附件不持久化,行为同官方)。
- 附件恢复后走官方重新上传/编码流程(图片重建 objectURL 预览;文件类草稿会重新进入后台上传)。
- 恢复时机是「输入区挂载且当前没有附件」;若在提交锁定相位(adjudicating/submitting)挂载,回填会被拒绝并释放草稿,等下次挂载再试。
安装(本地 profile)
- 在
~/.dsh/profiles/desktop/package.json的dependencies加入:"dsh-draft-attachments": "file:D:/桌面/AI Port/DSH plugins/dsh-draft-attachments" - 在同一文件
dsh.profile.bundles数组加入"dsh-draft-attachments"。 - 在 profile 目录执行
pnpm install。 - 重启 DeepSeek Harness。
卸载 = 从上面两处移除条目 + pnpm install + 重启,无残留(插件数据只存在于浏览器的 IndexedDB dsh-draft-attachments 库,可在 DevTools 清除)。
License
MIT
Comments
Loading…
From the same category
DeepSeek Harness plugin for Reactive Resume: bridges your resumes and job applications into a Harness session over MCP.
★ 41.7k
↓ 242/wk
MIT
Aug 24, 2026
dsh plugin --profile web add dsh-plugin-reactive-resumeby Tencent
Let AI agents use your real, logged-in browser without interrupting your work. CLI + extension for browser automation across any shell-capable AI agent.
★ 8.9k
↓ 7.5k/wk
MIT
TypeScript
Oct 15, 2026
dsh plugin --profile terminal add @wxg-prc-cpg/browser-skill-dsh-pluginby yjh051108
dsh-routing-suite — injector + router-standard kit: install the runtime injector first, then the task-aware reasoning-mode router preset (measured P1-P23).
★ 7k
MIT
JavaScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby dsh-market
The plugin market inside DeepSeek Harness — browse, search, one-click install · DSH 可视化插件市场
★ 6.6k
↓ 160k/wk
MIT
TypeScript
Oct 14, 2026
dsh plugin --profile web add dshmarketby Q00
Agent OS: the agent gets smarter on its own. We just hold the line: Interview-gated, staged evaluation, budgeted evolution loop. MCP server, 14 runtimes: Claude Code, Codex CLI, Gemini CLI, OpenCode,
★ 6.2k
MIT
Python
Oct 14, 2026
by superdesigndev
OpenRouter for agent tools. Join community here: https://discord.gg/6mQYYfFMAn
★ 5.3k
NOASSERTION
Python
Oct 15, 2026
dsh plugin --profile web add treg-dsh