npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@feng0531/dsh-code-review

v0.6.2

Published

Read-only Git/SVN code review for DSH

Readme

DSH Code Review

精简、只读的 Git/SVN 代码审查插件。读取指定变更及显式上下文,复用当前 DSH Agent 的模型,输出有证据和可校验位置的问题。不会自动修复、提交、回滚或发布。

当前状态

当前代码版本为 0.6.2,包含有界覆盖预检、显式项目规则及候选证据与反证复核;发布状态以 npm 和 GitHub Release 为准。已通过真实临时 Git/SVN 仓库测试,以及隔离进程中的真实 DSH ToolRuntime 注册验证。当前开发会话的实际预览已返回0.6.0的plan/rules字段,空变更预览与默认关闭外发已验证;已进行经宿主审批的六次小规模真实试跑,累计12次模型调用;四组合成正负例与历史修复对照符合预期,历史引入方向检出候选但引用复核未完成(partial)。不是独立盲测或整体质量证明。详情见 试跑结果。

项目规则(0.5.0)

code_review_preview 可传 rulePaths: ["review-rules.md"],只读显式选入的仓库相对路径;不会自动搜索父目录、加载远程规则或执行 include。仅接受 UTF-8 .md/.txt,最多4个、单个16 KiB、合计32 KiB。规则还占用快照和模型输入预算,超限不静默截断。

规则不能与 contextPaths 重复,不能绕过已排除/删除文件;未跟踪规则须同时通过 selectedPaths 显式选入变更范围。预览与审批列出路径和SHA-256,并告知全文外发;变更使旧预览失效。初审和复核使用同一规则快照,报告仅列来源/哈希,不重复全文。规则是非可信约束数据,不增加工具或权限;风格违规不自动算缺陷,模型遵循规则的质量尚未实测。

大变更覆盖(0.6.0)

预览返回 plan:逐文件初始输入字节、关联回退状态和 ready/input-blocked/excluded/blocked。预检包括提示词、检索目录、规则及上下文,不外发模型。minimumCalls 仅是所有ready主文件各一次初始请求的下限,不是费用估算或可完成承诺;检索、复核会增加调用。200文件全ready仍可能被100次全局调用额度截断。

执行报告的 files/coverage 才是实际覆盖;关联上下文发送不等于作为主文件审查。initialInputBytes 仅在进入预检的文件上存在。followup.suggestedPaths 列出未完成项(包括初审完成但复核未完成),不自动续审,也不代表阻断原因已解决。再次执行需新预览、新审批,并显式重选规则/上下文。空建议不代表没有限制或代码正确。

本阶段不抬高200文件/4MiB快照硬限,不拆分超大文件或hunk,不支持跨审批自动恢复。

环境

  • Node.js 22+,Git,SVN(测试还需要 svnadmin)。
  • DSH 提供 tools、llm、approval 服务;当前已核对宿主 API,尚未承诺稳定跨版本兼容。
  • Windows SVN 必须支持 UTF-8 路径;CI 对临时 SVN 工具设置 UTF-8 manifest,不修改用户安装的 SVN。

安装

在 DSH 插件管理器中添加本仓库 Git 地址,或克隆后添加本地绝对路径。包包含组合声明,启用时默认 allowModelSending: false,只能预览。需要审查时在插件配置中显式设为 true,每次执行仍需宿主审批。

dsh plugin add https://github.com/f-e-n-g-0531/dsh-code-review.git

本项目不自动修改已有 profile;安装成功也不等于模型与审批链路已验收。

使用流程

插件入口为 index.mjs,由 DSH 插件加载器装载(本项目不自动修改 profile)。配置 allowModelSending: true 才能执行模型审查;缺省只允许本地预览。

  1. 在目标仓库的活跃 Agent 会话中调用 code_review_preview。
  2. 可用 selectedPaths 精确选择变更文件;未跟踪文件必须显式选入。contextPaths 提供仓库相对路径的额外上下文。
  3. 展示预览中的仓库范围、文件、排除原因及模型提供方。调用 code_review_execute,传入 previewId 和 confirmed: true。
  4. 服务另外请求宿主审批,只有 allowed-once 允许外发;确认参数不能绕过审批。宿主 never 策略、无应答者或拒绝均不发送代码。
  5. 返回 json(结构化报告字符串)及 markdown(中文报告)。文件、模型或目录变化时需重新预览。

默认在发现的仓库根目录审查,而不是仅当前子目录;预览会显示实际根目录。发送内容包括可审查文件的两侧完整文本、属性和显式上下文,可能包含敏感信息。选择前请检查范围,不要把密钥文件作为上下文。

升级后检查

安装版本号不等于当前进程已重新加载。升级后可先调用本地预览:0.6.0应返回 plan 和 rules(未选择规则时为空数组)。若缺失,核对当前profile的依赖和加载来源,必要时经用户确认重启DSH,再重新预览;不要因此开启外发或重复安装。ready仅表示初始输入可容纳,不代表已审查。

支持与限制

  • Git:HEAD 到工作区净变化,含暂存和未暂存变化;支持未出生 HEAD、重命名、新增和删除。没有独立 staged/unstaged 审查模式。
  • SVN:本地每节点 BASE 到工作副本,包含目录属性,无需连接远端。复制、替换、switched、externals、冲突及目录结构变化目前阻断并说明,不宣称完整 SVN 历史支持。
  • 二进制、不能解码的内容、链接、非普通文件和超限文件明确阻断。不会转码写回。
  • SVN 配置 svn:keywords 的文件目前明确阻断,避免把关键字展开误认为代码变化;CRLF/LF 保留原始文本并提示模型不应仅因换行差异报缺陷。
  • 当前逐文件审查;模型可在已批准的可审查文件两侧及显式上下文中搜索和读取行段,不访问范围外文件,不开放 shell 或模型工具调用。JS/TS实现与测试可按唯一命名关系分组,每组最多4个文件,同组两侧作为主文件上下文;仍逐主文件审查,不是一次联合审查或通用依赖图。组输入超预算回退单文件并报告限制;大文件超预算不截断,标记未完成。
  • v0.2.0 提供有界 diff/hunk 与紧凑编辑引用。发现的归因引用可校验,但因果解释仍未经独立验证;缺失归因保留发现并标记 partial。检索截断同样进入报告限制。
  • JSON 报告包含检索来源目录和本地已成功读取的审计元数据,不保存重复源码;retrieved-locally 不表示模型已接收或采用证据。
  • 快照双次采集和内容复验用于发现普通并发修改,不是文件系统原子快照,不承诺防御恶意并发链接置换。
  • 程序校验定位不等于证明缺陷成立;模型结果需人工判断。partial / failed / cancelled 不表示通过;无发现也不证明代码正确。
  • 运行默认最多 200 个变更,单文件 256 KiB,总快照 4 MiB;上下文最多 20 个。单模型输入约 96 KiB,最多 100 次调用,每文件的完整模型/检索循环共用 120 秒超时。开发版每文件的候选生成与复核两阶段各最多 3 轮检索及随后结论调用;全局检索最多 50 次,序列化输出累计 256 KiB,单次最多 64 KiB,读取最多 200 行。取消后等待模型适配器清理完成;适配器必须遵守 AbortSignal,不合作的同进程实现无法强制终止。

候选复核(0.4.0)

审批后的候选生成结果会进入证据与反证复核;无候选不追加调用。两阶段共享同一单文件超时、全局模型调用和只读检索预算,复核也不开放可执行工具或扩大快照范围。

报告保留全部候选与原定位,分别显示模型支持、模型反驳、不确定或未完成。支持/反驳必须附带批准快照的来源、SHA-256、完整行范围及精确原文;这些校验不证明缺陷或因果成立。反驳不会静默删除候选;不确定、预算耗尽及无效复核均记入限制。生成阶段的限制在复核超时后仍保留。证据核验的本地读取也消耗共享读取预算。

目前通过受控模型协议和安全回归测试,尚未证明真实模型的误报/漏报改善。真实缺陷评测仍待完成。

开发与验证

npm ci --ignore-scripts
npm test
node scripts/host-smoke.mjs <DSH-checkout>

测试在 OS 临时目录创建仓库并清理,不修改用户业务仓库。宿主 smoke 只加载真实 Cordis/ToolRuntime;模型与审批为桩,不代表 GUI 或真实模型验收。

CI 覆盖 Ubuntu/Windows × Node 22/24,版本 tag 或手动触发,普通 push 不触发。正式发布需在版本 tag 上手动运行 CI 并勾选 publish;普通 tag 测试不会发布。

正式发布

  1. 在本仓库 Actions Secrets 中配置 NPM_AUTOMATION_TOKEN,需要目标 npm 包的发布权限;工作流仅在 npm 发布步骤映射为 NODE_AUTH_TOKEN。
  2. 确认包名 @feng0531/dsh-code-review 的所有权、版本号和分发许可;更新版本及锁文件,提交并推送同名 vX.Y.Z 标签。
  3. 在 Actions → CI → Run workflow 选择该标签,设置 publish: true。四组测试全部通过后才进入发布任务。
  4. 打包一次,在临时目录安装检查,然后先发布 npm,核对 registry 的 SHA-512 完整性,再用同一 tgz 和 SHA256SUMS.txt 创建 GitHub Release。

正式发布只通过 GitHub Actions,不使用本地 npm publish。该流程已在 v0.1.1 完成实际发布及两端同工件核验。若 npm 已成功而后续步骤失败,不要更换同版本安装包或盲目重跑发布;需核对 registry 工件并补齐 GitHub Release。缺少 token、版本不符、安装检查或 npm 发布失败均不会创建 Release。

项目与许可

本仓库独立维护、测试和交付,采用 DSH Code Review 非商业源码公开许可证 1.0。

允许非商业用途的使用、学习、修改和分发;禁止未经书面授权的商业使用,包括公司内部用于商业项目的开发、测试和维护,以及收费服务和商业交付。修改和分发须保留版权、许可证及适用的第三方声明,并注明修改内容。商业用途须另行取得相关权利人的书面授权。

本许可证属于源码公开许可证,不是 OSI 认可的开源许可证。依赖项及另行标明许可的组件仍适用各自许可证。