🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

变更评审台 Civitasv/dsh-plugin-diff-review

DeepSeek Harness
Civitasv79 天前有提交已提供中文文档扫描:含敏感能力

在会话中查看并评审工作区改动,逐行评论后提交

31/100
综合分
6
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/17 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

自动兼容检查有告警:未发布到 npm registry,仅可从源码安装。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Civitasv/dsh-plugin-diff-review
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
dsh 原生插件 · ui
装得上吗
本站已在 dsh 0.2.1-rc.5 下真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 79 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查⚠ 装前注意

未发布到 npm registry,仅可从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-plugin-diff-review(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/12 06:03:38

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 35 处,展示前 22 条)
  • 执行外部命令固定命令
    dist/index.js:30
    execFile("git", ["-C", cwd, "-c", "color.ui=never", ...args], { windowsHide: true, maxBuffer: MAX_BUFFER }, (err, stdout, stderr) => {
  • 执行外部命令来自配置/变量
    dist/index.js:42
    execFile(cmd, args, { windowsHide: true, maxBuffer: 8 * 1024 * 1024, timeout: opts.timeoutMs ?? 15e3, ...opts.cwd ? { cwd: opts.cwd } : {} }, (err, st
  • 读取本地文件
    dist/index.js:135
    size = statSync(abs).size;
  • 读取本地文件
    dist/index.js:143
    const content = readFileSync(abs, "utf8");
  • 读取本地文件
    dist/index.js:183
    mtime = statSync(resolve(cwd, change.path)).mtimeMs;
  • 读取本地文件
    dist/index.js:267
    mtime = statSync(resolve(cwd, path)).mtimeMs;
  • 读取本地文件
    dist/index.js:296
    if (existsSync(abs)) rmSync(abs, { recursive: true, force: true });
  • 删除本地文件递归
    dist/index.js:296
    if (existsSync(abs)) rmSync(abs, { recursive: true, force: true });
  • 写入本地文件
    dist/index.js:434
    writeFileSync(patchFile, patch);
  • 读取本地文件
    dist/index.js:454
    worktree = readFileSync(abs, "utf8");
  • 删除本地文件
    dist/index.js:469
    if (existsSync(abs)) rmSync(abs, { force: true });
  • 写入本地文件
    dist/index.js:471
    writeFileSync(abs, next.text);
  • 删除本地文件递归
    dist/index.js:475
    rmSync(dir, { recursive: true, force: true });
  • 写入本地文件
    dist/index.js:647
    mkdirSync(dirname(file), { recursive: true });
  • 写入本地文件
    dist/index.js:648
    writeFileSync(`${file}.tmp`, JSON.stringify({ version: 1, comments }, null, 2));
  • 写入本地文件
    dist/index.js:649
    renameSync(`${file}.tmp`, file);
  • 写入本地文件
    dist/index.js:1048
    writeFileSync(target.abs, record.content, "utf8");
  • 写入剪贴板
    client.js:51
    `),i=0;for(;i<t.length;){let s=t[i].trim();if(i+=1,s!=="")break}for(;i<t.length;){let s=t[i].trim();if(s===""){i+=1;continue}let o=/^工作区[::] *(.+)$/.
  • 发起网络请求
    client.js:383
    `)}function dD(r,e,t){let i=e,n=t;return r.map(s=>s.kind==="ctx"?{row:s,oldLine:i++,newLine:n++}:s.kind==="add"?{row:s,oldLine:null,newLine:n++}:s.kin
  • 写入剪贴板
    client.js:384
    `);return(!t.current||t.current.signature!==i)&&(t.current={signature:i,tree:_n(r,e)}),t.current.tree}function Ei(r){let{nodes:e,collapsed:t,onToggleD
  • 发起网络请求
    client.js:388
    `).slice(0,16e3)},z=()=>{if(!o)return;let A=C.map(_=>_.id);dh.update(_=>{let E=_[o]??{sentCommentIds:[],sentReviewKey:null};_[o]={sentCommentIds:[...n
  • 写入剪贴板
    client.js:393
    `)},GD=()=>{kh(sS()),oo(!0)},oS=async()=>{let O=ao.trim();if(!(!O||b)){w(!0);try{let x=await yx(r,cr??null,O);oo(!1),C(x==="sent"?{kind:"ok",text:e("r
扫描于 2026/11/4(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-llm@deepseek-ai/schemastery@deepseek-ai/dsh-attachment@deepseek-ai/dsh-client-locale@deepseek-ai/dsh-client-runtime@deepseek-ai/dsh-client-ui-conversation@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-settings-plugins@deepseek-ai/dsh-client-ui-slots
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 查看工作区改动
  • 逐行评论
  • 提交评审意见

在 DeepSeek Harness 里做 Codex 风格的 diff 审查

README

由 DeepSeek 最新模型翻译生成
DeepSeek Harness 中的 Codex 风格 diff 评审 在 DSH 中查看、处理和评审当前工作区改动。点击会话页头的 变动 即可打开右侧评审工作台。 评审工作台 中文文档:本文件 · English docs: README.en.md 安装 本插件依赖 dsh-plugin-open-editor,请一并安装: dsh plugin --profile web add github:Civitasv/dsh-plugin-open-editor#main dsh plugin --profile web add github:Civitasv/dsh-plugin-diff-review#v0.1.2 上面两条 dsh plugin add 命令负责安装包,但 DSH 只会加载在 web profile 的补丁文件中注册的插件,因此还需在 ~/.dsh/profiles/web/cordis.patch.yml 中列出它们: - insert: - id: open-editor name: dsh-plugin-open-editor - id: diff-review name: dsh-plugin-diff-review 重启 DSH 后即可使用。更新时重新执行两条安装命令。
展开完整文档(README 剩余 1 节)
DeepSeek Harness 中的 Codex 风格 diff 评审

在 DSH 中查看、处理和评审当前工作区改动。点击会话页头的 变动 即可打开右侧评审工作台。

评审工作台

中文文档:本文件 · English docs: README.en.md

安装

本插件依赖 dsh-plugin-open-editor,请一并安装:

dsh plugin --profile web add github:Civitasv/dsh-plugin-open-editor#main
dsh plugin --profile web add github:Civitasv/dsh-plugin-diff-review#v0.1.2

上面两条 dsh plugin add 命令负责安装包,但 DSH 只会加载在 web profile 的补丁文件中注册的插件,因此还需在 ~/.dsh/profiles/web/cordis.patch.yml 中列出它们:

- insert:
- id: open-editor
name: dsh-plugin-open-editor
- id: diff-review
name: dsh-plugin-diff-review

重启 DSH 后即可使用。更新时重新执行两条安装命令。

本地开发安装

macOS / Linux
bash install.sh

Windows PowerShell
powershell -ExecutionPolicy Bypass -File install.ps1

脚本会安装并注册 dsh-plugin-open-editor,并将当前目录链接到 profile;安装后重启 DSH。

查看改动

在 变动 中选择范围:最后一轮、未暂存、已暂存、提交 revision 或分支。点击文件可查看 diff;标题栏可切换单栏/双栏、跳转文件、收起 diff,以及显示或隐藏文件树。

选择 提交 后,在子菜单选择具体 revision 才会打开其 diff。

单栏与双栏 diff

文件树

文件树可搜索、展开目录、拖拽调整宽度,并会定位当前打开的文件。右键文件可在编辑器中打开、复制路径或添加到当前对话。

文件树

文件页签

在文件树中选择文件,或从 Review 打开文件,会创建可关闭的文件页签。文本文件可直接编辑并自动保存;支持图片预览与常见代码/文档格式的高亮显示。

文件预览

引用助手回复到对话

在 DeepSeek 助手回复中选中一段文字,会浮出 添加到对话 按钮;点击即可将该内容追加到当前会话输入框,方便继续追问。

处理与提交

- 使用文件或 hunk 旁的按钮暂存、取消暂存或丢弃改动。
- 点击 提交,填写说明后选择提交、提交并推送或推送。

评论与摘要

在 diff 行旁添加评论,集中确认后发送给代理;成功发送后,评论会从待处理列表移除。

评论展示

代理处理评论后,会在回复下方显示评审结果卡和本次文件改动摘要,可直接进入 Review 查看对应 diff。

评审与改动摘要卡

常见问题

- 最后一轮没有文件:终端命令直接修改的文件不会进入会话记录;请切换到未暂存或已暂存范围查看 Git 改动。
- 在编辑器中打开失败:确认 dsh-plugin-open-editor 已安装并启用,并确认目标编辑器可以从 PATH 启动。

License

MIT
预览分享卡片长什么样 ↓Civitasv/dsh-plugin-diff-review
分享 · DeepSeek Harness Hub
Civitasv/dsh-plugin-diff-review

在会话中查看并评审工作区改动,逐行评论后提交

这是你的仓库?认领条目

回到顶部