Skip to content

feat(manifest): adopt v3 plugin contract - #96

Open
GaoWeiLiuXD wants to merge 13 commits into
makecindy:mainfrom
GaoWeiLiuXD:feature/plugin-manifest-v3-official
Open

feat(manifest): adopt v3 plugin contract#96
GaoWeiLiuXD wants to merge 13 commits into
makecindy:mainfrom
GaoWeiLiuXD:feature/plugin-manifest-v3-official

Conversation

@GaoWeiLiuXD

@GaoWeiLiuXD GaoWeiLiuXD commented Aug 25, 2026

Copy link
Copy Markdown
Collaborator

改动目的

让开发者可以依据插件仓文档、使用任意 Agent 或开发工具制作可用的 Cindy 插件;将官方仓的 Manifest 契约和验收流程与已合并的客户端、Server 改动对齐,避免重新引入“新增能力必须先改客户端白名单”的限制。

本 PR 改了什么

  • 新插件及实际打包内容发生变化的插件使用 Manifest v3:以顶层字段直接声明能力,不再使用 slots。未改动的 v2 插件继续兼容,不批量迁移。
  • 每个 v3 插件包根据实际依赖声明自己的 minCindyVersion;仓库只校验稳定版 SemVer 格式并排除开发哨兵值 0.0.0,不写死 0.1.61 等统一版本下限。
  • 更新仓内固定的 Manifest 校验器快照,支持 v2/v3、mainViewsetup,不依赖 CI 检出客户端或私有 Server 仓库。
  • 保留未知 v3 顶层字段,不因校验器尚未识别就阻塞发布。声明被保留不等于自动获得权限,实际使用仍由 Host 支持和既有运行时授权决定。
  • 同步中英文开发指南、最小示例、本地校验命令和打包说明。开发流程不依赖 Cindy 或特定 harness;Forge 是可选工具,打包不会默认安装。
  • 补充双语插件编写与迁移参考,并接入 AGENTS、README、贡献指南:列出 v2→v3 能力映射、HTTPS/文件/Node CLI 调用、凭证与版本边界、校验与实机验收的区别。Agent 可据现有代码自行适配,作者无需手工执行迁移;同时纠正“市场摘要是包能力上限”的旧描述。本轮仅文档和解释性注释,没有改动插件包或新增门禁。
  • 插件包有改动时,CI 要求 PR 正文勾选生产版 Cindy 实机验证:安装真实 .cindy 并验证核心功能,验证版本不得低于插件声明的最低版本。仅仓库级文档或 CI 改动不触发此要求;修改 PR 正文会重新触发检查。
  • 修复变更检测范围:两个门禁统一从 GitHub 实际检出的 PR 合并提交获取基线,不使用可能滞后的事件 base SHA,避免把仅 main 新增的插件改动误算进本 PR。补充真实 Git 分叉及事件基线滞后场景的回归测试,同时确保插件自身改动和公共随包文件改动仍触发门禁。

不在本 PR 范围内

  • 不修改现有插件包、版本号、能力声明、工具行为或受众配置,包括 ios-simulator
  • 不修改客户端安装策略、运行时授权、Server 审批或版本下发算法。
  • 不把“保留未知声明”变成“自动授权”,也不新增未知字段拒绝白名单。
  • CI 核验的是人工实机验证声明,不是自动操作生产客户端;CI 通过不能替代实机验收与维护者审核。

相关客户端变更:makecindy/cindy#3434

验证结果

  • 已核对 PR diff:不包含任何现有插件包文件,因此无需插件版本升级或为本 PR 重新安装生产插件包。

  • 本地仓库契约、本地化、provisioning 与发布工作流测试共 16/16 通过

  • 新回归测试覆盖:主分支独有插件改动不触发本 PR 验收;PR 自身插件改动正常触发;公共随包文件改动选中全部插件。

  • 文档检查:104 个相对链接有效;双语 JavaScript 示例与 Manifest 片段校验通过;HTTP 失败处理、CLI 成功/缺失命令和单次工具回包检查通过。上述示例检查不是生产客户端实机验收。

检查清单

  • 已核对改动范围,无凭证、令牌、真实用户数据或无关插件包改动。
  • 本 PR 不修改已发布插件的 minCindyVersion,不批量迁移存量 v2 插件。
  • 每次提交带有 DCO 签署。
  • Production Cindy verification / 生产版 Cindy 验证:本 PR 未修改插件包,该项不适用。

敏感变更

本 PR 涉及 Manifest 校验契约、CI 发布门禁与审查规则,需要维护者人工审核;未扩大任何具体插件的权限。

Signed-off-by: liugaowei <liugaowei@xd.com>
Signed-off-by: liugaowei <liugaowei@xd.com>
@greptile-apps

greptile-apps Bot commented Aug 25, 2026

Copy link
Copy Markdown

Greptile Summary

敏感变更,需要维护者人工 review;本 PR 更新 Manifest v3 契约、固定校验器及发布验收流程,未修改现有插件包。

  • 同时兼容未改动的 Manifest v2 与新建或改包插件使用的 Manifest v3
  • 使用顶层字段表达 v3 能力,并保留未知顶层声明而不自动授权
  • 改用检出合并提交的父节点计算插件变更范围
  • 对实际改动插件包的 PR 强制检查生产版 Cindy 实机验证勾选项
  • 同步中英文开发、迁移、本地化及贡献文档

Confidence Score: 5/5

未发现仍需阻止合并的代码故障,但该 PR 命中 Manifest、发布工作流和审查策略的敏感变更路由,仍需维护者人工审核。

当前 HEAD 保留 ios-simulator 的既有 v2 能力声明,且既有线程所要求的通用静态能力等价门禁已被维护者明确排除;没有阻断性故障仍然存在。

Important Files Changed

Filename Overview
.github/workflows/pr-verify.yml 基于检出合并提交的父节点计算变更范围,并为改动插件包增加生产版 Cindy 验证声明门禁。
.tests/contracts/plugin-manifest.dae1c66.mjs 更新固定 Manifest 校验器快照以支持 v2/v3、顶层能力字段、mainView、setup 及未知 v3 字段保留。
.tests/plugin-contract.test.mjs 扩展插件契约和差异检测测试,未发现与既有跟进线程相关且仍需单独修复的问题。
.tests/publish-workflows.test.mjs 增加真实 Git 分叉及事件基线滞后场景的工作流回归覆盖。
scripts/validate-plugin-manifest.mjs 本地 Manifest 验证入口切换到更新后的固定契约快照。
.greptile/rules.md 更新 Manifest v3、授权跟随执行者、最低客户端版本及发布审查规则。
docs/plugin-authoring.md 补充英文 Manifest v3 插件开发、能力映射、验证与打包指南。
docs/plugin-authoring.zh-CN.md 补充中文 Manifest v3 插件开发、能力映射、验证与打包指南。

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  PR[PR merge checkout] --> Parents[Resolve merge parents]
  Parents --> Diff[Detect changed packaged files]
  Diff -->|Plugin packages changed| V3[Require Manifest v3 contract]
  Diff -->|Plugin packages changed| Attest[Require production Cindy attestation]
  Diff -->|Repository-only changes| Skip[Skip plugin attestation]
  V3 --> Validate[Validate manifests and package constraints]
  Attest --> Validate
  Skip --> Validate
Loading

Reviews (10): Last reviewed commit: "Merge branch 'main' into feature/plugin-..." | Re-trigger Greptile

Comment thread ios-simulator/ghost.json

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 11e61261c7

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread ios-simulator/ghost.json Outdated
Comment thread .github/workflows/pr-verify.yml Outdated
Signed-off-by: liugaowei <liugaowei@xd.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 060db40768

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .tests/plugin-contract.test.mjs Outdated
Signed-off-by: liugaowei <liugaowei@xd.com>
Signed-off-by: liugaowei <liugaowei@xd.com>
@nanaco666

Copy link
Copy Markdown
Collaborator

当前合并门禁未通过(head 8ad0e53

新 PR 已进入巡检,当前状态:

  • Greptile 已对当前 head 复审为 5/5(Last reviewed commit 即当前 head);Repository-wide gates、changed-plugin packaging、DCO 全部 success。
  • 仍有 3 条未解决 review thread(其中 2 条 outdated 但未 resolve,1 条当前有效:.tests/plugin-contract.test.mjs),按仓库规则需全部 resolve(含 outdated thread)。
  • 尚无任何 approving review(当前仅 Greptile COMMENTED / Codex COMMENTED,无 APPROVED)。
  • 该 PR 为跨仓库(fork)PR,且涉及 Manifest v3 契约与 PR 验证 workflow 的敏感变更,需要维护者人工 review。

请处理并 resolve 全部 review thread,并完成人工 review 后正式 Approve;完成前请勿合并。

Signed-off-by: liugaowei <liugaowei@xd.com>
@nanaco666

Copy link
Copy Markdown
Collaborator

当前合并门禁未通过(head be6c3bf

head 已更新到 be6c3bf(上一轮巡检的 head 为 8ad0e53),当前状态:

  • Greptile 已对当前 head 复审为 5/5(Last reviewed commit 即当前 head);Repository-wide gates、changed-plugin packaging、DCO 全部 success。
  • 仍有 3 条未解决 review thread(均为 outdated 但未 resolve:ios-simulator/ghost.json、.github/workflows/pr-verify.yml、.tests/plugin-contract.test.mjs),按仓库规则需全部 resolve(含 outdated thread)。
  • 尚无任何 approving review(当前仅 Greptile/Codex 的 COMMENTED,无 APPROVED)。
  • 该 PR 为跨仓库(fork)PR,且涉及 Manifest v3 契约、CI 门禁与审查策略的敏感变更,需维护者人工 review。

请处理并 resolve 全部 review thread,并完成人工 review 后正式 Approve;完成前请勿合并。

Signed-off-by: liugaowei <liugaowei@xd.com>

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: f67e58a875

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .tests/plugin-contract.test.mjs
@nanaco666

Copy link
Copy Markdown
Collaborator

当前合并门禁未通过(head f67e58a

head 已更新到 f67e58a(上一轮巡检的 head 为 be6c3bf),当前状态:

  • Greptile 已对当前 head 复审为 5/5(Last reviewed commit 即当前 head);Repository-wide gates、changed-plugin packaging、DCO 全部 success。
  • 仍有 4 条未解决 review thread(3 条 outdated 未 resolve:ios-simulator/ghost.json、.github/workflows/pr-verify.yml、.tests/plugin-contract.test.mjs;1 条当前有效:.tests/plugin-contract.test.mjs),按仓库规则需全部 resolve(含 outdated thread)。
  • 尚无任何 approving review(当前仅 Greptile/Codex 的 COMMENTED,无 APPROVED)。
  • 该 PR 为跨仓库(fork)PR,且涉及 Manifest v3 契约、CI 门禁与审查策略的敏感变更,需维护者人工 review。

请处理并 resolve 全部 review thread,并完成人工 review 后正式 Approve;完成前请勿合并。

@chatgpt-codex-connector chatgpt-codex-connector Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

💡 Codex Review

Here are some automated review suggestions for this pull request.

Reviewed commit: 4b55bb5fa6

ℹ️ About Codex in GitHub

Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you

  • Open a pull request for review
  • Mark a draft as ready
  • Comment "@codex review".

If Codex has suggestions, it will comment; otherwise it will react with 👍.

Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".

Comment thread .tests/plugin-contract.test.mjs
Signed-off-by: liugaowei <liugaowei@xd.com>
Comment thread .tests/plugin-contract.test.mjs
@nanaco666

Copy link
Copy Markdown
Collaborator

当前合并门禁未通过(head 28831e1

head 已更新到 28831e1(上一轮巡检的 head 为 f67e58a),当前状态:

  • Greptile 已对当前 head 复审为 5/5(Last reviewed commit 即当前 head);Repository-wide gates、changed-plugin packaging、DCO 全部 success。
  • 全部 review thread 均已 resolved(含 outdated)。
  • 尚无 approving review(reviewDecision 仍为 REVIEW_REQUIRED;当前仅 COMMENTED)。
  • 该 PR 为跨仓库(fork)PR,且涉及 Manifest v3 契约、CI 门禁与审查策略的敏感变更,需维护者人工 review。

请完成人工 review 后正式 Approve;完成前请勿合并。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants