# GitHub 到 Gitea 持久源码权威收敛 本任务修复 NC01 的 GitHub webhook、Gitea controlled mirror 与 immutable snapshot 自动收敛链。来源与边界: - [UniDesk #1760](https://github.com/pikasTech/unidesk/issues/1760) - [UniDesk #1755](https://github.com/pikasTech/unidesk/issues/1755) - [HWLAB #2492](https://github.com/pikasTech/HWLAB/pull/2492) 唯一正式触发是 GitHub PR merge;本任务不得执行人工 mirror sync/flush、直接 Gitea push、webhook-test、人工 PipelineRun、branch-follower 或运行面 patch。 ## R1 [in_progress] 在 [UniDesk #1760](https://github.com/pikasTech/unidesk/issues/1760) 下恢复 [UniDesk #1755](https://github.com/pikasTech/unidesk/issues/1755) 规定的 PR merge 自动交付,并覆盖 [HWLAB #2492](https://github.com/pikasTech/HWLAB/pull/2492) 暴露的 502/stale authority,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R1_Task_Report.md)。 ### R1.1 [completed] 调查 [UniDesk #1760](https://github.com/pikasTech/unidesk/issues/1760) 的 502、旧成功覆盖、ref observer 与 repo 隔离根因,冻结 delivery/head/ref 真值合同,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R1.1_Task_Report.md)。 ### R1.2 [completed] 由 YAML 声明 webhook ingress 与 bridge 有界 retry,按 deliveryId/repo/after 幂等排队并以 atomic branch+snapshot push 收敛,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R1.2_Task_Report.md)。 ### R1.3 [completed] 修正 mirror/webhook status:按 GitHub head 精确选择 snapshot,MATCH=false 必须 STALE=true,并移除全部 REPAIR/手工补偿 hint,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R1.3_Task_Report.md)。 ### R1.4 [in_progress] 覆盖重复 delivery、跨 repo、部分 ref 已存在、atomic failure、retry exhaustion 与 truthful status,提交 non-draft PR/preflight;运行面验收只由修复 PR merge 后新事件完成,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R1.4_Task_Report.md)。 #### R1.4.1 [in_progress] 继续解决 [UniDesk #1760](https://github.com/pikasTech/unidesk/issues/1760):修复 GitHub webhook delivery 的逐笔事实绑定,禁止把 selected GUID 与其他 delivery 的 202 拼接;由 owning YAML 选出的单写者自动 reconcile target-scoped hook topology,并以现有 durable-inbox PVC 上独立 WAL 对目标分支 502/503/504 delivery 做有界、幂等、可审计的自动 redelivery,直到 source committed 或 terminal exhausted;只用真实 PR merge 自动事件验收,禁止人工 redelivery、sync、伪 push、PipelineRun 或运行面 patch,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R1.4.1_Task_Report.md)。 ## R2 [completed] 跟踪 [UniDesk #1784](https://github.com/pikasTech/unidesk/issues/1784) 暴露的 managed mirror repository materialization 根因;本轮只完成架构风险分类,不修改 renderer/controller/reconcile authority,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R2_Task_Report.md)。 ### R2.1 [completed] 依据 [UniDesk #1784](https://github.com/pikasTech/unidesk/issues/1784) 的只读审计,确认修复需要 owning YAML 到 managed mirror renderer/controller/automatic reconcile 的架构变更;按用户边界保持 issue open 并跳过,禁止人工 mirror、手工 CI/CD 补跑或 GitHub fallback,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R2.1_Task_Report.md)。 ## R3 [in_progress] 解决 [UniDesk #1784](https://github.com/pikasTech/unidesk/issues/1784):建立 owning YAML → managed repository/cache/ref 的单一持久源码 authority,让 AgentRun resource bundle 依赖自动物化、恢复和重试;禁止 direct GitHub fallback、人工 mirror 或第二 source authority,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R3_Task_Report.md)。 ### R3.1 [in_progress] 冻结 [#1784](https://github.com/pikasTech/unidesk/issues/1784) 与 [AgentRun #294](https://github.com/pikasTech/agentrun/issues/294) 的 repositoryDependency 合同:明确 owning YAML schema、repository/ref owner、readiness、生命周期、失败分类和迁移边界;desired 只来自 YAML,不从运行面反解,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R3.1_Task_Report.md)。 ### R3.2 依赖 R3.1,在共享 renderer/controller 中实现 repository、cache 与 ref 的幂等物化、durable status、自动 retry/reconcile 和有界可见性;消费者在依赖 ready 前 fail-closed,不新增 repo 专属特例或第二套同步器,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R3.2_Task_Report.md)。 ### R3.3 依赖 R3.2,覆盖仓库缺失、ref 缺失、重复 delivery、controller 重启、retry exhaustion 与恢复测试;只用修复 PR merge 产生的新自动事件验收 resource bundle 获取成功,禁止人工 mirror、sync、flush、trigger 或 direct GitHub 补洞,完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R3.3_Task_Report.md)。