DeepSeek Harness(DSH)的 Cursor 式草稿会话:新建会话会复用空草稿,只有当每个草稿都有未发送内容时才新建一个,空占位不会堆积,跟 Cursor(或 Telegram)的会话列表一样。
31.5/100
综合分
2
GitHub 星标
289
npm 周下载
—/5
用户评分
数据截至 2026/10/5 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/ne-ilyxa/dsh-session-drafts.git状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:已验证
是什么
生态插件
可安装,未声明 dsh 能力
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 30 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包@ne-ilyxa/dsh-session-drafts @ 0.7.0
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 15:37:20
安全扫描自动 · 静态分析源码v2.7.0🟢 扫描:未发现敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描未发现敏感能力:最多只发网络请求、读取自身元数据或只读文件,未发现执行命令、文件写入或敏感信息读取。
扫描于 2026/11/2(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
依赖的 DSH / Cordis 模块
@deepseek-ai/cordis给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
功能亮点
- 复用空草稿会话
- 避免空占位堆积
README
由 DeepSeek 最新模型翻译生成dsh-session-drafts
给 DeepSeek Harness(DSH)用的 Cursor 风格草稿会话:新建会话会复用已有的空草稿——只有当每个草稿里都写了没发出去的文字时,才会新建一个——所以空占位符永远不会越堆越多,跟 Cursor(或 Telegram)的会话列表一模一样。每个草稿都以普通一行的形式待在侧边栏树里:标题是没发出去的文字预览,带创建时间、一个铅笔标记和一层灰色底,刷新页面、重启宿主都不会丢。没有弹窗,也没有草稿菜单。
原版 web shell 会复用工作区里那个唯一的空白会话,不管你打了什么字(每个工作区只有一个空会话,你写的草稿会被悄悄丢掉),而且会把其他所有空白会话从树里藏起来。这个插件把这两种行为都换掉了。
它做什么
1. 任何新建路径上都不会堆叠空草稿。 从 harness 0.2 重构之后,新建流程落在 uiWorkspace 导航服务上,而 uiWorkspace.connectWorkspace 是所有「新建会话」入口的必经之路(侧边栏按钮、文件夹上的 +、Ctrl+Alt+N、首屏工作区选择器、启动时的初始选择)——所以规则就补在这个位置。连接时先跳到工作区里已有的空草稿(宿主说它没有任何已发送轮次,且输入框里也没有没发出去的文字),只有当每个草稿都被占用时,才新建一个持久会话(session.create)。
展开完整文档(README 剩余 1 节)
dsh-session-drafts 给 DeepSeek Harness(DSH)用的 Cursor 风格草稿会话:新建会话会复用已有的空草稿——只有当每个草稿里都写了没发出去的文字时,才会新建一个——所以空占位符永远不会越堆越多,跟 Cursor(或 Telegram)的会话列表一模一样。每个草稿都以普通一行的形式待在侧边栏树里:标题是没发出去的文字预览,带创建时间、一个铅笔标记和一层灰色底,刷新页面、重启宿主都不会丢。没有弹窗,也没有草稿菜单。 原版 web shell 会复用工作区里那个唯一的空白会话,不管你打了什么字(每个工作区只有一个空会话,你写的草稿会被悄悄丢掉),而且会把其他所有空白会话从树里藏起来。这个插件把这两种行为都换掉了。 它做什么 1. 任何新建路径上都不会堆叠空草稿。 从 harness 0.2 重构之后,新建流程落在 uiWorkspace 导航服务上,而 uiWorkspace.connectWorkspace 是所有「新建会话」入口的必经之路(侧边栏按钮、文件夹上的 +、Ctrl+Alt+N、首屏工作区选择器、启动时的初始选择)——所以规则就补在这个位置。连接时先跳到工作区里已有的空草稿(宿主说它没有任何已发送轮次,且输入框里也没有没发出去的文字),只有当每个草稿都被占用时,才新建一个持久会话(session.create)。原方法是被替换掉的——不是包一层——因为它那套空白复用扫描不管你有没有打字,都会复用工作区里的空白会话(每个工作区只有一个空会话,你正在写的草稿会被悄悄丢掉)。补丁里保留了按工作区去重的在途请求(快速双击会合并成一次连接),从未启用过的占位符会走原版 create 握手被接管,遇到 session/writer-held 拒绝则回落到新建。打了字的草稿就留在原地,作为自己的会话;空占位符永远不会变多。 2. 草稿作为树中的行。 原生树会隐藏除当前会话之外的空白会话,因此插件在数据层做了覆盖:在实时 store 对象上遮蔽 sessions.list.getSnapshot(保持身份稳定,HMR 安全),把每个草稿投影为 blank: false 并带上草稿标题。原生树随后会把每个草稿渲染成其工作区下的一等行——创建时间显示在尾部单元格,点击即可打开。「草稿」遵循宿主自己的判定(sessionListMetadata.blank——折叠后的前缀不包含任何轮次),这一判定在 0.2 的语义变更后依然成立:打开会话会翻转客户端的 blank 位,而打开过但从未发过提示词的草稿仍保留自己的行、预览和 ×。第一条消息发出后,草稿状态结束,该行变成普通聊天,不再受覆盖影响。投影对自身输出是幂等的(它产生的行都带有标记),因此重新捕获的 snapshot 面永远不会冻结标题。 3. 只有一个操作入口:×。 草稿是占位符,不是聊天——所有原生行控件(⋯ 菜单、行级归档/置顶按钮)都被静音,唯一的尾部控件是同一个悬停单元格里的 ×:未悬停时隐藏,灰色,16px,点一下即丢弃草稿(工作区归档——行消失,会话日志保留;当它是当前打开的草稿时,主选中项会清除)。第一条消息发出后,该行升级为普通聊天,原生控件回归。 4. 实时预览标题。 草稿的行标题就是未发送的输入框文本(Telegram 风格,折叠空白,60 字符),通过 conversation.input 实时读取,并镜像到 localStorage,让预览在重新加载后依然存在;输入框为空时显示本地化的 New Session。标题会写入树所消费的两个 summary 面——title(渲染器的行标签)和 displayTitle(归档确认与悬停复制)——并且仅覆盖层的变更会唤醒 store 的原始订阅者,因此每次按键都会让树重新设置标题。 5. 草稿的视觉标识。 草稿行获得灰色标题(主题感知的设计 token——深色下是灰配白,浅色下是柔和色配黑),并在行内空的状态槽位放一个铅笔图标,由 MutationObserver 标记绘制。行的识别依据是 0.2 渲染器打上的显式 data-row-key="session:<id>" 属性,React fiber 遍历作为回退——绝不依据文本,因为文本可能与已升级聊天的标题冲突。灰色着色直接作用于标题 span 本身(自 0.2 起,原生行 CSS 带有显式的标题颜色)。纯装饰且可自愈:如果 DOM 结构漂移,行仍能正常工作,只是失去着色。 6. 零核心改动。 实例级属性遮蔽由 Symbol.for 标记守护(跨 HMR 幂等),插件卸载时恢复,任何同步失败都回退到原生行为。不修改任何 harness 文件——安装插件即可使用。 安装 dsh plugin --profile web add link:/path/to/dsh-session-drafts 或者从已发布的副本安装: dsh plugin --profile web add @ne-ilyxa/dsh-session-drafts 然后重启 DSH web 宿主(配置档启动时会把客户端 bundle 编进启动图;这个插件不会尝试热激活)。 发布渠道 - npm —— @ne-ilyxa/dsh-session-drafts;由维护者手动发布(npm login && npm publish --access public —— prepack 负责构建包)。CI 从不碰 registry。 - 预构建 tarball —— 推送 v 标签会触发 release.yml:检查 → pnpm pack → 把 dsh-session-drafts.tgz 附到 GitHub Release。无需 npm 也能安装,也无需 pnpm 的 allowBuilds 构建审批;应用商店更偏好这种产物。 键盘快捷键 | 快捷键 | 操作 | | Ctrl+Alt+N | 随处新建会话 —— 规则和按钮一致:跳到空草稿,全都占用了才新建(与布局无关 —— 匹配物理 KeyN,俄语布局也支持) | (v0.1 的 Ctrl+Alt+D 弹出层开关随弹出层一起没了。) 验证是否生效 1. 工作区下有一个空草稿时,点 New Session —— 你会落到那个空草稿上;不会新建任何东西(空占位符从不叠加)。 2. 在里面输入点内容,再点一次 New Session —— 这时会新建并选中一个全新草稿;刚输入的那个留在树里,标题改成你未发送的文本。刷新页面 —— 一切还在。 3. 悬停到草稿行 —— 其他行显示 ⋯ 的位置会出现灰色 ×;点它丢弃草稿。在某个草稿里发一条消息,它就升级成普通聊天行(⋯ 菜单回来了)。 4. 宿主真相:只在该新建时才新建 —— 会话能扛过页面刷新和宿主重启。 截图 插件在 DSH web UI 里的样子 —— 草稿住在侧边栏树中: DSH 侧边栏中的草稿 使用草稿 开发 pnpm install pnpm run check # typecheck + build + node --test tests/.test.mjs pnpm run build # host no-op + browser bundle (lib/client.js, module-loader wrapped) pnpm test:e2e # full UI flow on an isolated DSH host (needs a harness checkout + Chrome) node scripts/capture-screens.mjs # re-shoot assets/drafts-.png against a live isolated host E2E 冒烟测试会启动一个用完即弃的 DSH web 宿主(自带 DSH_HOME 临时配置档,并安装了这个 checkout),在无头 Chrome 里驱动真实 UI,断言宿主侧会话真相和树的 DOM。环境缺失时以退出码 0 跳过 —— 通过 E2E_DSH_ROOT(harness checkout,默认 /home/ilya/deepseek-harness)和 CHROME_PATH(默认 /usr/bin/google-chrome)配置。 目录结构: - src/index.ts —— 宿主侧一半,刻意做成 no-op(这个包必须是可加载的 Profile Bundle;所有行为都在浏览器侧)。 - src/client/index.tsx —— 浏览器端部分:uiWorkspace.connectWorkspace 补丁(每条创建路径上的空草稿复用规则)、sessions.list 草稿投影(projectDraftList)、实时预览镜像、DOM 行标记、快捷键、中英文词典。没有 React,没有插槽 —— 草稿由原生组件树渲染。 - tests/ —— 针对构建产物的纯逻辑测试(通过 VM 加载)+ 包结构守卫;tests/e2e/ —— 隔离主机上的 UI 冒烟测试。 兼容性 各插件版本线验证过的 harness 版本: | 插件 | DSH harness | 状态 | | 0.7.x | 0.2.0-rc.2 | 当前版本。 已端到端验证(单元测试 + 隔离主机上的完整 UI 冒烟测试):uiWorkspace 创建流程、sessionListMetadata 草稿真值(0.2 中已启用会话的 blank 语义)、title/displayTitle 行标签、data-row-key 行标识、置灰的行内归档/固定按钮、token 门控的 Web 界面。 | | 0.6.x 及更早 | 0.1.x(rc.8 时代的服务形态:workspaces.startSession、带点的 RPC 名称、textarea 输入框) | 历史版本。在 0.2+ 的 harness 上,这些版本会降级:每一行草稿都标成 Untitled*,预览卡住,New Session 不再复用空草稿 —— 请升级到 0.7。 | 补丁的降级依然响亮但安全:如果运行时形态再次漂移,控制台会发出警告,对应部分保持原生行为。 License BSD-3-Clause © ne-ilyxa
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
ne-ilyxa/dsh-session-drafts
DeepSeek Harness(DSH)的 Cursor 式草稿会话:新建会话会复用空草稿,只有当每个草稿都有未发送内容时才新建一个,空占位不会堆积,跟 Cursor(或 Telegram)的会话列表一样。
相关插件 · 市场 / 管理
插件精选列表awesome-dsh-plugin/awesome-dsh-plugin
DeepSeek Harness(dsh)插件精选列表
★ 22,225未汉化DSH
73.6
新词雷达zhuyansen/new-term-radar
new-term-radar新词雷达
★ 2,049已汉化MCP
72.8
插件生态导航0xsline/awesome-deepseek-harness
安装 贡献指南 DeepSeek Docs 公开插件目录 Issues
★ 1,188已汉化DSH
72.6
技能注册中心iflytek/skillhub
企业级开源智能体技能注册中心——发布、发现并管理组织内可复用的技能包。
★ 5,370已汉化DSH
71.9
插件市场目录imsai-sh/awesome-deepseek-harness-plugins
面向 DeepSeek Harnessdsh生态的社区插件目录,共收录 13941 个插件含 PR 收录与…
★ 355已汉化DSH
71.8
插件精选清单Anil-matcha/awesome-dsh-plugin
DeepSeek Harnessdsh精选指南——DeepSeek…
★ 1,013已汉化DSH
71.7
这是你的仓库?认领条目