mcpField
D
DiffCI

DiffCI

远程服务
diffci.com开发工具0今天更新

关于 DiffCI

DiffCI Core 分析本地代码库,识别代码变更影响的测试,并提出有证据支持的测试计划。它面向评估测试影响的开发者和维护者;保守回退与仅供参考的结果确保完整 CI 仍是权威检查。

主要功能

  1. 01Git 变更与依赖分析
  2. 02测试影响追踪
  3. 03保守回退至全量运行
  4. 04推断 GitHub Actions 结构
  5. 05提供参考性测试命令计划

适用场景

  1. 01检查拉取请求受影响的测试
  2. 02不更改必需 CI 的情况下评估选择性测试
  3. 03分析 JavaScript 或 TypeScript 代码库变更
  4. 04检查 CI 作业结构和测试选择依据

MCP 相关

agent-plugin 包将已发布的 DiffCI CLI 作为本地 MCP 插件提供给编码 Agent。安装指南涵盖多种 Agent 和通用 MCP 主机。

配置

远程服务无需本地安装。选择你使用的客户端,复制配置或使用一键安装。

服务地址https://diffci.com/mcp/v1
一键复制安装命令
Claude CodeTerminal
Cursor.cursor/mcp.json
VS Code.vscode/mcp.json
Claude Desktopclaude_desktop_config.json
Windsurf~/.codeium/windsurf/mcp_config.json

命令在终端中运行;JSON 粘贴到对应客户端的 MCP 配置后重启。需要授权的服务会在首次连接时提示登录。

安装包
npm@diffci.com/diffci0.3.13

工具

3
参数类型必填说明
repostring否可选的本地仓库路径,将作为单个 --repo 参数传入。
actionenum否验证操作。默认为 check。check | observe | init | verify-workflow
platformenum否仅用于渲染显示命令的 Shell。默认为 posix。posix | powershell

详细介绍

DiffCI Core

DiffCI MCP server

开源的测试影响分析,让 CI 更快。 面向希望评估更改会影响哪些测试的开发者和维护者,并在保守情况下回退到全量运行。采用 AGPL-3.0-only 许可。

编码 Agent 插件

公开的 integrations/agent-plugin 包 将已发布的 DiffCI CLI 作为可识别代码检出状态的本地 MCP 插件提供。 该包仅包含公开的市场元数据、技能和固定版本的 npm 启动器;不包含产品服务或私有源代码。 跨 Agent 安装指南涵盖 Codex、 Claude Code、Cursor、Grok、Meta Muse Code 和通用 MCP 主机。

# Codex
codex plugin marketplace add DiffCI/core
codex plugin add diffci@diffci-local

# Claude Code
claude plugin marketplace add DiffCI/core
claude plugin install diffci@diffci-marketplace

Cursor Marketplace 会读取此仓库中的 .cursor-plugin/marketplace.json。 Meta Muse Code 会读取根目录中的原生 marketplace.json。在公开列表获批之前, 请使用 agent-plugin 包中的本地 MCP 配置,或访问 https://diffci.com/mcp-server。

GitHub Action

公开的 action.yml 是一个仅用于观测的 GitHub Action 封装。它会在被观测的代码检出目录之外运行固定版本的已发布 DiffCI CLI, 保留现有 CI 作业,并上传建议性报告。请参阅 观测器 Action 指南和 工作流示例。

v0.3.10 对应的源代码 仍可在带标签的 Core 提交 4c76be14(cli-v0.3.10-source)中公开获取, 目前发行方式正迁移到 Core 原生 CLI 包。

使用 Git 和 Node.js 22.5+,在现有的 Git 代码检出目录中试用已发布的 CLI:

npx "@diffci.com/diffci@latest" check

在可安全测量时,它会比较全量运行与所选测试的运行时间,将报告写入代码检出目录之外,且默认不会发送任何内容。测试命令可能会生成文件;请确保必要的 CI 检查仍具有权威性。

**测量示例:**一次受控的 Cal.com 沙盒重放测得,安装 + 预测试 + 测试的总运行时间净减少了 44.2%,其中包含分析开销。这是与作业等效的比较,并非生产环境中的节省,也不是对你仓库的预测。方法与局限。

录制的 Cal.com 沙盒对比

为 Core 点星 · 提供一个试点仓库 · 寻找第一个贡献机会。 通过 Watch → Custom → Releases 和 Discussions 关注基准测试结果与支持更新。公开路线图。

这是独立的 Core 引擎。它可分析本地 JavaScript/TypeScript 仓库、受支持的 Vue 组件、根 Go 模块和常规 Maven reactor,追踪依赖影响、推断 GitHub Actions 结构,并基于证据提出测试选择,同时提供全量运行回退方案。无需 DiffCI 账户、托管服务或 API 密钥即可使用。支持范围限制请参阅发行边界。

想在现有仓库中试用 DiffCI? 请使用已发布的 CLI:npx @diffci.com/diffci@latest check。有关无需执行代码的分析选项、前置条件和结果解读,请参阅 CLI 快速入门。以下命令会从源代码构建独立引擎。

在本地运行

需要 Git 和 Node.js 22.5 或更高版本。

git clone https://github.com/DiffCI/core.git
cd core
npm ci
npm run build
npm test
node dist/cli.js plan --repo /path/to/clean-checkout --base HEAD~1 --head HEAD

目标必须是检出到 --head 的干净 Git 仓库根目录。如果使用浅克隆,请事先获取基准提交。JSON 输出到标准输出;分析错误会以非零状态码退出,并建议运行完整 CI。核心不会执行仓库脚本、联系 DiffCI 后端或发送遥测数据。安装需要访问 npm 注册表。

若要在不更改必需作业的情况下,对拉取请求运行同一命令,请复制建议性 GitHub Actions 示例。

计划仅供参考。 此版本不会执行、跳过或取消 CI 作业。SKIP_CANDIDATE 只是候选项,不代表获准绕过检查。在评估 Core 时,请以完整 CI 为准。缺少命令生成、配置不受支持以及证据不完整,均不得视为空测试套件。静态分析无法证明可以安全地省略某项测试。

对于 CI 运行的生命周期目标或配置文件并非 test 的 Maven 作业,请在 diffci.json(或 package.json 中的 diffci 键)声明它们:

{ "maven": { "goal": "verify", "profiles": ["run-its"] } }

这会更改建议的命令,例如 mvn -pl tools -am verify -P run-its;但 Core 仍不会运行该命令。执行前,请根据仓库的 CI 工作流确认该命令。

包含内容

声明了 pnpm 工作区且只有一个 Vitest 测试阶段的项目,可以获得包级命令计划。每个选定路径都必须属于已声明包中发现的某项测试。运行时选择会分批处理,以使命令长度不超过 Windows 限制;声明了 --typecheck 的包会保留单独的完整类型测试阶段。包含复合脚本、生命周期钩子、所有权重叠或发现盲区的包,不会采用选择性执行。命令仅供参考,必须单独执行;CLI 自动对多个命令计时还需要额外集成。

范围实现
变更和依赖Git 差异、仓库清单、JS/TS 依赖图、影响遍历
安全与计划风险信号、保守回退、始终运行策略、测试选择和命令生成
CI 分析GitHub Actions 证据、作业/引用图、条件和矩阵推断
可复现评估合成基准测试和可移植回归测试
度量当前进程的墙钟时间、CPU 时间和结束时的 RSS;基于显式输入的成本/能耗/碳排放估算

库入口导出 analyzeCheckout、buildDependencyGraph、ImpactAnalyzer、DefaultCIPlanner、collectEvidence、inferPipeline、measure 和 estimateImpact。较低层级的模块可通过包子路径访问。本仓库是引擎源码,已发布的 @diffci.com/diffci CLI 也由此发布。此前发布的 v0.3.10 软件包对应的源码保留在标记提交 4c76be14 的源码归档中。

npm run typecheck
npm run audit:boundary
npm run benchmark

基准测试会构建一个临时合成仓库,其中包含 100 个串联模块和 100 个导入这些模块的测试文件。在一个 Node.js 进程中,它会依次构建同一张依赖图三次,之后移除该测试夹具。先使用 npm ci 安装依赖,然后在 Node.js 22.5 或更高版本下运行 npm run benchmark。比较运行结果时,请同时记录输出的 node 和 platform,以及机器的 CPU、内存、操作系统和竞争性工作负载。这三次构建共享进程、操作系统和编译器的预热效应;它们并非在受控冷缓存条件下进行的独立重复测试。

runs 中的每个条目包含以下字段:

字段说明
basis: "measured"进程计数器是实际观测值,而非估算值。
scope: "current-process"仅涵盖基准测试的 Node.js 进程,不包括整个主机、容器或 CI 作业。
wallSeconds一次 buildDependencyGraph 调用的实际经过时间。
cpuSeconds当前进程在该次调用期间消耗的用户态与系统态 CPU 时间;该值可能与实际经过时间不同。
rssBytesAtEnd调用结束后采样的常驻集大小。它既不是峰值内存,也不是该次调用单独分配的内存。
nodes、edges图的规模。当前测试夹具应生成 200 个节点和 199 条依赖边。
confidence此合成测试夹具的依赖图置信度。COMPLETE 并不能证明真实仓库可以安全地跳过测试。

例如,wallSeconds: 0.79、cpuSeconds: 0.84 和 rssBytesAtEnd: 327868416 表示一次图构建耗时约 0.79 秒,消耗了当前进程约 0.84 CPU 秒,并以约 328 MB 的 RSS 结束。它们不表示 CI 提速了 0.79 秒或节省了 328 MB。该脚本不会运行测试、安装、构建,也不会比较完整执行与选择性执行,因此不得将其计时结果报告为 CI 节省。

单独的 estimateImpact API 只能根据调用方提供的 computeSeconds、价格、功耗和电网碳强度假设,计算 estimatedUsd、estimatedKwh 和 estimatedKgCo2e。这些值的 basis: "estimated";它们是建模场景,并非基准测试输出、实测数据、账单记录或经核实的减排量。

赞助商

DiffCI Core 由其 GitHub Sponsors 支持。赞助资金用于维护、扩大语言和 CI 支持范围,以及开展可复现的基准测试。

合作伙伴

目前还没有合作伙伴赞助商。成为首位赞助商。

团队赞助商

目前还没有团队赞助商。团队赞助商的徽标也会显示在 diffci.com/sponsors。

支持者

目前还没有支持者。月捐 25 美元或以上的支持者会列于此处。

赞助商提交的错误报告会标记为 sponsor,并优先处理。

Core 与 Cloud

组件可用性许可证
此 Core 仓库公开源码AGPL-3.0-only
DiffCI Cloud:托管、计费、组织管理、仪表板、托管服务私有源码专有;此处不包含
可选企业模块此处未发布如果提供,将采用单独的源代码可见许可证

此仓库仅包含明确提取的 Core 文件和独立工具。此处没有私有单体仓库历史记录、客户数据、部署配置或 Cloud 实现。Core 可独立使用;这并不意味着私有产品已经迁移并开始使用此软件包。

许可证与贡献

请参阅 LICENSE、NOTICE 和 CONTRIBUTING.md。AGPL 允许商业用途;它并非非商业许可证。其义务(包括适用于通过网络使用的修改版本的义务)由许可证规定。是否符合授权条件取决于具体的授权协议。此仓库的布局并不保证符合条件,也不保证实现法律上的隔离。

有关范围和当前限制,请参阅发布边界。

觉得有用?为引擎点星,并分享可复现的试点结果。

评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。