hermes-agent/gateway/platforms/qqbot
teknium1 fd09b2c55e fix(gateway): trust adapter-owned access policy over env default-deny (#34515)
Config-driven platform policies (dm_policy / group_policy / allow_from /
group_allow_from) for WeCom, Weixin, Yuanbao, and QQBot now work without
also setting a PLATFORM_ALLOWED_USERS env var.

These adapters enforce their access policy at intake — a message is dropped
inside the adapter and never dispatched unless it already passed the policy.
The gateway's env-based check (_is_user_authorized) ran afterward and, with
no env allowlist set, fell through to an env-only default-deny — silently
rejecting `dm_policy: open` and config-only allowlists the adapter had
already authorized.

Rather than re-implement each adapter's policy a second time in run.py
(which would drift), adapters that own their gate now declare it via a new
BasePlatformAdapter.enforces_own_access_policy property (default False). The
gateway trusts that flag and skips the env-only default-deny for those
platforms. Env allowlists still take precedence when set.

Also resolves unauthorized DM behavior from config dm_policy so allowlist /
disabled policies drop unauthorized DMs silently instead of leaking pairing
codes, while an explicit pairing policy opts back in.

Co-authored-by: Frowtek <frowte3k@gmail.com>
2026-05-29 04:22:41 -07:00
..
__init__.py feat(qqbot): add inline-keyboard approvals and update prompts 2026-05-07 07:36:30 -07:00
adapter.py fix(gateway): trust adapter-owned access policy over env default-deny (#34515) 2026-05-29 04:22:41 -07:00
chunked_upload.py chore: prune unused imports and duplicate import redefinitions 2026-05-28 22:26:25 -07:00
constants.py refactor(qqbot): split qqbot.py into package & add QR scan-to-configure onboard flow 2026-04-17 15:31:14 -07:00
crypto.py refactor(qqbot): split qqbot.py into package & add QR scan-to-configure onboard flow 2026-04-17 15:31:14 -07:00
keyboards.py feat(qqbot): add inline-keyboard approvals and update prompts 2026-05-07 07:36:30 -07:00
onboard.py refactor(qqbot): migrate qr onboard flow to sync + consolidate into onboard.py 2026-04-22 05:50:21 -07:00
utils.py refactor(qqbot): split qqbot.py into package & add QR scan-to-configure onboard flow 2026-04-17 15:31:14 -07:00