docs: ADR for MCP allocator, control-plane DB, and incident bridge (#613) #614

Merged
sysadmin merged 1 commits from docs/issue-613-allocator-control-plane-observability-adr into master 2026-07-09 21:10:27 -05:00
Owner

Summary

Adds a canonical ADR resolving architecture overlap among:

  • #613 — control-plane DB (first)
  • #600 — allocator API (second)
  • #612 — Sentry/GlitchTip incident bridge (third)

Core decision: DB coordinates · Gitea records · Sentry/GlitchTip observe · bridge is the only path from observations → Gitea work · allocator assigns only Gitea issues/PRs.

File

  • docs/architecture/mcp-allocator-control-plane-observability-adr.md

Decisions captured

  1. Dependency order #613#600 Add multi-project Sentry/GlitchTip incident bridge with Gitea issue linking and release sync (#612)
  2. Authority boundaries (Gitea / DB / providers / bridge)
  3. Allocator routing rules (atomic assign+lease, RC→author, etc.)
  4. DB topology: Postgres or single allocator daemon for multi-session; SQLite single-writer MVP only
  5. Lease migration: DB primary; comments/files as mirrors
  6. Bridge: creates normal Gitea issues; no raw incident assignment; credential trust boundaries
  7. Single incident_links model (provider-neutral)
  8. Security/redaction and non-goals

Validation

  • markdownlint: not installed
  • python3 -m pytest tests/test_external_mcp_registration_docs.py -q → 10 passed

Next (after merge)

Update #600 / #612 / #613 issue bodies to link this ADR path and restate hard dependencies.

Refs: #600 #612 #613

## Summary Adds a canonical ADR resolving architecture overlap among: - **#613** — control-plane DB (first) - **#600** — allocator API (second) - **#612** — Sentry/GlitchTip incident bridge (third) **Core decision:** DB coordinates · Gitea records · Sentry/GlitchTip observe · bridge is the only path from observations → Gitea work · allocator assigns only Gitea issues/PRs. ### File - `docs/architecture/mcp-allocator-control-plane-observability-adr.md` ### Decisions captured 1. Dependency order #613 → #600 → #612 2. Authority boundaries (Gitea / DB / providers / bridge) 3. Allocator routing rules (atomic assign+lease, RC→author, etc.) 4. DB topology: Postgres or single allocator daemon for multi-session; SQLite single-writer MVP only 5. Lease migration: DB primary; comments/files as mirrors 6. Bridge: creates normal Gitea issues; no raw incident assignment; credential trust boundaries 7. Single `incident_links` model (provider-neutral) 8. Security/redaction and non-goals ### Validation - `markdownlint`: not installed - `python3 -m pytest tests/test_external_mcp_registration_docs.py -q` → 10 passed ### Next (after merge) Update #600 / #612 / #613 issue bodies to link this ADR path and restate hard dependencies. Refs: #600 #612 #613
jcwalker3 added 1 commit 2026-07-09 19:03:57 -05:00
Canonical architecture for #613#600#612: DB coordinates, Gitea
records, Sentry/GlitchTip observe; allocator assigns only Gitea issues/PRs.

Refs: #600 #612 #613
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #614
issue: #613
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 84546-882cef1c37a3
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418
phase: claimed
candidate_head: 4185ee1417
target_branch: master
target_branch_sha: 4f2fd9a8b1
last_activity: 2026-07-10T02:03:33Z
expires_at: 2026-07-10T04:03:33Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #614 issue: #613 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 84546-882cef1c37a3 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418 phase: claimed candidate_head: 4185ee1417ff31c9d8b004010aba711ee004a406 target_branch: master target_branch_sha: 4f2fd9a8b13817afd1fe1937fb6058f235c129bd last_activity: 2026-07-10T02:03:33Z expires_at: 2026-07-10T04:03:33Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #614
issue: #613
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 84546-882cef1c37a3
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418
phase: claimed
candidate_head: 4185ee1417
target_branch: master
target_branch_sha: 4f2fd9a8b1
last_activity: 2026-07-10T02:04:30Z
expires_at: 2026-07-10T04:04:30Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #614 issue: #613 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 84546-882cef1c37a3 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-418 phase: claimed candidate_head: 4185ee1417ff31c9d8b004010aba711ee004a406 target_branch: master target_branch_sha: 4f2fd9a8b13817afd1fe1937fb6058f235c129bd last_activity: 2026-07-10T02:04:30Z expires_at: 2026-07-10T04:04:30Z blocker: none
sysadmin approved these changes 2026-07-09 21:04:42 -05:00
sysadmin left a comment
Owner

Canonical PR State

STATE: APPROVED
WHO_IS_NEXT: merger
NEXT_ACTION: Merge PR #614 with expected_head_sha pinned; then post-merge update #600/#612/#613 to link this ADR path
NEXT_PROMPT:

Merge PR #614 on prgs Scaled-Tech-Consulting/Gitea-Tools using gitea-merger.
Pin expected_head_sha=4185ee1417ff31c9d8b004010aba711ee004a406.
Confirm with MERGE PR 614 only after live recheck of open+mergeable+head.
Do not merge #611 (conflict-blocked).

WHAT_HAPPENED: Independent reviewer sysadmin/prgs-reviewer validated docs-only ADR PR #614 and approved at pinned head.
WHY: Scope is one architecture ADR resolving #613/#600/#612 overlap; decisions are clear, non-goals and trust boundaries are sound; validation passed.
ISSUE: #613 (also refs #600 #612)
HEAD_SHA: 4185ee1417
REVIEW_STATUS: APPROVED
MERGE_READY: yes (mergeable=true; reviewer cannot merge — merger role required)
BLOCKERS: none on this PR. Queue note: #611 is earlier and conflict-blocked (mcp_session_state.py, tests/test_review_drafts.py) — author conflict-fix required; skipped read-only for this review.
VALIDATION: cwd=/Users/jasonwalker/Development/Gitea-Tools/branches/review-418; python3 -m pytest tests/test_external_mcp_registration_docs.py -q → 10 passed. Diff: only docs/architecture/mcp-allocator-control-plane-observability-adr.md (+301). Target master SHA 4f2fd9a8b13817afd1fe1937fb6058f235c129bd; head not already landed.
LAST_UPDATED_BY: sysadmin (prgs-reviewer)

## Canonical PR State STATE: APPROVED WHO_IS_NEXT: merger NEXT_ACTION: Merge PR #614 with expected_head_sha pinned; then post-merge update #600/#612/#613 to link this ADR path NEXT_PROMPT: ```text Merge PR #614 on prgs Scaled-Tech-Consulting/Gitea-Tools using gitea-merger. Pin expected_head_sha=4185ee1417ff31c9d8b004010aba711ee004a406. Confirm with MERGE PR 614 only after live recheck of open+mergeable+head. Do not merge #611 (conflict-blocked). ``` WHAT_HAPPENED: Independent reviewer sysadmin/prgs-reviewer validated docs-only ADR PR #614 and approved at pinned head. WHY: Scope is one architecture ADR resolving #613/#600/#612 overlap; decisions are clear, non-goals and trust boundaries are sound; validation passed. ISSUE: #613 (also refs #600 #612) HEAD_SHA: 4185ee1417ff31c9d8b004010aba711ee004a406 REVIEW_STATUS: APPROVED MERGE_READY: yes (mergeable=true; reviewer cannot merge — merger role required) BLOCKERS: none on this PR. Queue note: #611 is earlier and conflict-blocked (mcp_session_state.py, tests/test_review_drafts.py) — author conflict-fix required; skipped read-only for this review. VALIDATION: cwd=/Users/jasonwalker/Development/Gitea-Tools/branches/review-418; `python3 -m pytest tests/test_external_mcp_registration_docs.py -q` → 10 passed. Diff: only docs/architecture/mcp-allocator-control-plane-observability-adr.md (+301). Target master SHA 4f2fd9a8b13817afd1fe1937fb6058f235c129bd; head not already landed. LAST_UPDATED_BY: sysadmin (prgs-reviewer)
Owner

adopted_at: 2026-07-10T02:10:11Z
adopted_by_identity: sysadmin
adopted_by_profile: prgs-merger
adopted_from_session_id: 84546-882cef1c37a3
adopted_from_profile: prgs-reviewer
adopted_from_reviewer_identity: sysadmin
adopted_from_comment_id: 9144
adoption_reason: merger-handoff-approved-head

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #614
issue: #613
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 2199-962c91a121f5
worktree: branches/merge-control
phase: adopted
candidate_head: 4185ee1417
target_branch: master
target_branch_sha: 4f2fd9a8b1
last_activity: 2026-07-10T02:10:11Z
expires_at: 2026-07-10T04:10:11Z
blocker: none

<!-- mcp-review-lease-adoption:v1 --> adopted_at: 2026-07-10T02:10:11Z adopted_by_identity: sysadmin adopted_by_profile: prgs-merger adopted_from_session_id: 84546-882cef1c37a3 adopted_from_profile: prgs-reviewer adopted_from_reviewer_identity: sysadmin adopted_from_comment_id: 9144 adoption_reason: merger-handoff-approved-head <!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #614 issue: #613 reviewer_identity: sysadmin profile: prgs-merger session_id: 2199-962c91a121f5 worktree: branches/merge-control phase: adopted candidate_head: 4185ee1417ff31c9d8b004010aba711ee004a406 target_branch: master target_branch_sha: 4f2fd9a8b13817afd1fe1937fb6058f235c129bd last_activity: 2026-07-10T02:10:11Z expires_at: 2026-07-10T04:10:11Z blocker: none
sysadmin merged commit 08c3488d7c into master 2026-07-09 21:10:27 -05:00
Owner

Stale #332 review-decision lock cleanup (#594)

Status: APPLIED

Manual deletion of session-state files is not the workflow.
This path only clears a lock when the referenced PR is merged/closed.

## Stale #332 review-decision lock cleanup (#594) Status: **APPLIED** - actor: `sysadmin` - profile: `prgs-reviewer` - timestamp: `2026-07-10T02:34:38.695772+00:00` - last terminal: `approve` on PR #614 - PR state: `closed` (merged=True) - merge_commit_sha: `08c3488d7c35ba27efcd5119514aeeac37b657f7` - prior live_mutations_count: `1` - prior profile_identity: `prgs-reviewer` Manual deletion of session-state files is **not** the workflow. This path only clears a lock when the referenced PR is merged/closed.
Sign in to join this conversation.
No Reviewers
No labels
2 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Scaled-Tech-Consulting/Gitea-Tools#614