fix(orb): authorize feedback votes against the answer's real command policy - #8744
Conversation
…policy authorizeFeedbackActor called isAuthorizedCommandActor without commandName or policy context, so every feedback vote was evaluated under the unrelated "preflight" default. A PR author authorized for chat (pr_author + hold rate-limit) was then denied with pr_author_not_confirmed_miner, and custom commandAuthorization overrides were silently ignored. Thread the answer's command name, commandAuthorization, commandRateLimitPolicy, and open/non-draft PR state through, matching every other command-auth call site in processors.ts. Closes JSONbored#8682
|
Superagent didn't find any vulnerabilities or security issues in this PR. |
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## main #8744 +/- ##
==========================================
+ Coverage 90.56% 91.19% +0.63%
==========================================
Files 96 97 +1
Lines 22490 25684 +3194
Branches 3884 5019 +1135
==========================================
+ Hits 20367 23423 +3056
- Misses 1945 1994 +49
- Partials 178 267 +89
Flags with carried forward coverage won't be shown. Click here to find out more.
|
|
Tip ✅ LoopOver review result - approve/merge recommendedReview updated: 2026-07-26 05:25:27 UTC
Review summary Nits — 4 non-blocking
Decision drivers
Context & advisory signals — never blocks the verdict
Linked issue satisfactionAddressed Review context
Contributor next steps
Signal definitions
🧪 Chat with LoopOverAsk LoopOver a question about this PR directly in a comment — grounded only in the same cached, public-safe facts shown above, never a new claim.
Full command reference: https://loopover.ai/docs/loopover-commands 🧪 Experimental — new and may change. 🟩 Safe / merged · 🟦 Advisory · 🟨 Held for review · 🟥 Blocked / closed 💰 Earn for open-source contributions like this. Gittensor lets GitHub contributors earn for the work they already do — register to start earning →. Checked by LoopOver, a quiet PR intelligence layer for OSS maintainers.
|
Summary
commandName,commandAuthorization,commandRateLimitPolicy, open/non-draft PR state) intoauthorizeFeedbackActor→isAuthorizedCommandActor, instead of silently using the"preflight"default.chatanswer whencommandRateLimitPolicy: "hold"(previously denied aspr_author_not_confirmed_miner).commandAuthorizationoverrides are now honored for feedback votes on that command.Closes #8682
Scope
type(scope): short summaryConventional Commit format, for examplefix(api): restore profile access checks.CONTRIBUTING.mdand does not reintroduce GitHub Pages, VitePress,site/, orCNAME.Closes #123) — a linked open issue is required for every contributor PR.Validation
git diff --checknpm run actionlint— not applicable (no workflow changes)npm run typecheck— deferred to CIqueue-4.test.ts#8682cases + existing feedback usefulness/owner-feedback regressions (pass locally)npm run test:coverage— deferred to CI (codecov/patchonsrc/**)npm run test:workers— not applicablenpm run build:mcp— not applicablenpm run test:mcp-pack— not applicablenpm run ui:openapi:check— not applicable (no UI/OpenAPI changes)npm run ui:lint— not applicablenpm run ui:typecheck— not applicablenpm run ui:build— not applicablenpm audit --audit-level=moderate— deferred to CIIf any required check was skipped, explain why:
authorizeFeedbackActorwiring and queue unit tests. Full typecheck/coverage/audit left to CI.Safety
UI Evidencesection below with JPG/JPEG or PNG screenshots arranged as organized, captioned, clickable thumbnails. SVG screenshots are not used as review evidence. Review-only screenshots or recordings are not committed to the repository.UI Evidence
Not applicable — no visible UI/frontend/docs/extension changes.
Notes