Gate QQBot streaming command auth [AI]#76375
Conversation
|
Codex review: needs changes before merge. Summary Reproducibility: yes. from source. Current main documents Next step before merge Security Review findings
Review detailsBest possible solution: Keep the latest auth hardening, add one Unreleased QQBot fix/security changelog entry, then have a maintainer review and land the PR. Do we have a high-confidence way to reproduce the issue? Yes, from source. Current main documents Is this the best way to solve the issue? Yes, functionally. Reusing Full review comments:
Overall correctness: patch is correct Acceptance criteria:
What I checked:
Likely related people:
Remaining risk / open question:
Codex review notes: model gpt-5.5, reasoning high; reviewed against be41b8cbc73c. |
|
Not applicable; changelog is handled at merge time. Quoted comment from @clawsweeper:
Re-review progress:
|
* fix: gate QQBot streaming command * addressing codex review * addressing review-skill * addressing review-skill * addressing codex review * addressing claude review * docs: add changelog entry for PR merge
* fix: gate QQBot streaming command * addressing codex review * addressing review-skill * addressing review-skill * addressing codex review * addressing claude review * docs: add changelog entry for PR merge
* fix: gate QQBot streaming command * addressing codex review * addressing review-skill * addressing review-skill * addressing codex review * addressing claude review * docs: add changelog entry for PR merge
* fix: gate QQBot streaming command * addressing codex review * addressing review-skill * addressing review-skill * addressing codex review * addressing claude review * docs: add changelog entry for PR merge
* fix: gate QQBot streaming command * addressing codex review * addressing review-skill * addressing review-skill * addressing codex review * addressing claude review * docs: add changelog entry for PR merge
Summary
/bot-streamingwas private-chat-only but was not routed through command authorization.requireAuth: trueto/bot-streamingand regression coverage for blocked wildcard access plus allowed explicit access.Change Type (select all)
Scope (select all touched areas)
Linked Issue/PR
Root Cause (if applicable)
/bot-streamingomittedrequireAuth, so the dispatcher’s existing command authorization guard did not run before the config-writing handler.Regression Test Plan (if applicable)
extensions/qqbot/src/engine/commands/slash-commands-impl.test.ts/bot-streaming ondoes not write config whenallowFromis wildcard andcommandAuthorizedis false; the same command still writes config for an explicitly authorized sender.User-visible / Behavior Changes
Unauthorized QQBot private-chat senders who can otherwise chat through open or wildcard DM policy can no longer toggle streaming with
/bot-streaming. Explicitly authorized senders can still use the command.Diagram (if applicable)
N/A
Security Impact (required)
Yes/No) NoYes/No) NoYes/No) NoYes/No) YesYes/No) NoYes, explain risk + mitigation: The command surface is narrowed to command-authorized senders using the existing QQBot authorization guard.Repro + Verification
Environment
channels.qqbot.allowFromwildcard or explicit sender list, withchannels.qqbot.streamingdisabled before command executionSteps
/bot-streaming onfrom a private-chat sender with wildcardallowFromandcommandAuthorized: false./bot-streaming onfrom a private-chat sender with explicitallowFromandcommandAuthorized: true.Expected
replaceConfigFile.Actual
Evidence
Attach at least one:
Current evidence: Regression coverage was added for the dispatcher behavior, and targeted formatting passed for the touched files.
Human Verification (required)
What you personally verified (not just CI), and how:
/bot-streamingis now auth-gated and the tests cover unauthorized wildcard no-write plus authorized explicit write.accounts.default.streamingwhen present.Review Conversations
If a bot review conversation is addressed by this PR, resolve that conversation yourself. Do not leave bot review conversation cleanup for maintainers.
Compatibility / Migration
Yes/No) YesYes/No) NoYes/No) NoRisks and Mitigations
/bot-streamingwithout explicit command authorization will now receive a permission response.allowFromcommand authorization list.