Archive note(2026-06-05,document-system-governance):本计划已移出
active/,归入deferred/——用户明确暂缓,未来可能重启。不是当前任务入口;当前工作入口见 exec-plans README,重启方式见 deferred/README.md。
⏸ 本轮重构暂缓(见 refactor-closeout.md "暂缓清单")— 更多 Bridge 渠道不在本轮 6 条主线内;保留作未来参考。
Add QQ as a new bridge channel. First version: private chat text + image inbound only. No group/channel, no Markdown, no active messages, no stream preview.
-
types.ts: Addqq: 2000to PLATFORM_LIMITS -
qq-api.ts: QQ HTTP/WS protocol helpers (token, gateway, heartbeat, send) -
qq-adapter.ts: Full adapter (lifecycle, WS, event parsing, auth, image download) -
adapters/index.ts: Registerimport './qq-adapter'
-
src/app/api/settings/qq/route.ts: GET/PUT QQ settings -
src/app/api/settings/qq/verify/route.ts: Verify token + gateway -
src/app/api/bridge/settings/route.ts: Add QQ keys
-
QqBridgeSection.tsx: Settings UI component -
BridgeLayout.tsx: Add QQ sidebar item -
BridgeSection.tsx: Add QQ channel toggle -
i18n/en.ts+i18n/zh.ts: QQ translations
-
bridge-manager.ts: Threadmsg.messageIdthrough all reply paths (deliver, deliverResponse, command replies, error replies, permission broker)
- No
getPreviewCapabilities()— QQ passive reply window is tight - No
channel_offsets— WS-based, not polling - Permission: text
/permfallback only, no buttons msg_seqgeneration in qq-api.ts (auto-increment per reply)- Image: download attachments, convert to FileAttachment, 20MB limit