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