Skip to content

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

Merged
GaoWeiLiuXD merged 15 commits into
makecindy:mainfrom
GaoWeiLiuXD:feature/plugin-manifest-v3-official
Sep 1, 2026
Merged

feat(manifest): adopt v3 plugin contract#96
GaoWeiLiuXD merged 15 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 契约升级为兼容 v2/v3 的固定快照,并同步调整发布门禁与双语开发文档。

  • v3 使用顶层字段声明能力,要求稳定版 minCindyVersion,同时保留未改动的 legacy v2 插件
  • CI 基于检出的 PR merge commit 计算真实基线,并对插件包改动要求生产版 Cindy 实机验证声明
  • 更新校验命令、迁移参考、本地化说明及仓库审查策略

Confidence Score: 5/5

在仍需维护者人工审核这些敏感契约和工作流变更的前提下,本次跟进审查未发现阻塞合并的故障。

当前代码保留 ios-simulator 的 v2 清单及原有 skillios-simulator 声明,先前讨论的能力删除并不存在;缺少通用静态能力等价比较也已在对应线程中作为明确的流程边界接受,因此没有阻塞故障仍然挂起。

Important Files Changed

Filename Overview
.github/workflows/pr-verify.yml 改为从检出的 PR merge commit 获取比较基线,并为插件包改动增加生产版 Cindy 验证声明门禁。
.tests/plugin-contract.test.mjs 扩展发布契约测试以兼容 legacy v2、校验 Manifest v3,并覆盖 merge-base 变更检测场景。
.tests/contracts/plugin-manifest.dae1c66.mjs 更新固定 Manifest 校验器快照,加入 v3 顶层能力、mainView、setup 及未知字段保留支持。
scripts/validate-plugin-manifest.mjs 更新本地 Manifest 校验入口以使用新的固定契约。
.greptile/rules.md 将审查规则与 v3 能力模型、生产版实机验证要求及 legacy v2 兼容边界对齐。
docs/plugin-authoring.md 补充英文版 Manifest v3 插件编写、迁移、调用和验收指南。
docs/plugin-authoring.zh-CN.md 补充中文版 Manifest v3 插件编写、迁移、调用和验收指南。

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart LR
  PR[PR merge commit] --> Base[HEAD first parent]
  PR --> Head[HEAD second parent / PR head]
  Base --> Diff[Detect changed package files]
  Head --> Diff
  Diff --> Changed{Plugin package changed?}
  Changed -->|No| Contract[Validate all v2/v3 manifests]
  Changed -->|Yes| V3[Require Manifest v3 and version bump]
  V3 --> Attestation[Require production Cindy verification attestation]
  Contract --> Result[Publish-contract result]
  Attestation --> Result
Loading

Reviews (12): Last reviewed commit: "docs: 避免递归打包工作目录" | 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;完成前请勿合并。

@chatgpt-codex-connector

chatgpt-codex-connector Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codex Review Summary

This comment shows the latest Codex review activity on this pull request.

Review Status Commit Review trigger
📝 Code Review Completed 2026-09-01T03:02:25.135384Z a102fc5 New commits
ℹ️ 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" or "@codex security review".

Codex reacts with 👀 while any review is running, comments if it has suggestions, and reacts with 👍 once all reviews finish with no findings.

@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: b65c6e4612

ℹ️ 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 README.md 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: a102fc59f7

ℹ️ 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 README.md
@GaoWeiLiuXD
GaoWeiLiuXD merged commit 9ec76b1 into makecindy:main Sep 1, 2026
4 checks passed
@GaoWeiLiuXD
GaoWeiLiuXD deleted the feature/plugin-manifest-v3-official branch September 1, 2026 03:21
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