前言¶
在 DeepSeek Harness(dsh)中,输入框草稿的丢失、跨会话/跨工作区切换时的上下文中断,以及无法显式指定本轮要调用的插件,是常见的体验痛点。现有做法要么依赖浏览器本地存储,要么需要在会话间手动复制粘贴,难以做到无感恢复与精确控制。
dsh-composer-draft-cache 是一个输入框增强插件,提供草稿缓存与 @插件提及两个能力。它基于 dsh 的扩展接口实现,不依赖 dsh Client 包,仅使用公开的 slot、remote、locale 等 API,通过内存 + sessionStorage 存储草稿,在页面刷新时保留,关闭窗口时清除。
插件定位与维护¶
- 名称:dsh-composer-draft-cache
- 维护者:CatLollipop
- 分类:记忆
- 许可证:MIT
- 仓库:https://github.com/CatLollipop/dsh-composer-draft-cache
核心功能¶
草稿缓存¶
- 作用域:
- 工作区的新会话(blank Session):以 workspace 为 key 存储
- 已创建的历史会话:以 Session id 为 key 存储
- 机制:
- 在
conversation.input.dock注册一个渲染null的插槽,无视觉干扰 - 使用内存 map + sessionStorage 副本(键前缀
dsh.composer-draft-cache.v1:,格式workspace:<path>或session:<id>) - 页面刷新时恢复,关闭应用窗口时清空
- 不会恢复的内容:
- 已发送或已手动清空的草稿
- 草稿中包含的引用/命令 chip(恢复为纯文本)
- 附件和图片
- 性能:
- 通过原始选择器读取 composer 状态(draft、附件数、提交阶段),使用
Object.is比较,避免无关 store 发布触发重渲染 - 无定时器、无 DOM 写入、无每渲染分配
@插件提及¶
- 触发方式:
- 在输入框中输入
@,在原有文件与会话之外,新增“Plugins”分组 - 手工输入
@plugin:<package name>也可触发 - 显示与选择:
- 仅列出已安装的社区插件(Loader 可见、有 Host 行的包),不列出核心
@deepseek-ai/*行 - 选中后插入原子引用
@[Title](dsh-plugin:<package name>),渲染为@ Title - Agent 上下文:
- 在
agent/pre-step阶段,Host 端从已接受的用户消息中收集提及 - 将插件元数据(标题、包名、Loader entry id、描述)作为有界上下文注入系统提示,明确告知用户指定使用该插件,并禁止虚构能力
- 未知或已禁用的包会被报告而非猜测
- 渲染:
- 已发送消息在聊天中显示为紧凑的内联 chip,而非原始 Markdown
- 提及在当前轮次有效,后续轮次若无提及则清除
安装与启用¶
- 将插件目录放置到本地任意位置(例如工作区文件夹)。
- 通过插件管理器将其安装为配置包,或使用
plugin_manager工具:
plugin_manager action=install_bundle target=<绝对路径>
- 刷新 Web 界面,检查注册:
-composer-draft-cache应出现在conversation.input.dock
-plugin应出现在conversation.user.text.node
典型用法¶
- 草稿恢复:
1. 在某个工作区的“新会话”输入框中输入内容(不发送)。
2. 切换到其他工作区或关闭输入框。
3. 再次打开该工作区的“新会话”,草稿内容自动填回。
4. 在历史会话中同样适用:切换离开再返回,会话草稿自动恢复。 - 发送/清空不恢复:
- 发送或清空草稿后,该草稿不再出现,直到关闭应用。
- 插件提及:
1. 在输入框输入@,在弹出的菜单中选择一个已安装的社区插件。
2. 继续输入任务描述,Agent 会在本轮收到该插件的元数据作为显式上下文。
3. 也可直接手工输入@plugin:<package name>触发。
适用场景与注意¶
- 适合需要频繁切换工作区或会话,希望草稿不丢失的开发者与 Agent 使用者。
- 插件以当前 dsh 进程权限运行,安装前建议检查源码与许可证(MIT)。
- 注意草稿恢复的限制:引用/命令 chip 变为纯文本、附件/图片不恢复、关闭窗口即清空缓存。
结尾¶
dsh-composer-draft-cache 通过草稿缓存与 @插件提及,缓解输入中断与插件调用不明确的问题。更多详情与源码见:
- 技能库目录:https://www.skillhub.cn/plugins/CatLollipop/dsh-composer-draft-cache
- GitHub 仓库:https://github.com/CatLollipop/dsh-composer-draft-cache