## 触发 此 PR 触发多项维护者确认门: - **product**: 命中 UI 路径 (apps/mobile/metro.config.js, apps/mobile/src/notifications/pushRegistrationModel.ts) - **security**: 安全边界内容变更 (.github/workflows/ci.yml);危险写法 install-hook;新增第三方依赖 typescript / vitest / @types/node - **rules**: 改到规则文档 (AGENTS.md, docs/dev-rules/* 等多份) - **pluginBase**: 改到插件基座 (apps/desktop/src/shared/ghost.ts) - **arch**: 核心路径改动 15009 行 + refactor 类型 + 超大型 diff (16260 行) ## PR 概要 - **标题**: refactor(protocol): 本地化跨端协议包 - **链接**: https://github.com/makecindy/cindy/pull/2373 - **作者**: xd-bobo(非维护者) - **规模**: 16260 行 diff,涉及 82 个文件 ## 确认方式 维护者请直接在 PR 上 **Approve**(认可改动方向)或 **Request Changes**(需要修改后重新 Approve)。鉴于改动范围大且涉及安全/插件基座/规则文档,建议多维护者交叉 review。 --- 关联 PR:#2373(作者 @xd-bobo);本 issue 由 review-pr 流程自动创建,用于先讨论该 PR 涉及的产品 / UI 变更,维护者确认后 PR 会恢复推进。
Activity
dash-s-cindy commentedon Aug 10, 2026
判断
让客户端无需初始化 submodule 即可独立 clone、install、build 和 test,开发体验价值明确。当前改动同时把跨端协议从“客户端与服务端共享同一权威源码”改为“两仓分别维护实现”,因此属于协议治理与发布架构变更,而不只是源码本地化;建议暂不 Approve,先 Request Changes 补齐架构决策和跨仓兼容证据。
进一步检查发现,本 Issue 中的 product/UI 与部分 security 命中主要来自路径和关键词规则,并不对应实际产品行为变化:
apps/mobile/metro.config.js只是把@cindy/device-link-protocol的解析目标从cindy-protocol/packages/...改到本仓packages/...;apps/mobile/src/notifications/pushRegistrationModel.ts只把契约注释指向本仓协议包,没有修改推送注册、深链解析或 UI;apps/desktop/src/shared/ghost.ts主要改为从本地@cindy/plugin-protocol取常量,未看到插件批准状态、指纹、安装布局、权限或包格式的既定语义调整;dco:install-hook及其安装脚本在当前 main 已存在,本 PR 没有新增自动执行 hook 的安装路径;typescript、vitest、@types/node用于新增本地协议 workspace 的类型检查和测试,属于开发依赖。现有证据没有显示它们进入产品运行时或获得新的权限。真正需要维护者决策的是:是否正式放弃当前“共享协议仓是权威源”的架构,以及改成双份实现后如何持续阻止 wire、parser 和 validator 漂移。
行动
先做明确的架构裁决,再决定是否 Approve。 当前 main 的
docs/dev-rules/protocol-and-submodules.md明确规定:cindy-protocol是存量 wire protocol 的权威来源;refactor(protocol): 本地化跨端协议包 #2373 删除
.gitmodules,将上述规则替换为“两仓本地协议实现”,这是对现行权威规则的反转。需要协议、服务端和插件基座维护者明确认可该方向,不能仅凭机械迁移和单仓测试推定已获得产品/架构意图。补充可复核的迁移等价证据。 建议在 PR 中提供:
.cindy包格式的回归结果;PR 作者报告
pnpm install --frozen-lockfile、全量单测、Desktop/Mobile typecheck 和三个协议包构建通过,这能证明当前客户端单仓闭包,但不足以单独证明双仓实现长期等价。补齐干净环境和发布闭包验证。 至少应覆盖:
pnpm install --frozen-lockfile;pnpm test:unit;packages/device-link-protocol确实被上传并可解析;给出在途工作的迁移与合并顺序。 仓库中仍有工作直接以
cindy-protocolPR、gitlink 或发布门禁为前置。合并本 PR 前,应列出受影响 PR,说明它们是先迁移、重基,还是继续沿用旧协议仓;否则新规则落地后会出现两套开发流程并存。降低评审耦合。 当前 PR 最新元数据显示为 89 个文件、15,115 additions / 1,145 deletions。建议至少按以下边界拆分或提供可独立审阅的 commit:
这样维护者可以先核对“内容是否等价”,再单独审查“是否接受新的治理模型”,避免超大 diff 掩盖架构裁决。
风险边界
.github/workflows/ci.yml中对 submodule 来源、回退/分叉和已发布状态的校验,同时删除check-submodule-forward。在彻底移除 submodule 后,这些具体检查确实不再适用;但新方案尚未提供同等强度的跨仓漂移门禁。建议的验收条件
满足以下条件后再考虑 Approve:
相关记录
cindy-protocol静默回退/分叉的 CI 约束,是当前共享权威模型的另一项直接保障。cindy-protocol的安全协议 PR 和 rollout 机制为前置,并明确旧客户端 fail-open 风险;说明至少一项安全相关在途工作尚未切换到“两仓本地实现”模型。MagicLizi commentedon Aug 11, 2026
关联 PR #2373 已合并(https://github.com/makecindy/cindy/pull/2373),这次产品讨论的结论已随 PR 落地,自动关闭本 issue。后续还有想继续聊的,直接 reopen 或另开 issue 都行。