Skip to content

feat(plugin_release): 新增 sync——「源码即生产」下真正的发布动作 - #43

Merged
zaurakworks merged 1 commit into
mainfrom
plugin-release-sync
Aug 15, 2026
Merged

zaurakworks merged 1 commit into
mainfrom
plugin-release-sync

Conversation

@zaurakworks

Copy link
Copy Markdown
Owner

背景

负责人 2026-08-15 拍板:接受「源码即生产」,生产检出由一条手动命令更新。

否掉了会话启动自动 pull——永远最新的代价是行为在你不知情时改变(合并了一个有问题的 PR,下一个会话立刻吃到),且与入口「不建设轮询与自动化」的克制取向相冲。

为什么 sync 才是发布动作

运行端实时读生产检出,所以 git pull 落地的那一刻新 Session 就读到新正文。安装只是让 plugin list 的版本账目不说谎。

四步:

步 做什么
1 生产检出必须干净且在 main。否则直接拒绝,并指向 agent-plugins-work/<分支> 的 worktree。这是第 2 层,不是提醒。
2 fetch + merge --ff-only,报告 HEAD 变化
3 报告本次生效的行为变化:只看 plugins/ 下的差异,逐插件列出版本变化与改动的正文文件
4 刷新缓存账目并指纹验收;账目对不上即报错——行为已按新正文生效,但账目在说谎

第 3 步是重点:它回答的不是「将会安装什么」,而是新 Session 立刻会读到什么差异。

默认演练——先看清这次会生效什么,再决定要不要落地:

$ python tools/plugin_release/plugin_release.py sync
[1/4] 生产检出前置
      C:\Users\Morni\workspace\agent-plugins|main|干净
[2/4] 演练:e5fd129 → e5fd129
      (无 plugins/ 变化)
      加 --apply 才真正拉取。

拒绝路径

生产检出停在 `xxx`,不是 main。开发请用 agent-plugins-work/<分支> 的 worktree;
生产检出只做快进。

配套的制度正文与选型面见 agent-plugins PR #5。

35 项测试通过。

负责人 2026-08-15 拍板:接受「源码即生产」,生产检出由一条手动命令更新,不做
会话启动自动 pull(永远最新的代价是行为在你不知情时改变,且与入口「不建设轮询
与自动化」的克制取向相冲)。

运行端实时读生产检出,因此 git pull 落地的那一刻新 Session 就读到新正文——安装
只是让 plugin list 的版本账目不说谎。sync 四步:

1. 前置:生产检出必须干净且在 main。停在别的分支或有未提交改动直接拒绝,并指向
   agent-plugins-work/<分支> 的 worktree。这是第 2 层,不是提醒。
2. git fetch + merge --ff-only,报告 HEAD 变化。
3. 报告本次生效的行为变化:只看 plugins/ 下的差异,逐插件列出版本变化与改动的
   正文文件。这不是「将会安装什么」,而是新 Session 立刻读到的差异。
4. 刷新缓存账目并做指纹验收;账目对不上即报错——行为已按新正文生效,但账目在
   说谎。

默认演练:先看清这次会生效什么,再决定要不要落地。生效时机因此可控。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
@zaurakworks
zaurakworks merged commit 8cdbf18 into main Aug 15, 2026
1 check passed
@zaurakworks
zaurakworks deleted the plugin-release-sync branch August 15, 2026 09:48
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.

1 participant