Files
pikasTech-unidesk/docs/MDTODO/pr-merge-driven-automatic-delivery.md
T

112 lines
12 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# PR 合并驱动的全自动交付
- 来源:https://github.com/pikasTech/unidesk/issues/1755
- 范围:长期规则、CI/CD skill 与文档合同。
- 边界:不执行任何人工 CI/CD 触发、补跑或运行面修改。
## R1 [completed]
固化 PR 合并驱动的全自动交付与故障修复边界,来源:https://github.com/pikasTech/unidesk/issues/1755,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R1_Task_Report.md)。
### R1.1 [completed]
盘点并收敛会误导人工触发或补跑的长期规则,引用:https://github.com/pikasTech/unidesk/issues/1755,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R1.1_Task_Report.md)。
### R1.2 [completed]
更新 CI/CD reference 与 skill,明确 PR merge 唯一触发及自动链故障修复边界,引用:https://github.com/pikasTech/unidesk/issues/1755,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R1.2_Task_Report.md)。
### R1.3 [completed]
补充轻量文档合同检查,阻止人工交付入口重新成为正式路径,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R1.3_Task_Report.md)。
### R1.4 [completed]
完成静态验证、报告、提交、推送与非草稿 PR,禁止触发或部署 CI/CD,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R1.4_Task_Report.md)。
## R2 [in_progress]
清理 migrated PaC status/help 中会诱导人工补跑的 NEXT、REPAIR 与长期指引漂移;来源:[UniDesk #1764](https://github.com/pikasTech/unidesk/issues/1764),保持 GitHub PR merge 为唯一交付触发,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R2_Task_Report.md)。
### R2.1 [in_progress]
盘点 migrated PaC 的 status/help/Next/REPAIR 与文档、skill 漂移,以 [UniDesk #1764](https://github.com/pikasTech/unidesk/issues/1764) 和 NC01 source 85abda3b 自动发布证据冻结删除边界,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R2.1_Task_Report.md)。
### R2.2
修复 CLI renderer 与定向合同测试:migrated consumer 只提示只读 status/history/debug-step,不输出 apply、closeout、trigger、sync、flush、webhook-test 或人工 PipelineRunlegacy 显式入口保持可发现,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R2.2_Task_Report.md)。
### R2.3
由主代理同步清理长期 reference/skill,合并后只观察新的 GitHub webhook→Gitea mirror/snapshot→PaC→Tekton→GitOps/Argo→runtime 自动事件,并完成 issue/报告收口,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R2.3_Task_Report.md)。
## R3 [completed]
跟踪 [UniDesk #1802](https://github.com/pikasTech/unidesk/issues/1802) 暴露的 AgentRun PaC 成功后 GitOps/Argo revision 持续 stale;本轮只冻结自动链证据与架构边界,不手工补交付,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R3_Task_Report.md)。
### R3.1 [completed]
记录 [AgentRun PR #301](https://github.com/pikasTech/agentrun/pull/301) 自动 Pipeline Succeeded、GitOps result 与 Argo/runtime provenance 未收敛的证据;确认涉及自动 GitOps/provenance 架构后保持 [UniDesk #1802](https://github.com/pikasTech/unidesk/issues/1802) open 并跳过实现,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R3.1_Task_Report.md)。
## R4 [in_progress]
解决 [UniDesk #1802](https://github.com/pikasTech/unidesk/issues/1802) 并对齐 [UniDesk #1769](https://github.com/pikasTech/unidesk/issues/1769):建立 source commit → immutable snapshot → artifact digest → GitOps commit → Argo revision → runtime digest 的单一、不可伪造自动交付 provenanceGitHub PR merge 仍是唯一触发,禁止人工补交付,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4_Task_Report.md)。
### R4.1 [in_progress]
冻结 [#1802](https://github.com/pikasTech/unidesk/issues/1802) / [#1769](https://github.com/pikasTech/unidesk/issues/1769) 的交付合同:定义 admission-owned outer-event provenance、标准 terminal roles/results、父子运行归属、commit/digest 关联和 fail-closed 判定,明确 YAML owner 与 controller 职责,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.1_Task_Report.md)。
#### R4.1.1 [in_progress]
解决 [UniDesk #2039](https://github.com/pikasTech/unidesk/issues/2039):现场确认 PR #1808/#1812 引入的 `ValidatingAdmissionPolicy` 以错误的原子 queue transition 假设拒绝官方 PaC watcher,导致 HWLAB `df925768` 与 AgentRun 自动流水线停在 Pending;以新提交语义回退业务阻断型 admission 围栏,保留 provenance、creator、marker、ServiceAccount 和漂移为结构化 `blocking=false` warning,禁止继续扩展 CEL 围栏、人工 PipelineRun、mirror、trigger、sync、flush 或 runtime patch,并由既有 merge 事件自动恢复及完成原入口验收,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.1.1_Task_Report.md)。
### R4.2
依赖 R4.1,让 YAML-owned pipeline 输出标准 terminal evidence,由单一 controller 自动 reconcile GitOpsArgo/status 必须针对同一 GitOps repository 和 commit graph 验证 exact/descendant,并把 source、artifact、GitOps、revision、runtime digest 形成可审计链,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.2_Task_Report.md)。
### R4.3
依赖 R4.2,覆盖 provenance 缺失、伪造、stale revision、commit graph unavailable 和 runtime digest 不一致;最终只接受修复 PR merge 的新 webhook/PaC 事件自动收敛,禁止 mirror、PipelineRun、sync、flush、trigger、apply、closeout 或 runtime patch,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.3_Task_Report.md)。
### R4.4
记录并后续解决 [UniDesk #1828](https://github.com/pikasTech/unidesk/issues/1828):聚合 cicd status 对 sentinel/platform-infra 在 source、GitOps、Argo/runtime 已对齐时仍误报 pac-gitops-missing/relation unknown;统一专用 control-plane 与聚合器的 source→GitOps revision relation authority 和判定证据,本轮仅登记,不扩入 #1760 自动 delivery 修复,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.4_Task_Report.md)。
### R4.5 [in_progress]
基于 [UniDesk #1802](https://github.com/pikasTech/unidesk/issues/1802) 修复当前 AgentRun NC01 自动交付阻塞:将 GitOps read/write、Argo repoURL 与 delivery provenance 从 legacy git-mirror 收敛到既有 Gitea internal 单一 authority;只做 owning YAML、既有 renderer/定向验证的最小必要修改,禁止人工 mirror、sync、flush、trigger、apply、closeout、PipelineRun 或 runtime patch,也禁止新增合同、租约、安全机制和围栏,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R4.5_Task_Report.md)。
## R5 [in_progress]
解决 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900):修复 NC01 PaC watcher 因 ServiceAccount token 的 node/pod 关系失败而 Pending,恢复 GitHub PR merge 驱动的唯一自动交付链,禁止人工补触发、第二权威或旁路,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5_Task_Report.md)。
### R5.1 [completed]
只读定位 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900) 的唯一根因,核对 watcher Pod、ServiceAccount token、node/pod 关系、owning YAML 与最近控制面变更,不改运行面,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5.1_Task_Report.md)。
### R5.2 [in_progress]
按 [UniDesk #1900](https://github.com/pikasTech/unidesk/issues/1900) 实施最小持久化修复和定向验证,不新增第二交付权威、合同、租约、安全机制或围栏,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5.2_Task_Report.md)。
### R5.3
合并修复 PR 后只观察新的 GitHub webhook→Gitea mirror→PaC→Tekton→GitOps/Argo 自动事件,验证 watcher Ready、TaskRun 创建及 AgentRun/Monitor runtime 收敛,不人工补齐既有 queued run,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R5.3_Task_Report.md)。
## R6 [completed]
执行 [UniDesk #1981](https://github.com/pikasTech/unidesk/issues/1981):固定仓库产品功能 schema 路径为 config/feature-config.schema.jsonCI/CD 只读校验 schema 语法、值匹配和功能到唯一配置变量的一对一关系;缺失、非法、不匹配或重复仅输出 typed warning 并投影到 OTel/status/history/debug-step,必须继续 artifact、GitOps/Argo 和滚动上线,禁止写回、默认值、变量删除、功能关闭、架构切换及其他补救操作,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R6_Task_Report.md)。
### R6.1 [completed]
原 MDTODO R7 依据 [UniDesk #2005](https://github.com/pikasTech/unidesk/issues/2005) 实现 SELFMEDIA CI/CD 单次只读查询:从 owning YAML 解析 selfmedia-nc01,在一次受控 CLI 调用内关联 pikainc/selfmedia GitHub mergedAt、PaC PipelineRun/TaskRun、Argo/runtime health,直接披露 trigger wait、pipeline duration、end-to-end duration 与证据缺口;同步 unidesk-cicd skill 的唯一推荐入口,禁止新增第二状态源或交付 mutation,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R7_Task_Report.md)。最新 master 已占用顶层 R7,本条仅调整索引层级,不改写任务报告身份与 checkpoint 语义。
### R6.2 [completed]
按用户要求将 CI/CD 全局配置一致性、版本、契约和跨 consumer 校验统一为 non-blocking warning:除非用户明确要求阻塞,禁止新增会导致 Pipeline、GitOps、Argo 或 rollout 失败的校验;发现既有阻塞实例时逐例降级为 `blocking=false` warning,同时保留当前选中对象自身的必要输入与安全校验,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R6.2_Task_Report.md)。
## R7 [in_progress]
执行 [UniDesk #2008](https://github.com/pikasTech/unidesk/issues/2008):按 PJ2026-01060106 建立 HWLAB 开发/生产双环境发布;v0.3 固定为 NC01 developmentrelease 固定为 production,两个环境在 source、Pipeline、GitOps、Argo、namespace、public origin、PostgreSQL database/role/Secret/migration ledger 和 Kafka consumer group 上隔离,所有值由 owning YAML 控制,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R7_Task_Report.md)。
### R7.1 [in_progress]
迁移 [UniDesk #2009](https://github.com/pikasTech/unidesk/issues/2009):保持 v0.3 开发 branch/namespace/DB consumer,删除其对 hwlab.pikapython.com 的所有权,选择并 YAML 固化 NC01 公网 IP 的空闲 HTTP 端口和同源 API/health/probe,通过新 PR 和自动链完成原入口验证,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R7.1_Task_Report.md)。
### R7.2 [in_progress]
建立 [UniDesk #2010](https://github.com/pikasTech/unidesk/issues/2010):跟随 release branch 的独立 production PaC/Tekton/GitOps/Argo、namespace、host PostgreSQL database/role/Secret/migration ledger、Kafka consumer group 与 https://hwlab.pikapython.com YAML publicExposurerelease 只从完成 P0 Kafka 纠偏并验证的 v0.3 commit 初始化,完成任务后将详细报告写入[任务报告](./details/pr-merge-driven-automatic-delivery/R7.2_Task_Report.md)。