fix: residual preflight/worktree/test-isolation remediations after #673 #676

Merged
sysadmin merged 2 commits from fix/issue-675-residual-preflight-remediation into master 2026-07-11 19:15:56 -05:00
Owner

Summary

Residual preflight / review-worktree / test-isolation fixes that remained after #673 landed via PR #674. Recovered from a local worktree after MCP EOF interrupted the original publish path.

Closes #675

Changes

  • Unify review-worktree regex usage across reviewer_worktree.py, ownership, cleanup audit, and preflight paths
  • Resolve Web UI /worktrees NameError in webui/worktree_scanner.py
  • Strengthen pytest isolation in tests/conftest.py, root-checkout guard tests, and workspace-guard alignment tests
  • Bypass host workspace checks under test mode so preflight remains deterministic

Context

  • Parent incident: #673 (closed by PR #674)
  • Tracking issue for residual work: #675

Validation

From worktree /Users/jasonwalker/Development/Gitea-Tools/branches/fix-issue-673-remediate-regressions:

python3 -m pytest tests/test_root_checkout_guard.py tests/test_workspace_guard_alignment.py tests/test_reviewer_worktree*.py tests/test_worktree_cleanup*.py -q
# 86 passed, 13 subtests passed

Head

72b18143f83a060de4b38138cf4da940bc543206

## Summary Residual preflight / review-worktree / test-isolation fixes that remained after #673 landed via PR #674. Recovered from a local worktree after MCP EOF interrupted the original publish path. Closes #675 ## Changes - Unify review-worktree regex usage across `reviewer_worktree.py`, ownership, cleanup audit, and preflight paths - Resolve Web UI `/worktrees` NameError in `webui/worktree_scanner.py` - Strengthen pytest isolation in `tests/conftest.py`, root-checkout guard tests, and workspace-guard alignment tests - Bypass host workspace checks under test mode so preflight remains deterministic ## Context - Parent incident: #673 (closed by PR #674) - Tracking issue for residual work: #675 ## Validation From worktree `/Users/jasonwalker/Development/Gitea-Tools/branches/fix-issue-673-remediate-regressions`: ```text python3 -m pytest tests/test_root_checkout_guard.py tests/test_workspace_guard_alignment.py tests/test_reviewer_worktree*.py tests/test_worktree_cleanup*.py -q # 86 passed, 13 subtests passed ``` ## Head `72b18143f83a060de4b38138cf4da940bc543206`
jcwalker3 added 2 commits 2026-07-11 18:50:16 -05:00
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #676
issue: #675
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 96813-f79bd8ac52fe
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-676
phase: claimed
candidate_head: 72b18143f8
target_branch: master
target_branch_sha: bee24e2b10
last_activity: 2026-07-11T23:55:58Z
expires_at: 2026-07-12T01:55:58Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #676 issue: #675 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 96813-f79bd8ac52fe worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-676 phase: claimed candidate_head: 72b18143f83a060de4b38138cf4da940bc543206 target_branch: master target_branch_sha: bee24e2b102dbdc201932d2e5397a7d9e3be5fc5 last_activity: 2026-07-11T23:55:58Z expires_at: 2026-07-12T01:55:58Z blocker: none
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #676
issue: #675
reviewer_identity: sysadmin
profile: prgs-reviewer
session_id: 96813-f79bd8ac52fe
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-676
phase: claimed
candidate_head: 72b18143f8
target_branch: master
target_branch_sha: bee24e2b10
last_activity: 2026-07-12T00:06:42Z
expires_at: 2026-07-12T02:06:42Z
blocker: none

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #676 issue: #675 reviewer_identity: sysadmin profile: prgs-reviewer session_id: 96813-f79bd8ac52fe worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-676 phase: claimed candidate_head: 72b18143f83a060de4b38138cf4da940bc543206 target_branch: master target_branch_sha: bee24e2b102dbdc201932d2e5397a7d9e3be5fc5 last_activity: 2026-07-12T00:06:42Z expires_at: 2026-07-12T02:06:42Z blocker: none
sysadmin approved these changes 2026-07-11 19:09:11 -05:00
sysadmin left a comment
Owner

Reviewer decision: APPROVE

PR #676 (Closes #675) reviewed at head 72b18143f83a060de4b38138cf4da940bc543206 in isolated worktree branches/review-pr-676.

Scope

Exactly the 8 expected files, no unrelated changes:
gitea_mcp_server.py, reviewer_worktree.py, reviewer_worktree_ownership.py, worktree_cleanup_audit.py, webui/worktree_scanner.py, tests/conftest.py, tests/test_root_checkout_guard.py, tests/test_workspace_guard_alignment.py.

Findings

  • Canonical review-worktree regex consolidated into reviewer_worktree.REVIEW_WORKTREE_RE (+ is_review_worktree_path() helper); ownership, webui scanner, and cleanup audit now import the single source. Shared-by-identity confirmed at runtime; no circular import.
  • tests/conftest.py clears all GITEA_*_WORKTREE env vars → hermetic isolation from host-environment leakage.
  • Guard tests made deterministic via subprocess.run / os.path mocks; webui /worktrees NameError resolved.
  • gitea_mcp_server.py change is a blank line only — no functional edit; the #510 role-mutation workspace guard gains no test-mode bypass.
  • Non-blocking nits only: a few stray blank lines and a missing EOF newline in test_root_checkout_guard.py. No whitespace errors (git diff --check clean).

Validation (reviewer-reproduced, isolated worktree)

  • pytest tests/test_root_checkout_guard.py tests/test_workspace_guard_alignment.py tests/test_reviewer_worktree*.py tests/test_worktree_cleanup*.py -q86 passed, 13 subtests passed (matches author).
  • pytest -k "scanner or worktree_ownership"15 passed.
  • git diff --check → clean. Core-module import-cycle check → OK.

Canonical PR State

STATE: approved-ready-for-merge
WHO_IS_NEXT: merger
NEXT_ACTION: Merge PR #676 into master via sanctioned Gitea merge tooling under explicit operator authorization.
NEXT_PROMPT:

Merger: merge PR #676 (Closes #675) into prgs/master at head 72b18143f83a060de4b38138cf4da940bc543206 via gitea_merge_pr under explicit operator authorization. Reviewer approval is posted at this exact head. Do not merge without operator hand-off; no force-push, no history rewrite, no direct master push.

WHAT_HAPPENED: Reviewer sysadmin/prgs-reviewer reviewed PR #676 at head 72b18143 in isolated worktree branches/review-pr-676. Scope limited to 8 expected files; canonical worktree regex consolidated; hermetic test isolation added; webui NameError fixed; no new test-mode bypass of the #510 workspace guard. A moot prior-session #332 lock on merged PR #674 was cleared via the sanctioned cleanup tool under operator authorization before this verdict. Parent incident #673 was closed by PR #674 (merge commit bee24e2b).
WHY: Change is confined to the stated #675 residual remediation, removes duplicate regex definitions in favor of one source of truth, and fixes host-env test leakage; all reviewer-reproduced validation passes.
ISSUE: #675
HEAD_SHA: 72b18143f8
REVIEW_STATUS: approve verdict posted at head 72b18143
MERGE_READY: yes — clean and merge-authorizing at head 72b18143 (pending explicit operator authorization for the merger)
BLOCKERS: none.
VALIDATION: focused pytest 86 passed + 13 subtests; scanner/ownership 15 passed; git diff --check clean; import-cycle check OK.
LAST_UPDATED_BY: sysadmin (prgs-reviewer)

[THREAD STATE LEDGER]

What is true now: PR #676 open, mergeable, head 72b18143 (matches expected), base master at bee24e2b. No prior reviews before this verdict.

  • Server-side decision state: reviewer approval posted to Gitea at head 72b18143.
  • Local verdict/state: approve verdict prepared locally after full scope + validation review.
  • Latest known validation: 86 passed + 13 subtests + 15 scanner/ownership tests; diff --check clean.
    What changed: Reviewer validated scope and reproduced author validation in isolated worktree; moot #332 lock on merged PR #674 cleared under operator authorization; approve verdict posted.
    What is blocked:
  • Blocker classification: no blocker
    Who/what acts next:
  • Next actor: merger
  • Required action: merge PR #676 into master via sanctioned Gitea merge tooling under explicit operator authorization.
  • Do not do: do not merge without operator authorization; no force-push, no history rewrite, no direct master push, no scope expansion; do not touch PR #674 beyond the completed stale-lock cleanup.
    LAST_UPDATED_BY: sysadmin (prgs-reviewer)
## Reviewer decision: APPROVE PR #676 (Closes #675) reviewed at head `72b18143f83a060de4b38138cf4da940bc543206` in isolated worktree `branches/review-pr-676`. ### Scope Exactly the 8 expected files, no unrelated changes: `gitea_mcp_server.py`, `reviewer_worktree.py`, `reviewer_worktree_ownership.py`, `worktree_cleanup_audit.py`, `webui/worktree_scanner.py`, `tests/conftest.py`, `tests/test_root_checkout_guard.py`, `tests/test_workspace_guard_alignment.py`. ### Findings - Canonical review-worktree regex consolidated into `reviewer_worktree.REVIEW_WORKTREE_RE` (+ `is_review_worktree_path()` helper); ownership, webui scanner, and cleanup audit now import the single source. Shared-by-identity confirmed at runtime; no circular import. - `tests/conftest.py` clears all `GITEA_*_WORKTREE` env vars → hermetic isolation from host-environment leakage. - Guard tests made deterministic via `subprocess.run` / `os.path` mocks; webui `/worktrees` NameError resolved. - `gitea_mcp_server.py` change is a blank line only — no functional edit; the #510 role-mutation workspace guard gains no test-mode bypass. - Non-blocking nits only: a few stray blank lines and a missing EOF newline in `test_root_checkout_guard.py`. No whitespace errors (`git diff --check` clean). ### Validation (reviewer-reproduced, isolated worktree) - `pytest tests/test_root_checkout_guard.py tests/test_workspace_guard_alignment.py tests/test_reviewer_worktree*.py tests/test_worktree_cleanup*.py -q` → **86 passed, 13 subtests passed** (matches author). - `pytest -k "scanner or worktree_ownership"` → **15 passed**. - `git diff --check` → clean. Core-module import-cycle check → OK. ## Canonical PR State STATE: approved-ready-for-merge WHO_IS_NEXT: merger NEXT_ACTION: Merge PR #676 into master via sanctioned Gitea merge tooling under explicit operator authorization. NEXT_PROMPT: ```text Merger: merge PR #676 (Closes #675) into prgs/master at head 72b18143f83a060de4b38138cf4da940bc543206 via gitea_merge_pr under explicit operator authorization. Reviewer approval is posted at this exact head. Do not merge without operator hand-off; no force-push, no history rewrite, no direct master push. ``` WHAT_HAPPENED: Reviewer sysadmin/prgs-reviewer reviewed PR #676 at head 72b18143 in isolated worktree branches/review-pr-676. Scope limited to 8 expected files; canonical worktree regex consolidated; hermetic test isolation added; webui NameError fixed; no new test-mode bypass of the #510 workspace guard. A moot prior-session #332 lock on merged PR #674 was cleared via the sanctioned cleanup tool under operator authorization before this verdict. Parent incident #673 was closed by PR #674 (merge commit bee24e2b). WHY: Change is confined to the stated #675 residual remediation, removes duplicate regex definitions in favor of one source of truth, and fixes host-env test leakage; all reviewer-reproduced validation passes. ISSUE: #675 HEAD_SHA: 72b18143f83a060de4b38138cf4da940bc543206 REVIEW_STATUS: approve verdict posted at head 72b18143 MERGE_READY: yes — clean and merge-authorizing at head 72b18143 (pending explicit operator authorization for the merger) BLOCKERS: none. VALIDATION: focused pytest 86 passed + 13 subtests; scanner/ownership 15 passed; git diff --check clean; import-cycle check OK. LAST_UPDATED_BY: sysadmin (prgs-reviewer) [THREAD STATE LEDGER] What is true now: PR #676 open, mergeable, head 72b18143 (matches expected), base master at bee24e2b. No prior reviews before this verdict. - Server-side decision state: reviewer approval posted to Gitea at head 72b18143. - Local verdict/state: approve verdict prepared locally after full scope + validation review. - Latest known validation: 86 passed + 13 subtests + 15 scanner/ownership tests; diff --check clean. What changed: Reviewer validated scope and reproduced author validation in isolated worktree; moot #332 lock on merged PR #674 cleared under operator authorization; approve verdict posted. What is blocked: - Blocker classification: no blocker Who/what acts next: - Next actor: merger - Required action: merge PR #676 into master via sanctioned Gitea merge tooling under explicit operator authorization. - Do not do: do not merge without operator authorization; no force-push, no history rewrite, no direct master push, no scope expansion; do not touch PR #674 beyond the completed stale-lock cleanup. LAST_UPDATED_BY: sysadmin (prgs-reviewer)
Owner

adopted_at: 2026-07-12T00:15:48Z
adopted_by_identity: sysadmin
adopted_by_profile: prgs-merger
adopted_from_session_id: 96813-f79bd8ac52fe
adopted_from_profile: prgs-reviewer
adopted_from_reviewer_identity: sysadmin
adopted_from_comment_id: 10378
adoption_reason: merger-handoff-approved-head

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #676
issue: #675
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 39922-9fc6e9bfede9
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-676
phase: adopted
candidate_head: 72b18143f8
target_branch: master
target_branch_sha: bee24e2b10
last_activity: 2026-07-12T00:15:48Z
expires_at: 2026-07-12T02:15:48Z
blocker: none

<!-- mcp-review-lease-adoption:v1 --> adopted_at: 2026-07-12T00:15:48Z adopted_by_identity: sysadmin adopted_by_profile: prgs-merger adopted_from_session_id: 96813-f79bd8ac52fe adopted_from_profile: prgs-reviewer adopted_from_reviewer_identity: sysadmin adopted_from_comment_id: 10378 adoption_reason: merger-handoff-approved-head <!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #676 issue: #675 reviewer_identity: sysadmin profile: prgs-merger session_id: 39922-9fc6e9bfede9 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-676 phase: adopted candidate_head: 72b18143f83a060de4b38138cf4da940bc543206 target_branch: master target_branch_sha: bee24e2b102dbdc201932d2e5397a7d9e3be5fc5 last_activity: 2026-07-12T00:15:48Z expires_at: 2026-07-12T02:15:48Z blocker: none
sysadmin merged commit de27053f74 into master 2026-07-11 19:15:56 -05:00
Owner

repo: Scaled-Tech-Consulting/Gitea-Tools
pr: #676
issue: #675
reviewer_identity: sysadmin
profile: prgs-merger
session_id: 39922-9fc6e9bfede9
worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-676
phase: released
candidate_head: 72b18143f8
target_branch: master
target_branch_sha: bee24e2b10
last_activity: 2026-07-12T00:16:29Z
expires_at: 2026-07-12T02:16:29Z
blocker: post-merge-moot

<!-- mcp-review-lease:v1 --> repo: Scaled-Tech-Consulting/Gitea-Tools pr: #676 issue: #675 reviewer_identity: sysadmin profile: prgs-merger session_id: 39922-9fc6e9bfede9 worktree: /Users/jasonwalker/Development/Gitea-Tools/branches/review-pr-676 phase: released candidate_head: 72b18143f83a060de4b38138cf4da940bc543206 target_branch: master target_branch_sha: bee24e2b102dbdc201932d2e5397a7d9e3be5fc5 last_activity: 2026-07-12T00:16:29Z expires_at: 2026-07-12T02:16:29Z blocker: post-merge-moot
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-12T00:19:06.548188+00:00` - last terminal: `approve` on PR #676 - PR state: `closed` (merged=True) - merge_commit_sha: `de27053f741bdc90f29b3748f627fc6b39894ee1` - 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#676