Commit Graph
435 Commits
Author SHA1 Message Date
sysadmin 0c18d0f54f Merge pull request 'feat: enforce PR review/merge workflow state machine gates (Closes #290)' (#378) from feat/issue-290-review-merge-state-machine into master 2026-07-07 09:02:42 -05:00
sysadmin ae566d5cd1 Merge pull request 'feat: reject stale already-landed controller handoff fields (Closes #299)' (#371) from feat/issue-299-already-landed-handoff into master 2026-07-07 09:00:07 -05:00
sysadmin 60040e789b Merge remote-tracking branch 'prgs/master' into feat/issue-290-review-merge-state-machine 2026-07-07 09:57:58 -04:00
sysadmin fbfcc08640 Merge remote-tracking branch 'prgs/master' into feat/issue-299-already-landed-handoff 2026-07-07 09:57:54 -04:00
sysadmin 0bb6cae95a Merge pull request 'feat: dedicated reconciler capability for closing landed PRs (Closes #309)' (#379) from feat/issue-309-reconciler-close-capability into master 2026-07-07 08:57:04 -05:00
sysadmin af064dd06b fix: resolve conflicts for PR #378
Merge prgs/master and keep both review-merge state machine (#290) and
native MCP preference (#270) imports, skill entries, and MCP tools.
2026-07-07 09:57:01 -04:00
sysadmin b53e3de7cc fix: resolve conflicts for PR #371
Merge prgs/master and keep both already-landed-handoff (#299) and
inventory-worktree (#293) verifiers wired in build_final_report.
2026-07-07 09:55:33 -04:00
sysadmin 47b4ee4791 Merge pull request 'feat: add native MCP preference gate and shell circuit breaker (Closes #270)' (#377) from feat/issue-270-native-mcp-preference into master 2026-07-07 08:54:03 -05:00
sysadmin 1c506fa779 Merge pull request 'feat: comment-then-stop policy for partial PR reconciliation (Closes #302)' (#375) from feat/issue-302-partial-reconciliation-policy into master 2026-07-07 08:51:12 -05:00
sysadmin e7a1e183a0 Merge pull request 'feat: prove inventory pagination and worktree state in reviewer reports (Closes #293)' (#369) from feat/issue-293-inventory-worktree-proof into master 2026-07-07 08:47:05 -05:00
sysadminandClaude Opus 4.8 3c2dd055fa fix: resolve conflicts for PR #371 against current master
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-07 09:44:44 -04:00
sysadminandClaude Opus 4.8 56f8f9eeb4 fix: resolve conflicts for PR #369 against current master
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-07 09:44:12 -04:00
sysadmin b6cf32c845 Merge pull request 'feat: add dedicated reconciliation controller-handoff schema (Closes #303)' (#373) from feat/issue-303-reconciliation-handoff into master 2026-07-07 08:42:40 -05:00
sysadmin a17e8561d0 Merge pull request 'feat: require infra_stop repair handoff for blocked reviewers (Closes #289)' (#366) from feat/issue-289-infra-stop-handoff into master 2026-07-07 08:39:35 -05:00
sysadmin 85c5d24b0e fix: resolve conflicts for PR #379 against latest master 2026-07-07 09:38:28 -04:00
sysadmin fa922cf8e3 fix: resolve conflicts for PR #373 against latest master 2026-07-07 09:37:21 -04:00
sysadmin 8b555043e3 fix: resolve conflicts for PR #371 against latest master 2026-07-07 09:37:16 -04:00
sysadmin faf4484657 fix: resolve conflicts for PR #369 against latest master 2026-07-07 09:37:13 -04:00
sysadmin 93230457d8 fix: resolve conflicts for PR #366 against latest master 2026-07-07 09:37:10 -04:00
sysadmin b4c79fdbbc Merge pull request 'feat: add issue claim heartbeat leases and stale-claim reconciliation (Closes #268)' (#370) from feat/issue-268-heartbeat-leases into master 2026-07-07 08:36:55 -05:00
sysadmin 8b9a0705b6 Merge pull request 'feat: enforce precise mutation categories in controller handoffs (Closes #319)' (#365) from feat/issue-319-mutation-categories into master 2026-07-07 08:33:56 -05:00
sysadminandClaude Opus 4.8 ba4cf2e93d fix: resolve conflicts for PR #375 against latest master
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-07 09:31:50 -04:00
sysadminandClaude Opus 4.8 3c9841760c fix: resolve conflicts for PR #371 against latest master
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-07 09:31:44 -04:00
sysadminandClaude Opus 4.8 51d0c14009 fix: resolve conflicts for PR #369 against latest master
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-07 09:31:42 -04:00
sysadminandClaude Opus 4.8 8a6cb6ac2c fix: resolve conflicts for PR #366 against latest master
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-07 09:31:21 -04:00
sysadmin ce39fb52c9 Merge pull request 'Add validation integrity verifier for PR-head vs diagnostic tests (#316)' (#358) from feat/issue-316-validation-integrity into master 2026-07-07 08:31:02 -05:00
sysadmin e823000301 fix: resolve conflicts for PR #365 against latest master 2026-07-07 09:28:23 -04:00
sysadmin 7b71113b4d Merge pull request 'feat: hard-stop review mutations on already-landed PR heads (Closes #292)' (#368) from feat/issue-292-already-landed-gate into master 2026-07-07 08:28:04 -05:00
sysadminandClaude Opus 4.8 c2226177b6 fix: resolve conflicts for PR #358 against latest master
Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-07 09:27:29 -04:00
sysadmin b41d9d6006 Merge pull request 'feat: reject eligible/reviewed wording for already-landed PRs (Closes #298)' (#367) from feat/issue-298-already-landed-wording into master 2026-07-07 08:25:44 -05:00
sysadmin e26398b7a9 Merge pull request 'feat: block edits in PR validation worktrees (Closes #315)' (#363) from feat/issue-315-validation-worktree-no-edits into master 2026-07-07 08:22:57 -05:00
sysadmin 0fe8f57dda Merge pull request 'feat: classify merge simulation as worktree/index mutations (Closes #317)' (#356) from feat/issue-317-merge-simulation-mutations into master 2026-07-07 08:20:40 -05:00
sysadmin 1487ff60b4 Merge pull request 'feat: enforce validation environment proof in reviewer reports (Closes #311)' (#352) from feat/issue-311-validation-environment-proof into master 2026-07-07 08:18:29 -05:00
sysadmin 2900add223 fix: resolve conflicts for PR #371 against current master 2026-07-07 09:17:33 -04:00
sysadmin a5fb7d2472 fix: resolve conflicts for PR #366 against current master 2026-07-07 09:17:25 -04:00
sysadmin c5ab43ed5a fix: resolve conflicts for PR #366 against current master 2026-07-07 09:17:25 -04:00
sysadmin a237b15559 fix: resolve conflicts for PR #365 against current master 2026-07-07 09:17:15 -04:00
sysadmin 07b23950ab fix: resolve conflicts for PR #363 against current master 2026-07-07 09:17:00 -04:00
sysadmin bbf5ee6d59 fix: resolve conflicts for PR #375 against current master 2026-07-07 09:15:26 -04:00
sysadmin 5131fc595a fix: resolve conflicts for PR #368 against current master 2026-07-07 09:15:26 -04:00
sysadmin e017d80256 Merge pull request 'fix: seed profile gate for TestIssueLockArtifactWarning (Closes #359)' (#364) from fix/issue-359-artifact-warning-test into master 2026-07-07 08:15:18 -05:00
sysadminandClaude Opus 4.8 958d470f98 feat: dedicated reconciler capability for closing landed PRs (Closes #309)
Already-landed open PRs block the review queue: the already-landed gate
correctly stops approval/merge, but no task path could close the
redundant PR. Add the reconciler close path:

- task_capability_map: new reconcile_close_landed_pr (gitea.pr.close)
  and reconcile_close_landed_issue (gitea.issue.close) tasks under a
  dedicated "reconciler" role. Exact close capabilities only — the
  role grants no review, approve, request-changes, or merge authority,
  and normal reviewer profiles keep no broad PR-close authority.
- role_session_router: reconciler tasks route wrong_role_stop in
  author/reviewer sessions with a dedicated recovery message; matching
  reconciler sessions route allowed_current_session.
- review_proofs.assess_reconciler_close_gate: PR close allowed only
  when every proof passes — PR live-verified open, candidate head SHA
  pinned and matching the live head, target branch freshly fetched
  with a full SHA, head an ancestor of the target, exact
  gitea.pr.close proven. Non-landed PRs return
  NOT_LANDED_CLOSE_BLOCKED; missing close capability returns
  RECOVERY_HANDOFF_REQUIRED; incomplete proof fails closed as
  GATE_NOT_PROVEN. Linked-issue close is skipped when the issue is
  already closed and allowed only for an open issue resolved by the
  landed commits with exact gitea.issue.close capability. The gate
  also returns the required final-report field list.

17 new tests cover the capability map, wrong-role routing, and every
gate path (landed close, non-landed block, stale target, changed head,
missing capabilities, linked-issue variants, review-mutation denial).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-07 09:15:13 -04:00
sysadmin af806919b3 fix: resolve conflicts for PR #358 against current master 2026-07-07 09:14:47 -04:00
sysadmin 42cd0f9f4a fix: resolve conflicts for PR #356 against current master 2026-07-07 09:14:30 -04:00
sysadmin 8d32af14d6 feat: enforce PR review/merge workflow state machine gates (Closes #290)
Add fail-closed review/merge state progression helpers, pre-merge gate
requirements, blocked recovery handoff checks, and MCP assessment tool.

Closes #290
2026-07-07 09:14:29 -04:00
sysadmin 764e636c07 fix: resolve conflicts for PR #352 against current master 2026-07-07 09:14:04 -04:00
sysadmin c21e756a30 Merge pull request 'feat: prove reviewer worktree ownership before reset (Closes #312)' (#362) from feat/issue-312-worktree-ownership into master 2026-07-07 08:12:56 -05:00
sysadmin 6743cc11b9 feat: add native MCP preference gate and shell circuit breaker (Closes #270)
Enforce native MCP-first paths for Gitea mutations with fail-closed
assessment helpers, shell spawn circuit breaker tracking, and MCP tools
for operation-path assessment and shell health reporting.

Closes #270
2026-07-07 09:11:15 -04:00
sysadmin c20a93602d Merge pull request 'feat: block approval on full-suite failure without baseline proof (Closes #323)' (#361) from feat/issue-323-full-suite-approval-gate into master 2026-07-07 08:09:13 -05:00
sysadminandClaude Opus 4.8 852ac1f56b feat: comment-then-stop policy for partial PR reconciliation (Closes #302)
Already-landed PR reconciliation could prove a PR should be closed but
stop silently when gitea.pr.close was unavailable, even with comment
capability present. Adopt Option B (comment-then-stop) as the durable
policy and enforce it:

- resolve_partial_reconciliation_plan maps proven capabilities to one
  of four outcomes: FULL_RECONCILE_CLOSE_ALLOWED (close_pr proven),
  PARTIAL_RECONCILE_COMMENT_THEN_STOP (comment_pr proven, close_pr
  missing; one reconciliation comment with PR head SHA, target branch
  SHA, ancestor proof, linked issue status, and the missing capability,
  then stop), RECOVERY_HANDOFF_ONLY (no comment capability; no Gitea
  mutation), and GATE_NOT_PROVEN (no ancestry proof; no mutation
  regardless of capability). Missing capability dicts fail closed.
- assess_partial_reconciliation_report requires final reports to
  explain why the comment was or was not posted, name the missing
  capability, and state the close result or that no mutation ran.
- workflows/reconcile-landed-pr.md gains section 12A documenting the
  policy; the workflow contract test locks the new markers.

Tests cover close capability present, close missing with comment
allowed, comment capability missing, all capabilities missing,
unproven ancestry, fail-closed capability dict, and report checks for
each outcome.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-07-07 05:47:16 -04:00