Author read-only PR inventory must not remain blocked after wrong-role reviewer denial #238

Closed
opened 2026-07-06 10:22:54 -05:00 by jcwalker3 · 2 comments
Owner

During an author session, gitea_list_prs remained blocked even after re-routing back to an allowed author task. The denial message indicated the reviewer queue tool list_prs was blocked after a prior capability denial.

This creates sticky server-side denial state that survives the role/task correction and blocks read-only inventory in an otherwise valid author session.

Acceptance criteria:

  1. Capability denial state is operation-scoped, not sticky across later valid task routes.
  2. A denied reviewer-task attempt does not permanently block author-allowed read-only tools.
  3. Re-running route/capability resolution for an author task clears or supersedes stale denial state.
  4. Tests cover wrong-role reviewer denial followed by valid author read-only PR inventory.
  5. Error output clearly distinguishes current denial from stale prior denial state.
During an author session, `gitea_list_prs` remained blocked even after re-routing back to an allowed author task. The denial message indicated the reviewer queue tool `list_prs` was blocked after a prior capability denial. This creates sticky server-side denial state that survives the role/task correction and blocks read-only inventory in an otherwise valid author session. Acceptance criteria: 1. Capability denial state is operation-scoped, not sticky across later valid task routes. 2. A denied reviewer-task attempt does not permanently block author-allowed read-only tools. 3. Re-running route/capability resolution for an author task clears or supersedes stale denial state. 4. Tests cover wrong-role reviewer denial followed by valid author read-only PR inventory. 5. Error output clearly distinguishes current denial from stale prior denial state.
jcwalker3 added the bugmcpsecurityread-onlyreliability labels 2026-07-06 10:22:58 -05:00
jcwalker3 added the status:in-progress label 2026-07-06 10:25:16 -05:00
Author
Owner

Claimed and started implementation on feat/issue-238-sticky-denial-clear.

Approach: sync_from_capability_result() clears reviewer terminal mode when a later capability resolution succeeds for an allowed author task (e.g. claim_issue). Author gitea_list_prs is no longer permanently blocked after a wrong-role reviewer denial.

Tests: test_list_prs_allowed_after_author_task_clears_stale_denial plus updated denial messaging. All 8 capability-stop tests pass.

Claimed and started implementation on `feat/issue-238-sticky-denial-clear`. **Approach:** `sync_from_capability_result()` clears reviewer terminal mode when a later capability resolution succeeds for an allowed author task (e.g. `claim_issue`). Author `gitea_list_prs` is no longer permanently blocked after a wrong-role reviewer denial. **Tests:** `test_list_prs_allowed_after_author_task_clears_stale_denial` plus updated denial messaging. All 8 capability-stop tests pass.
Author
Owner

PR opened for review — branch feat/issue-238-sticky-denial-clear @ d4e89f7.

Implementation was already complete; this completes the land path via PR. Key tests pass (test_list_prs_allowed_after_author_task_clears_stale_denial, test_list_prs_blocked_after_capability_stop).

PR opened for review — branch `feat/issue-238-sticky-denial-clear` @ `d4e89f7`. Implementation was already complete; this completes the land path via PR. Key tests pass (`test_list_prs_allowed_after_author_task_clears_stale_denial`, `test_list_prs_blocked_after_capability_stop`).
sysadmin removed the status:in-progress label 2026-07-06 11:22:32 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Scaled-Tech-Consulting/Gitea-Tools#238