# 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)。

## R4 [completed]

修复 [UniDesk #1933](https://github.com/pikasTech/unidesk/issues/1933) 暴露的 Gitea mirror 默认只读 plan 回归：恢复 repository-scoped targetRepos 计算，保持 mutation authority 不变，补充最小回归验证并由独立 Artificer PR 交付，完成任务后将详细报告写入[任务报告](./details/github-gitea-durable-source-authority/R4_Task_Report.md)。
