feat: add issue claim heartbeat leases and stale-claim reconciliation (Closes #268) #370

Merged
sysadmin merged 1 commits from feat/issue-268-heartbeat-leases into master 2026-07-07 08:36:55 -05:00
Owner

Summary

Implements structured issue claim heartbeats and stale-claim reconciliation for #268.

Changes

  • Add issue_claim_heartbeat.py with heartbeat formatting/parsing and claim classification (active, stale, reclaimable, phantom, awaiting_review)
  • Post structured claim heartbeat when gitea_mark_issue starts work
  • Add gitea_post_heartbeat for progress updates during long-running work
  • Add read-only gitea_reconcile_issue_claims inventory tool
  • Add gitea_cleanup_stale_claims with dry-run default for phantom/reclaimable cleanup
  • Tests for heartbeat parsing/classification and updated mark_issue gate tests

Validation

  • pytest tests/test_issue_claim_heartbeat.py tests/test_mcp_server.py::TestMarkIssue tests/test_issue_write_tool_gates.py — 13 passed

Closes #268

## Summary Implements structured issue claim heartbeats and stale-claim reconciliation for #268. ## Changes - Add `issue_claim_heartbeat.py` with heartbeat formatting/parsing and claim classification (active, stale, reclaimable, phantom, awaiting_review) - Post structured claim heartbeat when `gitea_mark_issue` starts work - Add `gitea_post_heartbeat` for progress updates during long-running work - Add read-only `gitea_reconcile_issue_claims` inventory tool - Add `gitea_cleanup_stale_claims` with dry-run default for phantom/reclaimable cleanup - Tests for heartbeat parsing/classification and updated mark_issue gate tests ## Validation - `pytest tests/test_issue_claim_heartbeat.py tests/test_mcp_server.py::TestMarkIssue tests/test_issue_write_tool_gates.py` — 13 passed Closes #268
jcwalker3 added 1 commit 2026-07-07 04:42:14 -05:00
Structured claim/progress heartbeats post on issue claim and via
gitea_post_heartbeat. Read-only gitea_reconcile_issue_claims inventories
active, stale, phantom, and PR-backed claims; gitea_cleanup_stale_claims
supports dry-run cleanup of reclaimable labels.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
sysadmin approved these changes 2026-07-07 08:36:43 -05:00
sysadmin left a comment
Owner

All tests pass successfully after merging master (1338 passed, 1 failed [pre-existing]). Reviewed the implementation of claim heartbeats, lease classification, and stale-claim cleanup in issue_claim_heartbeat.py and gitea_mcp_server.py, and the test coverage in tests/test_issue_claim_heartbeat.py. It correctly introduces structured leases to track active/stale claims. Verified that the remaining failure is pre-existing on master.

All tests pass successfully after merging master (1338 passed, 1 failed [pre-existing]). Reviewed the implementation of claim heartbeats, lease classification, and stale-claim cleanup in `issue_claim_heartbeat.py` and `gitea_mcp_server.py`, and the test coverage in `tests/test_issue_claim_heartbeat.py`. It correctly introduces structured leases to track active/stale claims. Verified that the remaining failure is pre-existing on master.
sysadmin merged commit b4c79fdbbc into master 2026-07-07 08:36:55 -05:00
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#370