GitHub Explorer
📰 公众号已发布 2026-07-11

GitHub推荐:12 年 50K stars:Cypress 凭「在浏览器里跑测试」反杀 Selenium,又在 AI 时代与 Playwright 抢云端

GitHub: https://github.com/cypress-io/cypress

一句话总结

Cypress 用「测试代码与被测代码共享同源上下文」的激进架构赌赢了 Selenium 协议模型——这条「不上 WebDriver 的浏览器内 runner」路线,让「自动重试断言 / 时间旅行 / 可视化 Test Runner」从梦想变成默认,并把这套能力做了 12 年、50K 星、892 个版本,最终在 AI 时代把 Test Replay、UI Coverage、Cloud MCP、cy.prompt 这些付费能力收进了 Cypress Cloud。

值得关注的理由

  • 范式革命的发起者而非跟随者:在 Selenium/WebDriver 协议垄断 2014 年的浏览器自动化战场,Cypress 把 driver 拉进浏览器同源上下文,整个「自动重试 + 时间旅行 + 可视化 Test Runner」路线都被这一前置假设自然推导出来。Playwright(微软,2020)后来收敛到类似范式,但 Cypress 是这条路线的发明者。
  • 12 年不减速的商业奇迹:60 万行 monorepo、23,174 commit、日均 5+ commit、月均仍 120+ commit、近 365 天 1,439 commit;2018-2019 经历过收购/资本进入的低谷,2024-2026 反而提速,与 Playwright 正面对峙。50k 星 + MIT + 14 个福布斯级客户(Square/Cisco/Zendesk/Splunk/Indeed/HelloFresh/Autodesk/Patreon/Monday.com/Puma…)+ 周更版本,构成「开源吸量、SaaS 收钱」教科书模板。
  • 范式的隐藏成本极有借鉴价值:iframe 支持至今 9 年未完美解决(#136 477 comments 仍是 Open Epic)、Safari/WebKit 支持走了 7 年(2024 才 GA)、跨域访问走了 6 年才通——选了「同源执行」的灵活性,就要为每个边界条件买单。这是一份难得的「架构选择的代价清单」,对所有「单上下文体验 vs 多上下文覆盖」的设计抉择都极有参考意义。

项目展示

README 媒体已通过 raw 路径校验,官网图片因 robots 限制未直接抓取——以下为高价值媒体。

Cypress Logo

官方品牌标识。 视觉锚点,定调「开发者工具的精致度」。

Cypress 安装演示 GIF

30 秒装好 demo。 Cypress 一直强调的「npm i cypress 即跑」零配置叙事,与 Selenium 的 hub/node/驱动三层部署形成强烈对比——这是 DX 选择的具象化。

Why Cypress 介绍图

价值主张可视化。 一图讲清「在浏览器里跑」反 WebDriver 的核心叙事。

官网视频(Test Replay)建议读者访问 cypress.io 自行观看:失败用例的 DOM + 网络 + console 时序回放,这是 Cloud 付费增值的关键卖点。

项目画像

维度数据
GitHubhttps://github.com/cypress-io/cypress
Star / Fork50,594 / 3,591
累计版本892 个 tag / 100+ 次正式 release,最新 v15.18.1
代码行数~607,072(不含空行/注释),TS 44.6% + JSON 28.1% + JS 18.9%,6,439 文件
项目年龄145 个月(首次 commit 2014-06-05;仓库 2015-03-04 注册)
开发阶段密集开发(月均 120+ commit,v15 周更,2025-2026 反而提速)
贡献模式公司化职业项目(cypress-io Organization)
协作集中度前 5 名贡献者占 52.4%(Brian Mann 6,692 commits / 29.7% 主导)
自动化占比github-actions + renovate + semantic-release-bot ≈ 2,411 commits(≈ 10%)
热度定位大众热门(测试框架第一梯队,与 Playwright ~70k、Selenium ~33k 同台)
质量评级代码[优秀] 文档[优秀] 测试[优秀] 商业化[完善]
Open Issues / PRs1,035 / 69(治理健康;高 Issue 量与 SaaS 化支持工单混合有关)

作者视角:为什么存在这个项目

创始人/作者背景

cypress-io 是 2014-09 注册的 Organization(比仓库还早半年),意味着先有公司、后开仓库。Brian Mann(6,692 commits,29.7%)是联合创始人兼核心架构师,他主导了从 Selenium「远程控制协议」到「浏览器内状态机」的范式跳跃。

第二大技术贡献者是 Gleb Bahmutov(1,171 commits)——业界 DevEx 大佬、前 Cypress VP of Engineering、测试圈 KOL,自带 sinon’s fake-timers(cy.clock() 的底层),他加盟直接影响 packages/driver 的 Command Queue + 自动重试架构的设计语言。「测试框架的 API 不应是 Promise 链式调用」的认知,源自他擅长的「把测试当作与产品同源代码」哲学。

Cypress 是商业化公司项目,前 10 名贡献者中 4 个是 bot——意味着「人」做架构与产品,「机器」做合规与依赖。这种分工既反映 12 年规模化的工程纪律,也说明任何想复制 Cypress 路径的团队必须先有真正的商业现金流撑住全职团队。

问题判断

2014 年的浏览器自动化被 Selenium/WebDriver 协议垄断。两个根本性缺陷:

  1. 命令往返延迟:所有测试指令经 HTTP/RESTful 经 hub/node/grid 三层中转,~10-50ms 延迟是常态,截图+断言基本是异步地狱;
  2. 无法做到「测试代码与 AUT 共享状态」:时间旅行、可暂停调试、断言自动重试等待 DOM 稳定——这些体验级能力,要等「同源同栈」前提才能实现。

Brian 与 Gleb 看清:这不是工具功能问题,是协议模型问题。要解决体验级痛点,就要撕掉 WebDriver 协议,把 driver 拉进浏览器内。

解法哲学

Cypress 选择了三件事,明确不选另三件事:

选择不选
同源执行(测试在 AUT 同一 JS 上下文)远程 WebDriver 协议(Selenium 路线)
JS/TS only(与产品同语言生态)多语言绑定(Playwright 路线)
可视化 Test Runner(时间旅行 + DOM 快照)纯命令行 + 后置 trace
MIT 核心 + SaaS 增值单一开源/单一商业
自动重试 + retry-ability 作为一等公民手工 wait() + poll()
Component + E2E 双测试类型只做 E2E

不做的清单里最有信息量:故意不取悦 Selenium 既有用户——多语言支持就不是 Cypress 的菜,因为只有同语言生态才能驱动「测试代码与产品代码同等地位」的核心承诺。

战略意图

非常清晰:

  1. 2014-2017:完成核框架 + Test Runner + Cypress Dashboard,1.0 GA(2017-10)拿下早期口碑;
  2. 2019-2020:资本进入 + 商业化加速,Cypress Cloud 把 Test Replay 锁到云端,开源版本保持完全可用但「少了云端 AI 分析」;
  3. 2021-2023:Component Testing GA,切入单元/组件测试市场,与 Jest/Vitest 抢蛋糕;
  4. 2024-2026:补 7 年欠账——WebKit(跨浏览器)/ UI Coverage / Accessibility GA / Cloud MCP(AI agent 接入测试结果)/ cy.prompt(自然语言生成测试);Electron 在 v16 弃用,与 Playwright 在「用真实浏览器」上趋同,但 AI agent 化走在更前面。

MIT 核心 + Cypress Cloud 付费 + Enterprise 销售 三级火箭。AI 编程助手(Claude/Copilot)需要查询测试结果(因为它们会主动生成测试),这让 Cloud MCP 成为 2026 年最稀缺的需求——Cypress 押对了赛道。

核心价值提炼

创新之处

① 同源内执行 + 自动重试断言(新颖度 4/5,实用性 5/5,可迁移性 5/5)

  • 把 driver 拉进浏览器同源栈,让「断言失败不是错误、是信号」成为契约;
  • packages/driver/src/cypress/command_queue.ts + assertions.ts 的双阶段(verify vs display)机制是核心魔法;
  • 不依赖任何运行时框架,直接用 JS event loop 调起 retry。

② v8 Snapshot + Packherd 把 Electron 冷启动压到 200-400ms(新颖度 5/5,实用性 4/5,可迁移性 4/5)

  • 用 Google 内部的 v8 snapshot 思路,但加上了 Snapshot Doctor 三档分类法(healthy 3035 / deferred 834 / norewrite 83 modules),解决了 new Error() 等全局敏感 segfault;
  • 跨 OS 各需一份 snapshot metadata,三平台 × 3K+ modules 的元数据是「启动快的成本」;
  • 任何「想给单进程 Node 工具提启动速度」的工程都能借鉴。

③ cy.intercept 中间件链覆盖全流量代理(新颖度 3/5,实用性 5/5,可迁移性 4/5)

  • Node 服务 + Express 风格 middleware 链 + pre/post route matching;
  • 覆盖 XHR、fetch、Service Worker、preflight CORS、<img>/<script>/<link>——这是其他框架做不到的;
  • 加中间件只需 attach hook,主链逻辑不变。

④ Spec Bridge + postMessage 实现跨 origin 通信(新颖度 4/5,实用性 3/5,可迁移性 3/5)

  • 跨 origin 场景下,主 driver 通过 sibling iframe + structured clone + postMessage 与 secondary driver 串行通信;
  • 比 WebDriver BiDi 早几年实现跨 origin 子集。

⑤ 跨协议自动化抽象 Automation Valves(新颖度 4/5,实用性 4/5,可迁移性 4/5)

  • 统一抽象 automationValve<T>(message, fn) + 5 个钩子(onPush/onBeforeRequest/onRequest/onResponse/onAfterResponse);
  • 加新浏览器协议只需写 adapter,主类不变;
  • AutomationNotImplemented fallback 让 n×m 复杂度降为 n+m。

可复用的模式与技巧

模式 1:Query × Action × Assertion 三分类命令队列 任何 UI 自动化工具都可以引入——测试命令分两类:Query(纯函数、同步、可重试)/ Action(副作用、async);断言不在命令链里立即执行,而是被「upcoming assertions」机制延后到下一次 tick;用 overrideAssert(fn)(verifying=true) 区分「显示用错误」与「重试用错误」。截图回归、Lighthouse-audit、契约测试都可以借鉴。

模式 2:跨多版本/多实现的 Adapter Registry + Middleware Hook 跨协议时强烈推荐:顶层类暴露统一入口;每个 adapter 实现 middleware 子集,缺失实现时自动 fallback 到 socket 询问;加新协议只需写 adapter,不改主类。SDK 包、Linter、LLM router 都可以借鉴。

模式 3:v8 Snapshot 三档分类 + Doctor 迭代 Packherd esbuild 打包 → Snapshot Doctor 分类 healthy/deferred/norewrite → mksnapshot 编译 → runtime binary blob install。任何 Electron 桌面应用可借鉴。用「违反全局状态的违例检测」(globals-strict.js)解决最隐蔽的 mksnapshot segfault。

模式 4:Dogfooding Test Suite 用编译出来的二进制测试自己(system-tests/),不是单测能替代的——driver ↔ server ↔ browser ↔ proxy ↔ chrome 全链路依赖必须被验证。任何「运行时强依赖 OS/浏览器/磁盘」的工具都需要这一层。

模式 5:跨域通信的 Spec Bridge + structured clone + postMessage 比 WebDriver BiDi 更早实现跨 origin 子集。如果你的应用要测多 origin 又不想用 CDP/BiDi 复杂度,可直接借鉴。

关键设计决策

决策 1:测试在浏览器同源上下文,而非远程驱动

  • 问题:WebDriver 协议 ~10-50ms 命令往返,无法做到「测试代码与 AUT 共享同一执行栈」。
  • 方案:packages/proxy/lib/adapters/inject-html.ts 在浏览器启动时通过 parse5-html-rewriting-stream 重写 HTML + recast 重写 JS,把 driver 注入 AUT。
  • Trade-off:获得零延迟状态访问、自动 retry 感知 AUT 的 event loop、可视化 Test Runner;失去跨 origin 原生支持(iframe 9 年未完是根本性税)。
  • 可迁移性:高,但要先决定你的产品是否承担「只能单 origin」税。

决策 2:Command Queue + Assertion Retry——「断言失败不是错误,是信号」

  • 问题:Promise 链下 expect 失败立刻 reject,但 DOM 渲染可能在下一 tick。手工加 cy.wait() 体验糟糕。
  • 方案:verifyUpcomingAssertions() 扫描「命令之后所有 assertion 类型命令」作为一组验证目标;用 overrideAssert 把 chai.assert 临时替换成 verifying=true;Promise.reduce(fns, assertions, [subject]) 串行执行;任意失败时调 cy.retry(onRetry, options) 重试整组,16ms interval 轮询。
  • Trade-off:获得「断言自动重试」一等公民;失去栈深、错误信息需主动合并。
  • 可迁移性:极高,处理异步 UI 状态机的通用工程范式。

决策 3:MIT 核心 + Cypress Cloud 付费墙

  • 问题:开源 E2E 框架难变现。
  • 方案:把 Test Replay / UI Coverage / AI / Cloud MCP 全部锁进 Cloud,OSS 是 DX 高、口碑好;Cloud 是付费墙。
  • Trade-off:获得 14 家福布斯级客户 + 持续商业化;失去开源版竞争力。
  • 可迁移性:测试工具赛道里最成熟的商业模型——同质能力走 OSS,差异化能力走付费。

决策 4:v8 Snapshot Doctor 三档分类

  • 问题:33 个 packages 冷启动慢。
  • 方案:Packherd 打包 + Doctor 分类(healthy 3035 / deferred 834 / norewrite 83)+ globals-strict.js 违例检测 + electron-mksnapshot 编译。
  • Trade-off:获得 200-400ms 冷启动;失去每次改 dep 都得重跑 doctor 的维护成本。
  • 可迁移性:高,任何 Electron 桌面应用受益。

决策 5:用真实浏览器替代 Electron,承认自家 runtime 的局限

  • 问题:Electron 自家 runtime 限制了 Safari/WebKit 支持,与「测真实用户体验」叙事冲突。
  • 方案:v16 弃用 Electron,统一通过 CDP / WebDriver BiDi 走 Chrome / Firefox / WebKit。
  • Trade-off:获得 7 年欠账一次还清;失去 Electron 曾经提供的「自带跨平台一致性」。
  • 可迁移性:反例模式,承认自家 runtime 的局限是商业化成熟标志。

竞品格局与定位

竞品对比矩阵

数据基于 Phase 1 网络分析(2026-07-11 行情)。

维度CypressPlaywright (Microsoft)SeleniumWebDriverIOTestCafe
架构浏览器内运行进程外 driver / CDP-BiDi远程 WebDriverSelenium 协议现代封装代理注入 / 无 WebDriver
语言JS/TS onlyJS/TS / Python / C# / Java多语言JS/TSJS/TS
浏览器Chrome / Edge / Firefox / WebKit(2024+) / Electron(弃用中)Chromium / WebKit / Firefox + 移动 emulator全部 + 旧 IE全主流
多 Tab/Origin有限(需 cy.origin() + bridge)原生 browser contextwindow handleswindow handles有限
录制/codegenCypress Studio + cy.prompt 自然语言 + self-healingplaywright codegen 内置Selenium IDEIDE录制器
Component Test官方支持(React/Vue/Angular/Svelte + Webpack/Vite)官方(@playwright/experimental-ct)无无弱
等待/重试内置 auto-retry-abilityauto-wait手动 / 显式 wait手动内置
DX可视化 Test Runner + 时间旅行(同一个浏览器内)trace viewer + 视频弱中中
网络拦截cy.intercept 全流量 MITM(最强)page.route(精准但范围窄)无拦截无无
商业化Cypress Cloud(Test Replay / UI Coverage / Cloud MCP / cy.prompt)OSS only(微软靠 Azure 增益)Selenium Grid(社区)无无
AI 集成cy.prompt 自然语言、Cloud MCP 让 AI agent 查测试结果Playwright MCP无无无
启动年2014-20152020200420142016
Stars50.6k~70k~33k~9k~5k

差异化护城河

① 「在同一个浏览器里」体验级护城河

  • 测试代码与 AUT 共享 JS event loop:快照、暂停、自动重试——这是 WebDriver 协议模型永远做不到的;
  • Cypress Studio + 时间旅行依然是最易入门 UI;
  • 迁移成本:用户用惯 Cypress 的 Test Runner 后切 Playwright,会怀念「cy.get(...).click() 后能直接 DOM inspect」。

② Cypress Cloud + AI agent 化护城河

  • Test Replay 是杀手锏——AI agent (Copilot/Claude) 在出错时需要「完整的失败现场回放」,这正是 Cloud 提供的;
  • Cloud MCP 让 AI 编程助手能主动查询测试结果,自愈选择器是当前的差异化方向;
  • Playwright Trace 是 OSS 视频,但缺乏 UI Coverage、Accessibility 评分这种「质量门禁」配套。

③ Component Testing 完备度护城河

  • React/Vue/Angular/Svelte 四个框架独立 adapter + Vite/Webpack 双打包器——是从零快速接入的关键资产;
  • Playwright 的 @playwright/experimental-ct 是实验级别,落后 2-3 年。

竞争风险

  • 被 Playwright 取代的风险点:

    • 多语言后端(Python 后端服务用 Cypress 必须 Node 双栈);
    • 原生跨 origin 需求强的应用(iframe 仍受 9 年折磨);
    • Service Worker + Module Federation 主导的现代 SPA(Playwright 的 auto-wait 比 Cypress 的 retry 更适配这种场景)。
  • 被 Cypress Cloud 自身拖累的风险:

    • OSS 版缺 AI/录屏,用户越来越被引流到 Cloud tier,AI agent 时代这个趋势会加速;
    • 如果 Cloud 涨价或商业策略调整,会失去一批用户对「Cloud 锁定」的警惕(参考 MongoDB → SSPL 事件)。

生态定位

Cypress 不是 Selenium 的替代品——它开辟了「同源体验派」的赛道,并证明这条赛道能孕育 50k 星 + 500+ Fortune 客户 + 完整商业生态。

在「AI 编程助手需要测试结果回放 + 自动生成测试代码」的 2026 年新需求下,Cypress 押对了 Cloud MCP 与 cy.prompt。这是 12 年路线赌注的延伸兑现。

整个测试工具赛道格局:

阵营代表用户群
同源体验派CypressJS/TS 项目,DX 优先,Enterprise 付费
覆盖广度派Playwright多语言,多浏览器真实还原,OSS 信仰
协议成熟派SeleniumLegacy 应用,多语言后端,企业网格
长尾跟随者WebDriverIO / TestCafe小众需求

Cypress 与 Playwright 将在未来 3-5 年决定这个赛道的天花板。

套利机会分析

  • 信息差:Cypress 与 Playwright 在企业级决策中仍被 30%+ 公司误选为「差不多」——了解二者的架构税(iframe vs 跨 language 覆盖)能让自己的项目选型更精准。模板:自愈选择器 + Cloud MCP + 多语言测试报告这种组合套件是 2026 年新热点。
  • 技术借鉴:
    • 「Command Queue + Assertion Retry」三分类机制可被任何带 UI 自动重试需求的工具(截图回归、Lighthouse 风格 audit)借鉴;
    • 「v8 Snapshot Doctor」分类法可被任何 Electron / Node 桌面应用借鉴,把冷启动从秒级压到 200-400ms;
    • 「跨协议 Adapter Registry + Middleware Hook」是任何「跨多版本/多实现」工具的范式(SDK 路由、LLM router)。
  • 生态位:Cypress 占据「JS/TS 单语言项目 + Dashboard 体验 + Enterprise 付费」三位一体生态位,且 2024-2026 加了 AI agent 接入这一新需求。这是难以复制的位置。
  • 趋势判断:
    • 增长:AI agent 编程(如 Claude Code / Copilot Agent)会主动触发测试 + 调 Cypress Cloud MCP 查结果——Cypress 的 Cloud 是「AI 时代的测试结果 API」先发者;
    • 挑战:Playwright 的「微软单一 vendor + OSS 信仰」对 OSS 偏好开发者是吸力;
    • 后发优势:v16 Electron 弃用 + WebDriver BiDi + Cloud MCP,让 Cypress 在「用真实浏览器 + AI agent 接入」两个维度同时做到「不晚于 Playwright」。

风险与不足

① iframe 跨域是范式税,永不消失

  • #136 自 2016 起 477 comments 仍 Open Epic;
  • 这是「同源执行」架构不可还原的成本——任何选这条路的产品都必须计算这个税;
  • 跨 origin 访问要靠 cy.origin() 加 Bridge iframe,体验不如 Playwright 原生 browser context。

② Open Issues 1,035 高企,社区治理压力

  • 一半是支持工单(与 SaaS 化分发有关),但也增加 PR 处理排队风险;
  • 69 个 Open PRs 表明合并节奏健康,但社区贡献者面临高门槛(理解 33 packages 内部契约)。

③ 33 packages 内部隐式契约膨胀

  • V8 Snapshot Doctor 必须保守分类(83 个 norewrite 是优化阻力);
  • 自动依赖升级(Renovate 769 commits)+ 周更 = 每个版本都潜在破坏内部契约;
  • 包间契约测试覆盖是关键基础,目前由 system-tests/ + 6,972 commits 项目测试兜底。

④ Bluebird 遗留

  • 部分代码仍依赖 Bluebird(因性能原因),迁移到原生 promise 不彻底。

⑤ 自动化钩子 debug 透明度

  • automationValve 的 NotImplemented fallback 在生产中需要 verbose DEBUG 才能看出走了哪条链路,影响开发者排查效率。

⑥ 商业化长期风险

  • 「OSS 是诱饵、Cloud 才是核心」模式下,AI agent 化加深 OSS → Cloud 引流;
  • 如果定价策略或 Cloud 功能受阻,可能出现 MongoDB → SSPL 事件式反弹。

底部代码成熟度评级:8.5/10

  • 超 12 年龄 OSS 项目中位水准之上;
  • 商业化压力下的工程纪律性(5 OS × 5 浏览器 × 3 协议自动化矩阵)出色;
  • 最大不足不是 bug 数量,而是范式选择导致的不可还原成本。

行动建议

  • 如果你要用它:

    • JS/TS 项目 + 重视 DX + 需要 AI 录制 + 企业级 Dashboard → Cypress 是首选;
    • 多语言后端 / 原生跨 origin / Service Worker 重的应用 → 选 Playwright;
    • Legacy + 旧 IE + 多语言绑定 → Selenium 仍是必须品;
    • 不要盲目相信「Cypress vs Playwright」销售话术,先列出你的 3 个最痛的需求维度(DX vs 跨域 vs 多语言)再选型。
  • 如果你要学它:

    • 必读模块:
      1. packages/driver/src/cypress/command_queue.ts —— Command Queue + 断言自动重试的「哥德尔机」;
      2. packages/driver/src/cy/assertions.ts —— verifyUpcomingAssertions 双阶段机制;
      3. packages/proxy/lib/adapters/inject-html.ts —— 浏览器内 driver 注入;
      4. packages/server/lib/automation/automation.ts —— 跨协议 Adapter 抽象;
      5. tooling/v8-snapshot/src/doctor/snapshot-doctor.ts —— Snapshot 三档分类法;
      6. tooling/v8-snapshot/AGENTS.md —— 全套启动加速叙事;
    • 必看文档:
      • packages/driver/cross-origin-testing.md —— 跨 origin 限制的诚实说明;
      • AGENTS.md —— 「Prefer none comment; Explain the why」注释哲学,是 Python 之禅级别的成熟度。
  • 如果你要 fork 它:可改进的方向

    • 缩减 monorepo 复杂度:33 个 packages 对小团队过重,考虑合并少数 packages(但需评估自动依赖升级成本);
    • iframe 范式税:如果你的应用 domain 不需要跨 origin,可以 fork 一个「放弃 iframe 支持的简化版」——少 9 年工程债;
    • AI agent 集成:Cypress Cloud MCP 是 2026 年新护城河,fork 出来做开源版 Cloud 是潜在蓝海,但工程量极大;
    • 去掉 Electron 包袱:v16 已弃用,但历史包袱(packages/electron、app/js)还在——fork 一个「纯 Node 服务端」的版本可能对 CI 用户更友好。

知识入口

资源链接
DeepWikihttps://deepwiki.com/cypress-io/cypress — 已收录,含完整 monorepo 架构图
Zread.ai未收录 / 403 拒绝(可能不支持企业账号)
官方文档https://docs.cypress.io — 工业级文档,与仓库同源
官方博客https://www.cypress.io/blog — 2026 年密集发文(Cloud MCP GA、Electron 弃用、cy.prompt 转正)
在线 DemoCypress Cloud Test Replay — 失败现场回放
关键论文 / 演讲Gleb Bahmutov 的 sinonjs/fake-timers 与 Cypress cy.clock() 哲学一致;架构决策无具体论文,依赖源代码注释

编辑备注:本文基于 Phase 1/2/3 三阶段分析(2026-07-11 数据快照)自动组装。最终数据「Open Issues 1,035」「截至仓库 v15.18.1」是当下快照,建议每 6 个月重新扫描一次 IFRAME-EPIC 状态(#136)以判断范式税是否有新进展。

相关报告