Part of #983.
Context
reviewbot runs as a LIVE Cloudflare Worker under bot identity reviewwed[bot], installed on gittensory + awesome-claude + metagraphed ALONGSIDE the gittensory App. Convergence requires ONE GitHub App (gittensory's). The old per-agent secrets must be mapped in and the webhook secret swapped ATOMICALLY — if the swap is non-atomic, every webhook 401s. The single-writer invariant (only one App writes per repo) is operational, not code-enforced; this issue retires reviewwed[bot] as the writer identity (the earlier agent-rename migration minimized 11 old comments — same pattern).
Deliverables
Acceptance criteria
- All 3 repos are served by the single gittensory App with all old secrets mapped in.
- The webhook-secret swap is atomic with zero observed 401s; signature verification passes on the new secret before the old is retired.
reviewwed[bot] no longer writes; the single-writer invariant holds per repo.
Notes
Part of #983.
Context
reviewbot runs as a LIVE Cloudflare Worker under bot identity
reviewwed[bot], installed on gittensory + awesome-claude + metagraphed ALONGSIDE the gittensory App. Convergence requires ONE GitHub App (gittensory's). The old per-agent secrets must be mapped in and the webhook secret swapped ATOMICALLY — if the swap is non-atomic, every webhook 401s. The single-writer invariant (only one App writes per repo) is operational, not code-enforced; this issue retiresreviewwed[bot]as the writer identity (the earlier agent-rename migration minimized 11 old comments — same pattern).Deliverables
reviewwed[bot]as the writer identity (do NOT yet delete the Worker — that is feat(github-app): add command-specific @gittensory responses #18); ensure exactly one App writes per repo.Acceptance criteria
reviewwed[bot]no longer writes; the single-writer invariant holds per repo.Notes