You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Today all commands except /help require write access (CommentCommandService.HELP_TEXT, ManualReviewAuthorizer). Conversational @mention replies on PRs and review threads use the same authorizer (MaintainerReplyService → ManualReviewAuthorizer.isAuthorized), so read-only collaborators cannot ask questions without triggering spend-heavy review commands.
This is an intentional simplicity tradeoff (prevent drive-by AI spend) documented in PLAN.md → Simplicity tradeoffs, but teams with many read-only reviewers (docs, QA, security readers) want a question-only path that does not post findings, suggestions, check runs, or merge-blocking verdicts.
Proposed Solution
Add a read-only ask mode for conversational mentions (not slash commands):
Eligible users: any collaborator with read access (or higher) on the repo — confirmed via GitHub collaborator permission API (same pattern as write check in ManualReviewAuthorizer, but accept read/triage/write/admin).
Trigger: bare @bot … mention on a PR comment or review thread (WebhookController.maybeDispatchConversationalMention / review-thread path) where the body is a question (no command verb like review, describe, etc. — reuse TriggerDetector command detection to reject command-shaped mentions).
Behavior: single conversational reply (MaintainerReplyService) — no check run, no inline findings, no REQUEST_CHANGES, no label mutations. Optional disclosure footer: "Read-only ask — for a full review, a maintainer with write access can run /review."
Spend controls: honor #42 caps and /pause; consider a separate lower token budget config for ask-only replies.
Problem Statement
Today all commands except
/helprequire write access (CommentCommandService.HELP_TEXT,ManualReviewAuthorizer). Conversational@mentionreplies on PRs and review threads use the same authorizer (MaintainerReplyService→ManualReviewAuthorizer.isAuthorized), so read-only collaborators cannot ask questions without triggering spend-heavy review commands.This is an intentional simplicity tradeoff (prevent drive-by AI spend) documented in
PLAN.md→ Simplicity tradeoffs, but teams with many read-only reviewers (docs, QA, security readers) want a question-only path that does not post findings, suggestions, check runs, or merge-blocking verdicts.Proposed Solution
Add a read-only ask mode for conversational mentions (not slash commands):
ManualReviewAuthorizer, but acceptread/triage/write/admin).@bot …mention on a PR comment or review thread (WebhookController.maybeDispatchConversationalMention/ review-thread path) where the body is a question (no command verb likereview,describe, etc. — reuseTriggerDetectorcommand detection to reject command-shaped mentions).MaintainerReplyService) — no check run, no inline findings, no REQUEST_CHANGES, no label mutations. Optional disclosure footer: "Read-only ask — for a full review, a maintainer with write access can run/review."/pause; consider a separate lower token budget config for ask-only replies.Config knob, e.g.
thrillhousebot.review.read-only-ask-enabled(default:falseto preserve current fail-closed behavior).Related issues
Acceptance criteria
read-only-ask-enabled=true/review,/describe, or other write-gated slash commandsAlternatives considered
/askslash command — clearer UX but expands command surface; mention-only keeps parity with "ask the bot a question" flow.Priority
Important — simplicity tradeoff evolution; target v0.5.0 with other configurability work (#322, #324).
Code of Conduct