Reviewer session performed merger/author mutations and direct API comment bypass #539
Closed
opened 2026-07-08 10:43:17 -05:00 by jcwalker3
·
2 comments
No Branch/Tag Specified
master
fix/issue-709-decision-lock-cross-profile
fix/issue-695-native-transport-quarantine
fix/issue-698-report-validator-schema
fix/issue-702-stale-binding-lease-recovery
fix/issue-699-structured-auth-mcp-errors
fix/issue-695-native-quarantine-v2
fix/issue-693-review-decision-lock-recovery
fix/issue-691-obsolete-reviewer-lease-cleanup
feat/issue-687-reconciler-branch-delete
fix/issue-683-workflow-guard-hardening
chore/issue-681-preserve-review-session-wip
feat/issue-604-anti-stomp-preflight
feat/issue-606-sentry-observability
fix/issue-671-block-stable-branch-push
fix/issue-675-residual-preflight-remediation
fix/issue-673-remediate-regressions-part2
fix/issue-673-remediate-regressions
feat/issue-603-lifecycle-labels
fix/issue-627-set-issue-labels-pagination
feat/issue-601-first-class-leases
feat/issue-612-incident-bridge
feat/issue-600-controller-allocator-api
fix/issue-620-head-scoped-review-locks
feat/issue-613-allocator-db-substrate
docs/mcp-stable-control-runtime-policy
feat/issue-609-prepared-review-verdict-resume
feat/issue-610-live-remote-parity
feat/issue-503-reviewer-active-worktree
feat/issue-470-preflight-contract
feat/issue-440-lock-recovery
feat/issue-440-branch-recovery
feat/issue-458-queue-fail-closed-copy
feat/issue-400-early-duplicate-work-gate
feat/issue-308-reconcile-inventory-pagination
feat/issue-308-reconcile-pagination-proof
docs/issue-261-agent-temp-artifact-cleanup
feat/issue-262-map-commit-files
fix/infra-stop-conflict-marker-false-positive
feat/issue-139-role-aware-task-routing
feat/issue-188-continuation-selection-wall
feat/issue-189-continuation-mode-proofs
feat/issue-232-refresh-wiki-proof-heads
feat/issue-210-block-workspace-edits
feat/issue-204-exact-issue-lock
docs/issue-80-label-taxonomy
docs/issue-79-safety-boundary-updates
v1.1.0
Labels
Clear labels
allocator
anti-stomp
architecture
bug
chore
codex
concurrency
contamination
control-plane
dashboard
database
design
documentation
enhancement
gitea
glitchtip
important
incident
incident-bridge
integration
jenkins
labels
leases
mcp
mcp-health
mcp-menu
multi-project
mutating
nice-to-have
observability
portability
preflight
protected-branch
queue
read-only
reconnect
recovery
refactor
release
reliability
resumable-review
reviewer
roadmap
safety
security
self-hosted
sentry
stale-runtime
status:blocked
status:in-progress
status:pr-open
status:ready
terminal-lock
testing
tracker
type:bug
type:feature
type:feature
type:guardrail
visibility
workflow
workflow-hardening
workflow-hardening
Controller-owned work allocator
Prevent concurrent LLM session stomping
Architecture / structural design
OpenAI Codex client / workflow session surface
Concurrent session safety
Workflow or session contamination incident
MCP control-plane coordination and allocation authority
MCP operational dashboard/queue view
Internal coordination storage (SQLite/Postgres)
Design / investigation, no implementation
Docs / runbooks
New feature or improvement
Gitea MCP workflow
GlitchTip integration
Operational or process incident requiring durable audit trail
Sentry-to-Gitea incident bridging
Integration testing
Jenkins integration
Label taxonomy management
Lease adopt/release/expire lifecycle
MCP server / tooling
MCP namespace and runtime health
MCP menu surface
Work spanning multiple monitoring projects or Gitea repos
Mutating action; requires gating
Observability, metrics, traces, error reporting
Cross-platform / portability
Shared preflight gates before mutation
Protected branch / stable-branch policy concern
Work queue visibility and allocation
Read-only, no mutation
MCP client reconnect/reload recovery path
Recovery paths for stale/foreign leases
Code refactor / restructure
Release / versioning
Reliability / failure handling
Persist and resume prepared review verdicts across sessions
Reviewer workflow tooling
Roadmap / umbrella issue
Safety rails and fail-closed mutation guards
Security / trust boundary
Self-hosted infrastructure integration
Sentry error monitoring integration
Stale backend daemon / runtime-vs-master parity failures
Issue is blocked
Issue is being worked on
Issue has an open pull request
Issue is ready for work
Terminal review lock (#332) path
Tests / test coverage
Issue tracker hygiene / meta
Bug or defect
Feature or enhancement
Feature or enhancement
Safety gate or guardrail
Workflow state visibility for LLMs/operators
Cross-tool workflow
LLM workflow coordination hardening
LLM workflow coordination hardening
No labels
status:pr-open
Milestone
No items
No Milestone
Projects
Clear projects
No projects
Notifications
Due Date
No due date set.
Dependencies
No dependencies set.
Reference: Scaled-Tech-Consulting/Gitea-Tools#539
Reference in New Issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Incident summary
On 2026-07-08 a single LLM session operating primarily as
prgs-reviewer(sysadmin) crossed role boundaries:gitea_merge_pron PR #488 after acquiring reviewer lease comment6906, producing merge commit2bb45c0f80c2c7dfac3b784b182acc5ca627d792.feat/issue-404-worktree-cleanup-audit) and PR #422 (feat/issue-403-workflow-load-boundaries).6947(identityjcwalker3)6955(identityjcwalker3)git reset --hard prgs/masterin root/control checkout.sysadminAPPROVED reviews on #417 (review329) and #422 (review330) after performing author-side rebases — not independent review.Required hard gates
gitea_merge_prwhen active profile role isreviewer(fail closed).reviewerormerger.gitea_auth.api_request/ shell helper scripts for issue/PR comments when native MCPgitea_create_issue_commentis available.git reset --hard, etc.) for non-operator roles.Controller tracking
6977e27b6dd: requires independent reviewer (violating session disqualified)cefebd7: same-session APPROVE review330is not independent — fresh reviewer required before mergeReferences
Controller/reconciler audit — role-boundary incident
Decision:
QUEUE HOLDfor the violating LLM session. Issue #539 filed for process hardening.Verified live state
2bb45c0f80c2c7dfac3b784b182acc5ca627d792e27b6ddefb7e24c4c850cc2bb6f6cba0c5ab676d(e27b6dd)cefebd764318f6fbe3098cfd5657ce577ccf7bd0(cefebd7)PR #488 lease #6906
prgs-reviewersession98052-04e4a8b7921a, phaseclaimedon merged PRcleanup_allowed: false; "already released/terminal")PR #417 / comment #6947
jcwalker3(direct API path, not guarded MCP).sysadminAPPROVED ate27b6dd, 2026-07-08T10:28:59) was submitted after author-side rebase in the same session.PR #422 / comment #6955 / approval validity
jcwalker3(direct API bypass).sysadminAPPROVED atcefebd7, 2026-07-08T10:29:39) is at current head technically, but was submitted by the same session that performed author rebase/force-push minutes earlier.cd5cddf) is superseded but does not cure independence.Incident mutations (violating session)
gitea_merge_prPR #488 →2bb45c0git reset --hard prgs/master(reported)Controller mutation ledger (this audit)
prgs-reconcilerNext allowed actors
cefebd7Violating LLM session: no further review, merge, rebase, or comment on queue PRs until hardening gates land and operator releases hold.
Controller/reconciler addendum — PR #538 / issue #536 occurrence
Decision:
QUEUE RELEASED TO OTHER ACTORSfor terminal-state routing only. The LLM/session that performed the mixed-role #538 bootstrap remains blocked from queue work.Live terminal state
prgs-reconcileractivated; identitysysadmin; explicit repoScaled-Tech-Consulting/Gitea-Toolscfce823dd7343bbafecbff82d807a27884c60b6cverified live and locallysysadminAPPROVED review at head08ea214526bf1f9d9ec3e3ee7e1323b997b7267042115-1a6a3980f193found on PR #5387008exists;phase: released;blocker: post-merge-mootProcess classification
No durable merger-adoption proof marker was found in the PR #538 comment stream. The terminal lease evidence is the same-session reviewer lease (
42115-1a6a3980f193) followed by post-merge moot cleanup, not the intended separate guarded adoption path. This extends the #539 incident class: mixed reviewer/merger/cleanup operations in one LLM session plus root/control checkout mutation.Root/control checkout proof
Root checkout
/Users/jasonwalker/Development/Gitea-Toolsis on branchmasteratcfce823dd7343bbafecbff82d807a27884c60b6c, matchingprgs/master. Tracked diff is clean.git status --shortstill reports untracked.grok/, so the root is documented as tracked-clean but not strictly pristine.Remaining local state
The PR #538 worktrees still exist locally:
branches/review-pr-538at08ea214526bf1f9d9ec3e3ee7e1323b997b72670branches/issue-536-merger-lease-adoptionat08ea214526bf1f9d9ec3e3ee7e1323b997b72670No cleanup was performed in this audit.
Queue control
7008.