会话代码收集器:输入框右侧按钮一键汇总当前会话中模型产出的全部代码块,支持按语言/按文件双视图、同一文件的版本历史、实时搜索过滤、单条/全部复制、下载合并 Markdown,点击直接跳转到产出该代码的回合(Alt+Shift+C 快捷开关)。
安装
# npm 包(预构建)
dsh plugin --profile web add dsh-code-collector
# GitHub 源码(首次需按提示配置 allowBuilds 构建授权后重试)
dsh plugin --profile web add github:bycall/dsh-code-collector
装任何插件都等于在你的机器上跑第三方代码,权限和你本人一样大——能读你的文件、用你的凭据、访问网络,工具审批管不到它。GitHub 来源的插件还会在安装时执行构建脚本——pnpm 默认拦截,所以安装可能停在 ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED 或 ERR_PNPM_IGNORED_BUILDS;dsh 会打印出需要添加的确切键名,把它加进该 profile 的 pnpm-workspace.yaml 的 allowBuilds 下,重跑一次即可装上。放行构建本身就是一次信任判断:请只安装可信来源,并尽量锁定 commit(github:owner/repo#sha)。
README
DeepSeek Harness(dsh)会话代码收集器插件:把当前会话里模型产出的全部代码块汇总到一个面板——按语言或按文件分组、同一文件的多次迭代合并为版本历史、实时搜索过滤、一键复制/全部复制/下载合并 Markdown,点击任意条目直接跳转到产出该代码的回合。
背景:dsh 长会话(尤其让 AI 改代码的场景)会散落大量代码块,想回头找某段代码、对比某个文件的修改版本,只能手动翻聊天记录。本插件把"会话内所有代码"变成可检索、可分组、可复制的资源清单。
功能
| 能力 | 说明 |
|---|---|
| 收集按钮 | 输入框右侧(conversation.input.right 插槽)常驻按钮,实时显示当前会话代码块总数徽标;Alt+Shift+C 快捷开关面板(避开生态内 Ctrl+Alt+C 占用)。 |
| 双视图 | 按语言(色点 + 语言名 + 条数/总行数)与按文件(同名文件聚合,AI 迭代修改同一文件时自动形成版本历史,显示最新版,可展开查看/复制/跳转任意历史版本);视图偏好按浏览器记忆(localStorage)。 |
| 实时搜索 | 面板内搜索框,按文件名 / 语言 / 代码内容实时过滤,大小写不敏感;无匹配时明确提示。 |
| 代码提取 | 遍历会话快照全部 assistant 节点:显式 code 块(language/filename 多字段防御)+ text 块内 fence 代码段,均被收集;语言名自动归一化(Python/TypeScript/Shell…)。 |
| 批量操作 | 单条复制、复制全部(带文件名头注释)、下载全部为单个 Markdown(session-code.md,按 --- 分隔)。 |
| 点击跳转 | 点击条目/版本 → 平滑滚动到该回合第一条消息并高亮(复用 data-chat-anchor-key 语义锚点机制)。 |
| i18n | 中英双语词典(跟随 dsh 语言环境)。 |
安装
# npm 源(推荐,市场内一键安装体验一致)
dsh plugin --profile web add dsh-code-collector
# 或本地目录源
dsh plugin --profile web add file:/Users/bycall/Documents/GitHub/dsh-code-collector
然后在 ~/.dsh/profiles/web/package.json 的 dsh.profile.bundles 数组中加入 "dsh-code-collector",重启 DSH.app(或硬刷新浏览器窗口)生效。
卸载
dsh plugin --profile web remove dsh-code-collector
工作原理
- 插槽注册(客户端):通过
ctx.slots注册会话级插槽conversation.input.right(idcode-collector-btn)。 - 数据来源:插槽组件拿到会话快照,读取
snapshot.chat.order/snapshot.chat.nodes(assistant 节点的data.blocks:code块直接取language/filename/code;text块用围栏正则```lang\n…\n```提取代码段;location.turn.turn定位所属回合)。 - 文件版本历史:同名文件的代码块按回合升序排列,最新版默认展示,展开后可见全部历史版本(回合号 + 行数 + 最新标记),任意版本可复制或跳转。
- 搜索:文件名 / 语言标签 / 代码内容三路包含匹配。
- 跳转机制:每条消息行 DOM 带
data-chat-anchor-key="<Context key>",跳转 = 找到该行 →scrollIntoView+ 高亮。
目录结构
dsh-code-collector/
├── package.json # dsh.bundle.patch + dsh.client + exports["./client"]
├── cordis.patch.yml # bundle 挂载声明
├── lib/
│ ├── index.js # 服务端挂载入口(UI-only,空实现)
│ └── client.js # 全部功能(client bundle,单文件自包含)
├── test/
│ └── smoke.cjs # 冒烟测试(factory/slot/提取/分组/搜索断言)
├── release/
│ └── dshmarket-submission.yml
├── README.md
└── LICENSE # MIT
验证
npm run verify # node --check(client/index)+ 冒烟测试
# 等价于:node test/smoke.cjs # ALL CHECKS PASSED
npm pack --dry-run # 检查发布到 npm 的文件清单
CI 在每次 push / PR 时于 Node 18/20/22 上自动跑 npm run verify。
License
MIT
链接
同类插件
zhu1090093659/dsh-web#packages/dsh-task-board★ 8801
侧边栏多列任务看板:卡片交给真实 DSH 智能体会话执行,支持 cron 定时(Host 侧到点执行,关浏览器也生效)。
zhu1090093659/dsh-web#packages/dsh-web-all★ 8801
DSH Web UI 插件与皮肤合集:任务看板、git 图、右侧面板、远程移动端 UI、桌宠、实时 token 统计与皮肤中心。
MeteorNOX/DeepSeek-Balance-Whale-Widget★ 4908
右下角常驻的小鲸鱼挂件:余额、今日已用与每轮对话消耗(含峰谷价),余额预警与今日预算的泡泡内容都可编辑;泡泡点击序列模块化自定义,支持并列加权 A/B、随机台词与随机图片;内置 30+ 厂商模板(OpenAI / OpenRouter / Kimi / 硅基流动 / 方舟 / 智谱 / MiniMax 等),按模型查余额与订阅额度;另有任务结束音效、导入音频、自定义角色与资源管理。数据全在本机,无遥测。
ccch1mneyyy/dsh-TUI★ 4640
Claude Code 风格全屏终端 UI:像素鲸鱼顶栏、实时工作状态行、思考流式展开。
omdsh-dev/DSH-better-sidebar★ 4198
侧边栏完整工作台:内置文件渲染编辑、终端、Git 与子代理,支持三方插件注册新 Tab。
Devin-AXIS/deepseek-design#deepseek-idesign★ 1463
可视化设计工作室,支持网站、App 原型、海报、信息卡、报告和杂志的模板创建、元素编辑、选区级 AI 草稿衔接与导出。
社区评论
评论公开保存在 GitHub Discussions。加载评论会连接 GitHub 和 Giscus;发表内容需要 GitHub 账号。