feat: merge-report lease proof fields and handoff audit (Closes #535) #585

Merged
sysadmin merged 1 commits from feat/issue-535-lease-proof-report into master 2026-07-09 13:16:20 -05:00
Owner

Summary

Closes #535 residual acceptance gaps from comment #8314. Core adoption path already landed via #536 / PR #538.

Changes

  1. gitea_merge_pr lease proof report fields via describe_session_lease_proof:
    • lease_proof_source, lease_recovery_reason
    • lease_proof_kind (sanctioned_adoption / sanctioned_acquire / unsanctioned_manual_seed / none)
    • lease_proof_sanctioned, lease_proof_comment_id, lease_adopted_from_session_id
  2. Final-report rule shared.manual_lease_proof_handoff blocks handoffs claiming manual/seeded/injected lease proof without MCP adoption evidence
  3. Tests for both

Validation

python3 -m pytest tests/test_merger_lease_adoption.py tests/test_reviewer_pr_lease.py tests/test_final_report_validator.py::TestMergePrRules -q
# 32 passed
git diff --check
# clean

Worktree

branches/issue-535-lease-proof-report @ 2b4c291f12bd3433cad5654d27ad6924f725cb20

Canonical PR State

STATE: ready-for-review
WHO_IS_NEXT: reviewer
NEXT_ACTION: review PR at head 2b4c291f12
NEXT_PROMPT:

Use prgs-reviewer. Review PR for Issue #535. Expected head 2b4c291f12bd3433cad5654d27ad6924f725cb20. Approve if residual gaps from #8314 are met and tests pass.

WHAT_HAPPENED: Implemented residual #535 gaps only; preserved #536 adoption runtime.
WHY: Merge reports and controller handoffs must distinguish sanctioned MCP lease proof from manual seeding.
PRIOR_PR: #538
BLOCKERS: none
VALIDATION: 32 passed targeted suite; diff --check clean
LAST_UPDATED_BY: jcwalker3 (prgs-author)

## Summary Closes #535 residual acceptance gaps from comment #8314. Core adoption path already landed via #536 / PR #538. ## Changes 1. `gitea_merge_pr` lease proof report fields via `describe_session_lease_proof`: - `lease_proof_source`, `lease_recovery_reason` - `lease_proof_kind` (sanctioned_adoption / sanctioned_acquire / unsanctioned_manual_seed / none) - `lease_proof_sanctioned`, `lease_proof_comment_id`, `lease_adopted_from_session_id` 2. Final-report rule `shared.manual_lease_proof_handoff` blocks handoffs claiming manual/seeded/injected lease proof without MCP adoption evidence 3. Tests for both ## Validation ```text python3 -m pytest tests/test_merger_lease_adoption.py tests/test_reviewer_pr_lease.py tests/test_final_report_validator.py::TestMergePrRules -q # 32 passed git diff --check # clean ``` ## Worktree `branches/issue-535-lease-proof-report` @ `2b4c291f12bd3433cad5654d27ad6924f725cb20` ## Canonical PR State STATE: ready-for-review WHO_IS_NEXT: reviewer NEXT_ACTION: review PR at head 2b4c291f12bd3433cad5654d27ad6924f725cb20 NEXT_PROMPT: ```text Use prgs-reviewer. Review PR for Issue #535. Expected head 2b4c291f12bd3433cad5654d27ad6924f725cb20. Approve if residual gaps from #8314 are met and tests pass. ``` WHAT_HAPPENED: Implemented residual #535 gaps only; preserved #536 adoption runtime. WHY: Merge reports and controller handoffs must distinguish sanctioned MCP lease proof from manual seeding. PRIOR_PR: #538 BLOCKERS: none VALIDATION: 32 passed targeted suite; diff --check clean LAST_UPDATED_BY: jcwalker3 (prgs-author)
jcwalker3 added 1 commit 2026-07-09 12:02:55 -05:00
Surface lease_proof_source / recovery reason from sanctioned session
provenance on gitea_merge_pr results, and block final reports that claim
manual/seeded/injected lease proof without MCP adoption evidence.

Closes #535
Author
Owner

Canonical PR State

STATE: ready-for-review
WHO_IS_NEXT: reviewer
NEXT_ACTION: review and approve PR #585 at head 2b4c291f12
NEXT_PROMPT:

Use prgs-reviewer. Review PR #585 for Issue #535. Expected head 2b4c291f12bd3433cad5654d27ad6924f725cb20. Approve if residual gaps from comment #8314 are covered and tests pass.

WHAT_HAPPENED: Opened PR #585 implementing residual #535 gaps only.
WHY: Need merge-report lease proof fields and controller audit for unsafe lease claims.
RELATED_PRS: #585 #538
BLOCKERS: none
VALIDATION: pytest targeted suite 32 passed; git diff --check clean
LAST_UPDATED_BY: jcwalker3 (prgs-author)

Files changed

  • merger_lease_adoption.py
  • gitea_mcp_server.py
  • final_report_validator.py
  • tests/test_merger_lease_adoption.py
  • tests/test_final_report_validator.py
## Canonical PR State STATE: ready-for-review WHO_IS_NEXT: reviewer NEXT_ACTION: review and approve PR #585 at head 2b4c291f12bd3433cad5654d27ad6924f725cb20 NEXT_PROMPT: ```text Use prgs-reviewer. Review PR #585 for Issue #535. Expected head 2b4c291f12bd3433cad5654d27ad6924f725cb20. Approve if residual gaps from comment #8314 are covered and tests pass. ``` WHAT_HAPPENED: Opened PR #585 implementing residual #535 gaps only. WHY: Need merge-report lease proof fields and controller audit for unsafe lease claims. RELATED_PRS: #585 #538 BLOCKERS: none VALIDATION: pytest targeted suite 32 passed; git diff --check clean LAST_UPDATED_BY: jcwalker3 (prgs-author) ### Files changed - merger_lease_adoption.py - gitea_mcp_server.py - final_report_validator.py - tests/test_merger_lease_adoption.py - tests/test_final_report_validator.py
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #585
issue: #535
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 55582-433dd4700275
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-585-issue-535
phase: claimed
candidate_head: 2b4c291f12
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T17:51:17Z
expires_at: 2026-07-09T19:51:17Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #585 issue: #535 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 55582-433dd4700275 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-585-issue-535 phase: claimed candidate_head: 2b4c291f12bd3433cad5654d27ad6924f725cb20 target_branch: master target_branch_sha: none last_activity: 2026-07-09T17:51:17Z expires_at: 2026-07-09T19:51:17Z blocker: none
sysadmin approved these changes 2026-07-09 12:53:56 -05:00
sysadmin left a comment
Owner

Canonical PR State

STATE: approved
WHO_IS_NEXT: merger
NEXT_ACTION: merge PR #585 at expected head 2b4c291f12 after explicit operator authorization
NEXT_PROMPT:

Use prgs-merger. MERGE PR 585 only with explicit operator authorization. Expected head SHA 2b4c291f12bd3433cad5654d27ad6924f725cb20. Adopt reviewer lease if needed via gitea_adopt_merger_pr_lease, then gitea_merge_pr. Linked issue #535.

WHAT_HAPPENED: Reviewed PR #585 for Issue #535 residual gaps from comment #8314. Scope is residual-only (merge-report lease proof fields + controller handoff audit); does not rework #536 adoption core. APPROVE at pinned head.
WHY: #535 residual acceptance required lease_proof_source/recovery reason on merge reports and a final-report rule blocking bare manual/seeded/injected lease claims without sanctioned MCP evidence.
ISSUE: #535
HEAD_SHA: 2b4c291f12
REVIEW_STATUS: approved
MERGE_READY: yes
BLOCKERS: none
VALIDATION: pytest tests/test_merger_lease_adoption.py tests/test_reviewer_pr_lease.py tests/test_final_report_validator.py::TestMergePrRules -q -> 32 passed; worktree branches/review-pr-585-issue-535
LAST_UPDATED_BY: sysadmin (prgs-reviewer)

Review findings

  • Files: merger_lease_adoption.py, gitea_mcp_server.py, final_report_validator.py, tests
  • describe_session_lease_proof attached on merge fail and success paths
  • shared.manual_lease_proof_handoff blocks unsafe handoff language without MCP evidence
  • Author jcwalker3; reviewer sysadmin — not self-review
## Canonical PR State STATE: approved WHO_IS_NEXT: merger NEXT_ACTION: merge PR #585 at expected head 2b4c291f12bd3433cad5654d27ad6924f725cb20 after explicit operator authorization NEXT_PROMPT: ```text Use prgs-merger. MERGE PR 585 only with explicit operator authorization. Expected head SHA 2b4c291f12bd3433cad5654d27ad6924f725cb20. Adopt reviewer lease if needed via gitea_adopt_merger_pr_lease, then gitea_merge_pr. Linked issue #535. ``` WHAT_HAPPENED: Reviewed PR #585 for Issue #535 residual gaps from comment #8314. Scope is residual-only (merge-report lease proof fields + controller handoff audit); does not rework #536 adoption core. APPROVE at pinned head. WHY: #535 residual acceptance required lease_proof_source/recovery reason on merge reports and a final-report rule blocking bare manual/seeded/injected lease claims without sanctioned MCP evidence. ISSUE: #535 HEAD_SHA: 2b4c291f12bd3433cad5654d27ad6924f725cb20 REVIEW_STATUS: approved MERGE_READY: yes BLOCKERS: none VALIDATION: pytest tests/test_merger_lease_adoption.py tests/test_reviewer_pr_lease.py tests/test_final_report_validator.py::TestMergePrRules -q -> 32 passed; worktree branches/review-pr-585-issue-535 LAST_UPDATED_BY: sysadmin (prgs-reviewer) ### Review findings - Files: merger_lease_adoption.py, gitea_mcp_server.py, final_report_validator.py, tests - describe_session_lease_proof attached on merge fail and success paths - shared.manual_lease_proof_handoff blocks unsafe handoff language without MCP evidence - Author jcwalker3; reviewer sysadmin — not self-review
Owner

adopted_at: 2026-07-09T18:10:03Z
adopted_by_identity: sysadmin
adopted_by_profile: prgs-merger
adopted_from_session_id: 55582-433dd4700275
adopted_from_profile: prgs-reviewer
adopted_from_reviewer_identity: sysadmin
adopted_from_comment_id: 8400
adoption_reason: merger-handoff-approved-head

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #585
issue: #535
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 55588-eb3301ea0c5d
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-585
phase: adopted
candidate_head: 2b4c291f12
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T18:10:03Z
expires_at: 2026-07-09T20:10:03Z
blocker: none

<!-- mcp-review-lease-adoption:v1 --> adopted_at: 2026-07-09T18:10:03Z adopted_by_identity: sysadmin adopted_by_profile: prgs-merger adopted_from_session_id: 55582-433dd4700275 adopted_from_profile: prgs-reviewer adopted_from_reviewer_identity: sysadmin adopted_from_comment_id: 8400 adoption_reason: merger-handoff-approved-head <!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #585 issue: #535 reviewer_identity: sysadmin profile: prgs-merger session_id: 55588-eb3301ea0c5d worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-585 phase: adopted candidate_head: 2b4c291f12bd3433cad5654d27ad6924f725cb20 target_branch: master target_branch_sha: none last_activity: 2026-07-09T18:10:03Z expires_at: 2026-07-09T20:10:03Z blocker: none
Owner

adopted_at: 2026-07-09T18:14:30Z
adopted_by_identity: sysadmin
adopted_by_profile: prgs-merger
adopted_from_session_id: 55588-eb3301ea0c5d
adopted_from_profile: prgs-merger
adopted_from_reviewer_identity: sysadmin
adopted_from_comment_id: 8413
adoption_reason: merger-handoff-approved-head

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #585
issue: #535
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 94021-376bf6ba1523
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-585
phase: adopted
candidate_head: 2b4c291f12
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T18:14:30Z
expires_at: 2026-07-09T20:14:30Z
blocker: none

<!-- mcp-review-lease-adoption:v1 --> adopted_at: 2026-07-09T18:14:30Z adopted_by_identity: sysadmin adopted_by_profile: prgs-merger adopted_from_session_id: 55588-eb3301ea0c5d adopted_from_profile: prgs-merger adopted_from_reviewer_identity: sysadmin adopted_from_comment_id: 8413 adoption_reason: merger-handoff-approved-head <!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #585 issue: #535 reviewer_identity: sysadmin profile: prgs-merger session_id: 94021-376bf6ba1523 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-585 phase: adopted candidate_head: 2b4c291f12bd3433cad5654d27ad6924f725cb20 target_branch: master target_branch_sha: none last_activity: 2026-07-09T18:14:30Z expires_at: 2026-07-09T20:14:30Z blocker: none
sysadmin merged commit faf36b5bdf into master 2026-07-09 13:16:20 -05:00
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #585
issue: #535
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 94021-376bf6ba1523
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-585
phase: released
candidate_head: 2b4c291f12
target_branch: master
target_branch_sha: none
last_activity: 2026-07-09T18:22:29Z
expires_at: 2026-07-09T20:22:29Z
blocker: post-merge-moot

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #585 issue: #535 reviewer_identity: sysadmin profile: prgs-merger session_id: 94021-376bf6ba1523 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/merge-pr-585 phase: released candidate_head: 2b4c291f12bd3433cad5654d27ad6924f725cb20 target_branch: master target_branch_sha: none last_activity: 2026-07-09T18:22:29Z expires_at: 2026-07-09T20:22:29Z 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#585