After a protected library staging branch is updated through a GitHub pull request, the control plane must fetch that new head into TreeDX, advance the project library current logical view, rebuild the search index, and mirror the resulting files to the environment R2 bucket without requiring an operator to reason about commits. The reconciliation must be idempotent and must preserve TreeDX-authored discussion history. Acceptance: merge a library PR, observe the TreeDX current view advance to the merged tree, and verify the R2 mirror manifest and file hierarchy converge automatically.
After a protected library staging branch is updated through a GitHub pull request, the control plane must fetch that new head into TreeDX, advance the project library current logical view, rebuild the search index, and mirror the resulting files to the environment R2 bucket without requiring an operator to reason about commits. The reconciliation must be idempotent and must preserve TreeDX-authored discussion history. Acceptance: merge a library PR, observe the TreeDX current view advance to the merged tree, and verify the R2 mirror manifest and file hierarchy converge automatically.