Skip to content

QQ tracer: bind an official app, receive a mention and reply in the original group #1152

Closed

Description

@DoodleBears

Parent

QQ group chat specification #1149

What to build

Connect one already configured official QQ app through the Provider-owned setup, bind it to one PersonaBot in the existing Bind app experience, mention it in one ordinary QQ group, and receive one text answer from that Bot's own app in that same group. This is the first complete QQ vertical slice, including actual account/transport qualification and usable Client state.

Reuse the completed shared one-step binding, conversation entry and app ownership model. Extend QQ's public checked dsh-im Service contracts as needed; keep SDKs, credentials and lifecycle in the Provider. Provider scaffolding or an enum without the real reply does not complete this ticket.

Acceptance criteria

  • The Client offers QQ in the existing app-binding experience, lists only eligible unowned connected apps, identifies official QQ app authorization clearly, and shows saved configuration separately from actual receiver state and qualified group-mention support.
  • Provider-owned authorization and credentials remain usable without a BotHarness credential store. If setup needs a missing public contract, contribute it within this behavior rather than introduce a parallel setup screen. Inline creation expansion is not a separate gate when an app is already connected.
  • A dedicated real QQ QA group receives a trusted mention of the bound app. Its app-scoped group/sender addresses and native message identity remain attributable; guilds, private messages and text-only guesses of mentions are not accepted as this proof.
  • One exclusive account Consumer commits a canonical Source Event, conversation entry and Bot Inbox admission before acceptance acknowledgement. The existing Orchestrator executes the actual model and produces one checked original-group own-app reply with an independently inspected native receipt.
  • The first eligible mention works without mandatory saved-target/per-group reception onboarding, following the shared default-traffic and new-conversation policy. Blocked/held conversations and bounded admission follow their actual shared semantics.
  • Default collection is mentions-only. No ordinary group-message collection, implicit Human DM placement or Provider standalone Session execution happens alongside it.
  • Focused public-contract regressions cover trusted identity and route fences, account ownership, canonical commit and same-account duplicate delivery, admission failure, archived/paused/unbound state and unknown send outcomes. Other qualified providers keep working.
  • Receiver disconnect, reconnect, cold start and disposal release the owning resources, prevent two active Consumers and reject stale lease callbacks. Unknown started sends are retained without automatic retry or proactive conversion.
  • Native reply deadlines/counts and relevant rate refusals are mapped truthfully. Unavailable official group permissions or actual transport support are visible qualification failures, not a switch to a personal account or a claim that QQ works.
  • Use an isolated supported DSH Profile and immutable qualified Provider input/product artifact. Record actual Host, Client, SDK, Provider and DSH revisions plus sanitized lifecycle diagnostics and the runnable real QQ verification path.
  • Provide real Client evidence, affected English/Chinese connection guidance, required checks and release-ledger updates for the user-visible change. Reusable Provider changes are submitted to the maintained fork and upstream; upstream merge is not required to qualify the fork.
  • Obtain and record Human feedback on this first runnable slice before closing it and expanding sibling QQ slices. This ticket proves mention/text support only; the rest of Spec: QQ group chat through dsh-im with own Bot identities and media understanding #1149 stays unfinished.

Blocked by

None — can start immediately. Reuse completed shared binding/conversation/multiplicity work #1108, #1109 and #1110; neither the open parent #1107 nor optional inline creation #1111 is a blanket blocker for binding a connected app.

Activity

  1. added this to the v1.2 milestone on Oct 7, 2026
  2. added
    ready-for-agentFully specified, ready for an AFK agent
    area:fullstackEnd-to-end Host and Client implementation
    feature:messagingMessaging module and external providers
    scope:tracerHuman-testable implementation slice
    on Oct 7, 2026
  3. DoodleBears commented on Oct 7, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a117bf-865d-72d1-a9c6-88658c59f844 (not a DSH Session)
    • Issue scope: one official QQ app, one group mention, canonical Bot Inbox and original-group own-app text reply, with real Client/model/platform qualification and first-slice feedback
    • Branch: codex/1152-qq-mentioned-text
    • Started: 2026-10-07 20:13 UTC
    • State: active
  4. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 7, 2026
  5. 4 remaining items

  6. DoodleBears commented on Oct 7, 2026

    @DoodleBears
    ContributorAuthor

    Agent-Task: codex/local/01a117bf-865d-72d1-a9c6-88658c59f844
    Claim: #1152 (comment)
    Status: active — implementation and draft review artifacts published; real first-slice acceptance remains pending.

    • Product PR: feat(qq): bind official apps for checked group text replies #1163, milestone v1.2, one product PR for this issue.
    • Required upstream contribution: feat(qq): expose exclusive checked group text consumer xmanrui/dsh-im#324, extracted against upstream 4.37.0 while preserving existing mention/approval paths.
    • Maintained fork pin: 37e97bde9539e66af850b7329b95f630f107f23d, 404 runtime files, SHA256 52e4b96d10a006a8844252ffb2b250e0c200f6c7eb24284774b42e25d0c5b9d6.
    • Product focused coverage: 34 tests pass. Lint/format/typecheck/build, ledger/ADR and 408-page docs checks pass. Full Windows suite has failures; representative pre-existing path/fsync/cleanup families reproduced at confirmed base 561f42d0 (23 failures/7 passes across three files). The entire failure set is not classified.
    • Standards and Spec reviews complete; both pre-dispatch cancellation findings fixed and regression-tested through the actual public Service. Upstream focused coverage: 51 pass; maintained fork QQ/actual-SDK coverage: 9 pass. Full upstream 3,934 pass/35 fail/7 skip; representative three failure families reproduce at upstream base.
    • Official application authorized, joined the test group and bound to QQ 验收 Bot; local model DM passed. Real before/after screenshots and PR Lens diagrams are published. Actual group intake, native reply receipt, independent Human reply confirmation and final-build screenshots/video remain pending; Chrome capture currently cannot attach to the live page. Do not close this issue or broaden sibling slices until first-slice Human feedback.
  7. DoodleBears commented on Oct 7, 2026

    @DoodleBears
    ContributorAuthor

    QQ slice #1152 CI follow-up — Agent-Task codex/local/01a117bf-865d-72d1-a9c6-88658c59f844.

    Initial product Linux CI passed 3,117 tests and failed only the existing product-guide migration regression because the new QQ guide lacked .md redirects. Fixed in 113c71b6; all 5 routing regressions pass locally. The new two product CI runs are pending.

    Upstream Linux CI passed 3,977 tests and failed one unchanged Feishu SDK 100ms wait timing assertion (request had not reached its loopback server before timeout). Its entire 3-test file passes independently at original upstream base 0dbc2d46. Windows workspace CI passes. GitHub refused this contributor's rerun request because the repository requires admin rights; a maintainer can rerun the failed job. No unrelated Feishu runtime or test change is included in the QQ PR.

    Final QA Profile verifies fork 37e97bde, 404 runtime files and the committed SHA256. Host is running on 31852; official authorization and binding are retained. Real QQ input/reply/receipt, Human feedback and final-build recording remain pending. Both PRs stay draft.

  8. DoodleBears commented on Oct 7, 2026

    @DoodleBears
    ContributorAuthor

    Product PR #1163 at 113c71b6 has green main CI and exact package preparation. Linux full regression: 3,118 passed, 9 skipped, 0 failed. QQ guide routing is fixed and the developer Profile independently verifies final fork 37e97bde.

    The existing claim remains active. Both PRs stay draft pending actual QQ group input, model reply, native receipt, independent Human confirmation and final-build screenshots/video. Upstream #324 still has one unchanged Feishu 100ms timing-test failure (3,977 tests pass); this contributor has no upstream admin right to rerun it.

    Agent-Task: codex/local/01a117bf-865d-72d1-a9c6-88658c59f844

  9. DoodleBears commented on Oct 7, 2026

    @DoodleBears
    ContributorAuthor

    本任务 claim 继续保持 active;第一片尚未完成真实 QQ 收发验收。

    • 产品 PR #1163 最新提交 277257a3 的全部 CI 已通过:381 个测试文件通过、5 个跳过;3,118 项测试通过、9 项跳过。lint、format、typecheck、构建、文档和包准备检查通过。
    • 按 Human 确认的基线 561f42d0 / 55b45284 完成 Standards 与 Spec 审查,修正后的 QQ 群聊空状态指引也通过两路复审。真实 Client 的前后截图与 15.57 秒逐帧操作录制已加入 PR;GitHub 图片和视频实际加载成功。录制压缩空闲停顿,仅证明应用绑定、群聊指引和 Inbox 入口。
    • 本地模型私聊、官方应用授权和绑定可用。只读核对当前仍无 QQ Source Event / Outbox 回执;等待群 1125565676 中 @DeepSeekBot QQ QA 的测试输入“请计算 17×23,并只回复结果”,再完成原群回复、回执和 Human 反馈。此前不扩展 QQ tracer: manage conversations, Channel sync and truthful reconnect history #1153–QQ tracer: incoming voice playback and understanding with original-group text answers #1159。

    上游贡献保持 draft:dsh-im #324。其 Linux CI 仅有未修改的 Feishu SDK 100ms 时序测试失败;该基线测试独立运行通过,QQ 覆盖通过。当前账号没有上游重跑权限,已记录供维护者重跑。

    Agent-Task: codex/local/01a117bf-865d-72d1-a9c6-88658c59f844

  10. DoodleBears commented on Oct 8, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

  11. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 8, 2026
  12. added a commit that references this issue on Oct 9, 2026
    829cc67
  13. DoodleBears commented on Oct 9, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Task: codex/local/01a117bf-865d-72d1-a9c6-88658c59f844
    • State: completed
    • Product PR #1163 merged after explicit Human authorization; main commit 829cc671.
    • Final Linux verification: 3,567 tests passed, 9 skipped; lint, format, typecheck, build, docs and tracked-artifact checks passed.
    • Standards and Spec follow-ups closed actionable integration findings. Existing real QQ acceptance and visual evidence remain revision-qualified in the PR.
    • Remaining: none within this product slice; the parent Spec: QQ group chat through dsh-im with own Bot identities and media understanding #1149 and remaining sibling issues are still unfinished.
  14. moved this from Todo to Done in Roadmapon Oct 11, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    area:fullstackEnd-to-end Host and Client implementationfeature:messagingMessaging module and external providersready-for-agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation slice

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions