fix: resolve reviewer lease identity via host not remote alias (Closes #578) #581

Merged
sysadmin merged 2 commits from fix/issue-578-reviewer-lease-identity into master 2026-07-09 11:21:30 -05:00
Owner

Summary

Fixes #578: lease acquire/adopt/gate/release paths called _authenticated_username(remote) with the remote alias (prgs / dadeschools). That helper expects a host, so identity resolved empty and same-identity release failed closed across sessions.

Changes

  • Resolve host via _resolve(...) first, then pass h into _authenticated_username(h) in:
    • _reviewer_pr_lease_gate
    • gitea_acquire_reviewer_pr_lease
    • gitea_adopt_merger_pr_lease
    • gitea_release_reviewer_pr_lease
  • Regression tests for host-based identity resolution and same-identity cross-session release

Validation

python3 -m pytest tests/test_mcp_server.py -q
# 206 passed

Acceptance

  • Same-identity release can succeed across different session_ids (when identity resolves)
  • Regression tests prove identity uses host, not remote alias
  • Foreign-identity leases remain unauthorized until reclaim/expire

Closes #578

## Summary Fixes #578: lease acquire/adopt/gate/release paths called `_authenticated_username(remote)` with the remote alias (`prgs` / `dadeschools`). That helper expects a **host**, so identity resolved empty and same-identity release failed closed across sessions. ## Changes - Resolve host via `_resolve(...)` first, then pass `h` into `_authenticated_username(h)` in: - `_reviewer_pr_lease_gate` - `gitea_acquire_reviewer_pr_lease` - `gitea_adopt_merger_pr_lease` - `gitea_release_reviewer_pr_lease` - Regression tests for host-based identity resolution and same-identity cross-session release ## Validation ```text python3 -m pytest tests/test_mcp_server.py -q # 206 passed ``` ## Acceptance - [x] Same-identity release can succeed across different session_ids (when identity resolves) - [x] Regression tests prove identity uses host, not remote alias - [x] Foreign-identity leases remain unauthorized until reclaim/expire Closes #578
jcwalker3 added 2 commits 2026-07-09 11:13:19 -05:00
_authenticated_username expects a host for auth/API calls. Lease
acquire/adopt/gate/release paths passed the remote alias (prgs), so
identity resolved empty and same-identity release fail-closed across
sessions — blocking author conflict-fix pushes after REQUEST_CHANGES.

Pass resolved host h from _resolve into _authenticated_username.
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #581
issue: #578
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: review-581-578
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-fix-issue-578-reviewer-lease-identity
phase: claimed
candidate_head: fe9faec741
target_branch: master
target_branch_sha: 946d6c2f81
last_activity: 2026-07-09T16:13:54Z
expires_at: 2026-07-09T18:13:54Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #581 issue: #578 reviewer_identity: sysadmin profile: prgs-reviewer session_id: review-581-578 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-fix-issue-578-reviewer-lease-identity phase: claimed candidate_head: fe9faec741960136b9a49140ed2f1a5486cf4035 target_branch: master target_branch_sha: 946d6c2f81755ffd194aefacce7012c36e70fe5a last_activity: 2026-07-09T16:13:54Z expires_at: 2026-07-09T18:13:54Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #581
issue: #578
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: review-581-578
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-fix-issue-578-reviewer-lease-identity
phase: claimed
candidate_head: fe9faec741
target_branch: master
target_branch_sha: 946d6c2f81
last_activity: 2026-07-09T16:14:34Z
expires_at: 2026-07-09T18:14:34Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #581 issue: #578 reviewer_identity: sysadmin profile: prgs-reviewer session_id: review-581-578 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-fix-issue-578-reviewer-lease-identity phase: claimed candidate_head: fe9faec741960136b9a49140ed2f1a5486cf4035 target_branch: master target_branch_sha: 946d6c2f81755ffd194aefacce7012c36e70fe5a last_activity: 2026-07-09T16:14:34Z expires_at: 2026-07-09T18:14:34Z blocker: none
sysadmin approved these changes 2026-07-09 11:14:54 -05:00
sysadmin left a comment
Owner

Canonical PR State

STATE: review-approved
WHO_IS_NEXT: merger
NEXT_ACTION: merge PR #581 at head fe9faec741 after operator authorization
NEXT_PROMPT:

Use prgs-merger. Merge PR #581 at expected_head_sha=fe9faec741960136b9a49140ed2f1a5486cf4035.

WHAT_HAPPENED: Reviewed PR #581 (fix lease identity host resolution for #578).
WHY: Passes resolved host into _authenticated_username so same-identity release works across sessions.
ISSUE: #578
HEAD_SHA: fe9faec741
REVIEW_STATUS: APPROVED
MERGE_READY: yes (awaiting explicit merge authorization)
BLOCKERS: none
VALIDATION: pytest tests/test_mcp_server.py -> 206 passed; scope limited to gitea_mcp_server.py + tests
LAST_UPDATED_BY: sysadmin (prgs-reviewer)

Review notes

  • Not self-review (author jcwalker3).
  • Diff: host-first identity in gate/acquire/adopt/release; regression tests for host resolution and cross-session same-identity release.
  • Foreign-identity unauthorized path retained.
## Canonical PR State STATE: review-approved WHO_IS_NEXT: merger NEXT_ACTION: merge PR #581 at head fe9faec741960136b9a49140ed2f1a5486cf4035 after operator authorization NEXT_PROMPT: ```text Use prgs-merger. Merge PR #581 at expected_head_sha=fe9faec741960136b9a49140ed2f1a5486cf4035. ``` WHAT_HAPPENED: Reviewed PR #581 (fix lease identity host resolution for #578). WHY: Passes resolved host into _authenticated_username so same-identity release works across sessions. ISSUE: #578 HEAD_SHA: fe9faec741960136b9a49140ed2f1a5486cf4035 REVIEW_STATUS: APPROVED MERGE_READY: yes (awaiting explicit merge authorization) BLOCKERS: none VALIDATION: pytest tests/test_mcp_server.py -> 206 passed; scope limited to gitea_mcp_server.py + tests LAST_UPDATED_BY: sysadmin (prgs-reviewer) ## Review notes - Not self-review (author jcwalker3). - Diff: host-first identity in gate/acquire/adopt/release; regression tests for host resolution and cross-session same-identity release. - Foreign-identity unauthorized path retained.
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #581
issue: #578
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: review-581-578
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-fix-issue-578-reviewer-lease-identity
phase: claimed
candidate_head: fe9faec741
target_branch: master
target_branch_sha: 946d6c2f81
last_activity: 2026-07-09T16:18:34Z
expires_at: 2026-07-09T18:18:34Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #581 issue: #578 reviewer_identity: sysadmin profile: prgs-reviewer session_id: review-581-578 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-fix-issue-578-reviewer-lease-identity phase: claimed candidate_head: fe9faec741960136b9a49140ed2f1a5486cf4035 target_branch: master target_branch_sha: 946d6c2f81755ffd194aefacce7012c36e70fe5a last_activity: 2026-07-09T16:18:34Z expires_at: 2026-07-09T18:18:34Z blocker: none
Owner

adopted_at: 2026-07-09T16:20:23Z
adopted_by_identity: sysadmin
adopted_by_profile: prgs-merger
adopted_from_session_id: review-581-578
adopted_from_profile: prgs-reviewer
adopted_from_reviewer_identity: sysadmin
adopted_from_comment_id: 8282
adoption_reason: merger-handoff-approved-head

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #581
issue: #578
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 97826-0fa68a82d9d4
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-581
phase: adopted
candidate_head: fe9faec741
target_branch: master
target_branch_sha: 946d6c2f81
last_activity: 2026-07-09T16:20:23Z
expires_at: 2026-07-09T18:20:23Z
blocker: none

<!-- mcp-review-lease-adoption:v1 --> adopted_at: 2026-07-09T16:20:23Z adopted_by_identity: sysadmin adopted_by_profile: prgs-merger adopted_from_session_id: review-581-578 adopted_from_profile: prgs-reviewer adopted_from_reviewer_identity: sysadmin adopted_from_comment_id: 8282 adoption_reason: merger-handoff-approved-head <!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #581 issue: #578 reviewer_identity: sysadmin profile: prgs-merger session_id: 97826-0fa68a82d9d4 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-581 phase: adopted candidate_head: fe9faec741960136b9a49140ed2f1a5486cf4035 target_branch: master target_branch_sha: 946d6c2f81755ffd194aefacce7012c36e70fe5a last_activity: 2026-07-09T16:20:23Z expires_at: 2026-07-09T18:20:23Z blocker: none
sysadmin merged commit c738e5b10d into master 2026-07-09 11:21:30 -05:00
Owner

adopted_at: 2026-07-09T16:21:31Z
adopted_by_identity: sysadmin
adopted_by_profile: prgs-merger
adopted_from_session_id: 97826-0fa68a82d9d4
adopted_from_profile: prgs-merger
adopted_from_reviewer_identity: sysadmin
adopted_from_comment_id: 8284
adoption_reason: merger-handoff-approved-head

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #581
issue: #578
reviewer_identity: sysadmin
profile: prgs-merger
session_id: merger-pr581-20260709
worktree: branches/merger-pr581
phase: adopted
candidate_head: fe9faec741
target_branch: master
target_branch_sha: 946d6c2f81
last_activity: 2026-07-09T16:21:31Z
expires_at: 2026-07-09T18:21:31Z
blocker: none

<!-- mcp-review-lease-adoption:v1 --> adopted_at: 2026-07-09T16:21:31Z adopted_by_identity: sysadmin adopted_by_profile: prgs-merger adopted_from_session_id: 97826-0fa68a82d9d4 adopted_from_profile: prgs-merger adopted_from_reviewer_identity: sysadmin adopted_from_comment_id: 8284 adoption_reason: merger-handoff-approved-head <!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #581 issue: #578 reviewer_identity: sysadmin profile: prgs-merger session_id: merger-pr581-20260709 worktree: branches/merger-pr581 phase: adopted candidate_head: fe9faec741960136b9a49140ed2f1a5486cf4035 target_branch: master target_branch_sha: 946d6c2f81755ffd194aefacce7012c36e70fe5a last_activity: 2026-07-09T16:21:31Z expires_at: 2026-07-09T18:21:31Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #581
issue: #578
reviewer_identity: sysadmin
profile: prgs-merger
session_id: merger-pr581-20260709
worktree: branches/merger-pr581
phase: released
candidate_head: fe9faec741
target_branch: master
target_branch_sha: 946d6c2f81
last_activity: 2026-07-09T16:29:48Z
expires_at: 2026-07-09T18:29:48Z
blocker: post-merge-moot

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #581 issue: #578 reviewer_identity: sysadmin profile: prgs-merger session_id: merger-pr581-20260709 worktree: branches/merger-pr581 phase: released candidate_head: fe9faec741960136b9a49140ed2f1a5486cf4035 target_branch: master target_branch_sha: 946d6c2f81755ffd194aefacce7012c36e70fe5a last_activity: 2026-07-09T16:29:48Z expires_at: 2026-07-09T18:29:48Z blocker: post-merge-moot
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#581