Skip to content

QQ tracer: independent Bots answer in one group through their own app identities #1156

Closed

Description

@DoodleBears

Accepted delivery scope — 2026-10-13

Human decision authorizes merge and closure of the delivered scope with native own Echo explicitly deferred. All native evidence remains qualified only at its recorded revision; closing this ticket does not claim Echo support, final-head live qualification or completion of QQ proactive/ordinary participation.

Parent

QQ group chat specification #1149

What to build

Bind two independent official QQ apps to two PersonaBots, map their verified group conversations to one local Group Channel, and mention each in the same real QQ group. Each answer must use the responding Bot's own app identity, including when reading a shared source.

This is QQ qualification and mapping through the existing multi-app/shared-source model, not another account ownership redesign. It can be demonstrated with mentions-only intake and does not require ordinary collection first.

Acceptance criteria

  • The existing Bind app and app/conversation lists support the two distinct owning Bots and native app identities. Each app has one owner; a Bot may still bind several apps per platform under the shared model.
  • Both official apps are actually authorized in the same dedicated QQ QA group. Independently authenticate and explicitly map each app-scoped conversation; matching names, text or OpenIDs never automatically merge them.
  • Through the actual Client, sync both verified sources into the selected local Group Channel with useful app/sender attribution and no duplicated content authority or implicit Human DM placement.
  • A real mention of each app reaches the correct Bot's Inbox/Orchestrator and returns an independently inspected reply from that app in the original group.
  • Reading shared Channel content never lends another Bot's app. A responder with no authorized own-app conversation cannot send; two qualified own apps representing the destination produce the shared explicit ambiguity refusal rather than a guessed identity.
  • Deferred by Human acceptance decision: native same-App own Echo correlation/positive loop qualification remains unavailable; receipts and foreign callbacks are not own Echo. Generic correlation/fence regressions pass and no own-text-echo capability is advertised. Decision; official contract inquiry. Native cross-app identity evidence remains distinct.
  • Blocking, unbinding or archiving one owner fences that owner's effects without transferring its identity to the other Bot or erasing accepted source history. Restart retains valid independent ownership.
  • Focused public-seam tests cover trusted mention attribution, ownership/ambiguity, cross-app identity isolation, shared read/send fences, echo loops and lifecycle changes. Do not require QQ tracer: opted-in ordinary group observation and intentional participation #1155's ordinary-message policy to pass these cases.
  • Real QA includes distinguishable native own-app replies and independently inspected receipts plus Client source mapping. Record the sanitized evidence and actual qualified revisions.
  • Provide required Client evidence, bilingual guide/ledger changes, focused checks and any reusable maintained-fork/upstream Provider contribution. This slice adds no QQ private messages or auto group-joining feature.

Blocked by

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 8, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a117bf-865d-72d1-a9c6-88658c59f844 (not a DSH Session)
    • Issue scope: QQ tracer: independent Bots answer in one group through their own app identities #1156 — qualify two independent official QQ apps owned by two PersonaBots in the same dedicated QA group, explicit Channel source mapping, own-app replies and shared-source send isolation.
    • Branch: codex/1156-qq-own-identities
    • Started: 2026-10-08 06:41 UTC
    • State: active

    Prerequisite #1153 is delivered by ready PR #1168 at 40868a6e44293adf3446b683fe32705c84808315, with real QQ/Client acceptance and full Linux CI. This issue remains one separate product PR; implementation reuses the existing multi-app/shared-source owners. #1154 waits for shared #1115 and is not duplicated here.

  4. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 8, 2026
  5. DoodleBears commented on Oct 8, 2026

    @DoodleBears
    ContributorAuthor

    Agent work progress

    • Task: codex/local/01a117bf-865d-72d1-a9c6-88658c59f844
    • State: active; Draft PR #1172, stacked on feat(qq): manage Channel sync and retained reception intervals (#1153) #1168; head 65390020, v1.2 and Project M3: Bot 模式 IA 与聊天外壳(列表/Section/DM/本地消息) #10.
    • Two official apps are independently authorized in the same QA group and explicitly synced through the actual Client into one Group Channel. Human confirmed both 43×47 → 2021 and 47×53 → 2491. Each independently inspected record has one Source, one handled owning Inbox admission, one placement and one original-group own-app accepted receipt, one send attempt; restart retains them.
    • Receiving-app labels/details and activity grouping derive from the canonical Source Event; legacy metadata remains accepted. Four focused files pass 82 tests. Linux CI 37743889583 passes all checks and the full suite. The full Windows run separately failed with EPERM cleanup errors and widespread timeouts, not claimed green.
    • Two-axis review: Standards0, new code defects0. Remaining acceptance: native Echo qualification and final runtime visual evidence. The Provider currently drops bot/non-AT callbacks and does not advertise own-text-echo; actual receipts are not Echo proof. No receive-all permission or ordinary-message admission has been enabled.
    • Next maintained-fork observation work is isolated from qualified revision 37e97bde on codex/1156-qq-echo-observation. It will observe only already-delivered native candidates before filtering, with bounded sanitized diagnostics, and will not claim or enable Echo capability without native proof.
  6. DoodleBears commented on Oct 8, 2026

    @DoodleBears
    ContributorAuthor

    Agent progress — final restart qualification

    Task: codex/local/01a117bf-865d-72d1-a9c6-88658c59f844 · branch codex/1156-qq-own-identities · state: active, partial acceptance.

    Draft PR #1172 now contains final head 3b2be95, stacked on #1168. The Human confirmed the first post-fix, post-restart replies 61×67 → 4087 and 67×71 → 4757. Each was independently audited as exactly one canonical Source Event, one handled owning Bot Inbox admission, one shared Channel placement and one accepted own-app original-group reply, with one send attempt. Both group receivers restored automatically; existing history remains present.

    Final-head Linux verification and package preparation pass. Final Standards and Spec review has no actionable code findings. Windows full-suite success is not claimed.

    Actual Client evidence now includes light/dark final captures, source-detail upper portions and a clearly labeled captured-state MP4 slideshow. Return, Escape and focus restoration pass in both themes. The original comparable light pair renders in GitHub; matched dark/source-detail baseline pairs remain pending.

    Native Echo remains an explicit acceptance gap. The installed bounded observer and its logger exporter were verified using known lifecycle records, but this actual window yielded zero native bot-message candidates. This is limited observation, not proof of platform-wide absence. No Echo capability, receive-all or ordinary-message admission was enabled. Upstream diagnostic contribution #328 is attached to this task and remains Draft; the maintained QA artifact pin is 71fa2a2.

    No PR has been merged and this issue is not complete. The remaining native platform gate must not be replaced with HTTP receipt or synthetic fixture evidence.

  7. 72 remaining items

  8. DoodleBears commented on Oct 12, 2026

    @DoodleBears
    ContributorAuthor

    Continuation — current Client, audio/mention alignment and public delivery

    Task codex/local/01a130f6-e6e0-7093-a412-886b04293da1 remains active. The Human's native own-Echo gate is retained; #1156 remains open.

    Running code: product 6d44dd549ce9cd087c98cf81bc7b923342cb1ee4, including main 9a01a3eff00f8d7e472da5034359a34ca8a6691d, Provider 1eee207c0c23fc98aa26e329f753c1de8b910aff, SDK1.0.4 / DSH0.2.0-rc.2. The checked Provider has418 runtime files / SHA256 155ddb125e790abe45ba6cc0e2d56d27f6e4a669f8ed087b61afd249b320fe6e. A fresh generation83 consistent snapshot passed integrity check before the exact owned Host restart. Both independent bindings, active mappings and previous14/15 accepted Outbox facts survived. Both fresh local DMs received genuine replies.

    The Human-requested UI refinements now use the existing components: QQ voice uses MessageAudio; native mention names/IDs feed the existing inert ExternalMessageText chips. Unknown names remain literal; native IDs are hover details, without changing original text, App ownership or reply authority. Each App's full native marker reply was confirmed at product 28d34471 / Provider1eee207c. The actual current Client6d separately shows both correct chips with matching32-character native IDs.

    Current Client checks:

    • Each owner's App list shows its correct native name, available state and one current conversation; Bind app remains accessible.
    • Shared Group settings show two receiving routes, one per owner, plus three preserved unavailable historical routes. No mapping or identity was transferred/deleted.
    • Keyboard audio play/Home/End passes in dark and light themes. Original download remains3,254-byte SILK with its verified original hash; playback is1.7seconds. Native voice ingestion and the Human-confirmed answer56 remain qualified at6ec097e2, not a new current-version ingestion test.
    • QA1 Window Companion is enabled and walking; QA2 remains disabled. The served Client executable exactly matches its checked build. A native Remote stream socket opened; this is not complete multi-document Companion capacity qualification.

    T3 automation detached after explicitly reporting no Host through preview_open; the current checks used an independent headless Chrome with the same authenticated owned Profile. It started no QQ receiver and changed no App permission. Literal public crops remove private author names/native conversation IDs. The old literal mention Before would expose a private scoped ID, so the visual exception and runnable fallback fixture are recorded explicitly.

    Current evidence record · product PR1505 · Provider PR26 · browser-verified HTML review aid.

    Delivery2edb56d5 only adds public docs/assets after runtime/code6d. The checked0952790f rebuild has identical five runtime artifacts; the subsequent2ed commit changes no package/script/build input. Complete Linux CI2edb56d5 and prerelease preparation pass. Filtered Windows Astro completes494pages; full Windows suite and the Windows slides-inclusive docs chain are not claimed green. Provider source0670ea33 independently passes Linux build, all3,801tests and package verification, with portable artifacts committed1eee207c. Both review axes pass. The13 public PNGs and generated HTML return200/exact bytes; the review aid renders four panels on desktop/narrow without overflow. Actual GitHub PR rendering verifies the audio Before/After and two chip images. Docs-site publication/npm release/production deployment remain separate.

    Remaining: fresh6d original-group reply confirmation, current native image/file qualification and genuine same-App native own Echo. Core Echo facts remain0 and QQ does not declare own-text-echo. Historical lifecycle A–E and their exact revisions remain intact. Receipts, peer observations, UI screenshots, fixtures or PRs do not substitute for native own Echo; no closure or sibling closure is performed.

    Original QA1/QA2 receivers remain guarded stopped and the pair guard remains held by this continuation. The current pair remains active; no credential-store copy, production switch, whole-machine restart or resource release occurred.

  9. DoodleBears commented on Oct 13, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim — Human-directed native acceptance continuation

    • Agent: Codex
    • Task: codex/local/01a1342d-5ce4-7872-9f9e-492a9caee393 (not a DSH Session)
    • Issue scope: continue the linked delivery record; recover and verify the existing isolated paired Profile, complete current original-group/media evidence, and investigate only distinguishing native own-Echo conditions. Keep the Human's native own-Echo closure gate.
    • Branch: codex/1156-native-acceptance-continuation
    • State: active

    The Human explicitly requested continuation of the latest record. This supersedes task codex/local/01a130f6-e6e0-7093-a412-886b04293da1 for this bounded continuation; prior claims, accepted revisions and evidence remain history. Product PR #1505 and maintained Provider PR #26 remain draft. Read-only preflight finds no listener for the previously recorded paired Host, so that historical running-state claim is not carried forward. This task adopts the existing exclusive paired receiver guard before recovery; original receivers must remain stopped and original restoration claims are retained. No App permission change, duplicate receiver, credential-store copy, production cutover, release or sibling closure is included.

  10. DoodleBears commented on Oct 13, 2026

    @DoodleBears
    ContributorAuthor

    Fresh native K qualification and official contract question

    • Task: codex/local/01a1342d-5ce4-7872-9f9e-492a9caee393 · continuation claim · state: active, awaiting a supported native own-Echo condition/contract.
    • Product delivery: PR #1505, exact head 41c3a1c7507a8c13f73d5d9e0c33418566d0916b; code integration f08c35c9 includes main snapshot e68b04b2. Conflicts are resolved. Complete Linux verification and prerelease preparation both pass at that exact head: 530 test files / 4,471 tests pass, with 7 files / 13 tests skipped. This is preparation, not release.
    • Qualified running combination: product 2edb56d539c960b5d5491b5d305c474011401ba7, Provider 1eee207c0c23fc98aa26e329f753c1de8b910aff, SDK1.0.4 / DSH0.2.0-rc.2; 418 Provider runtime files / SHA256 155ddb125e790abe45ba6cc0e2d56d27f6e4a669f8ed087b61afd249b320fe6e. Its five checked runtime artifacts match code6d44dd54. The later main integration has not been deployed or qualified as this native run.

    The previously recorded Host was no longer running. Recovery verified both original receivers stopped, adopted the existing pair guard without changing original restoration claims, and made a new generation83 consistent SQLite snapshot with successful integrity check. Both owning bindings, active shared mappings and all14/15 accepted Outbox facts survived. Both fresh actual Client DMs and both K original-group replies succeeded; the Human confirms each complete marker. Each requested App has one handled owning Inbox, available Source, shared placement and own-App Outbox/native receipt. Foreign-marker Admissions are zero; the two additional K Attention items are independently tied to the local Human DMs.

    QA1's fresh image and explicit quoted-CSV path also pass. The actual Qwen3.8 Flash request/header and native read_image image block precede the correctly named BLUE_68241.png result. Native CSV read/write, import and own-App native file send produce the distinct18-byte total-k.csv with total_quantity / 42. The Human confirms the returned blue square / BLUE /68241 and downloads/verifies the exact CSV contents. The original9,372-byte QQ PNG and33-byte CSV hashes match the actual Client downloads and independent working copies. The initial wrong attachment lookup's resource-unavailable refusal remains recorded; the model reads the correct reference and completes one send.

    The media checkpoint has exactly two QA1 Admissions/Outbox facts and zero new QA2 Admissions/Outbox. Actual Client image enlargement/Escape/focus return and keyboard original-file download pass. The dedicated QA Grant/write authorization is revoked; QA1's original model preset is restored and a new real DM plus native request header verify DeepSeek V4 Flash. Final readback keeps both Apps connected, each with one active mapping, accepted Outbox totals17/16 and Core Echo0.

    The frozen K text boundary has three group frames per App with complete WebSocket→Gateway→callback correspondence, matching20 received/decoded frames per App including heartbeats and zero refusal/suppression/capture failure. Each Bot author is scoped foreign; no self-author or same-App receipt ID/reference match exists. A separate media boundary observes QA1's five Human frames / five callbacks and two send receipts with no Bot frame; QA2 has seven frames / seven callbacks, including two scoped foreign Bot frames. Both media transport counters and phases match, without missing group frames or capture failure. This is bounded evidence, not encrypted-wire capture, a universal platform claim or an own-Echo loop qualification.

    With the Human's explicit authorization, the sanitized official Tencent SDK contract question #8 is now published. It asks for supported same-App reflection, self-author fields and receipt/event correlation. No response or new supported condition is inferred yet. The Human's retained native own-Echo gate remains unchanged.

    Public evidence record · version-bound review aid · Provider PR #26.

    All four new PNGs and the HTML return200/exact committed bytes; all four PNGs render at their correct dimensions in GitHub's PR body. The public HTML shows four panels on1280×800 and390×844, without overflow after layout settles. Earlier screenshots keep their original versions. Local93 integration +13 helper tests, typecheck/lint/format/ledgers/build pass; filtered Windows Astro builds498pages. The first helper-test invocation used the wrong runner; the corrected Vitest invocation passes all13. No full Windows suite or Windows slides-inclusive chain is claimed green. Manual Standards/Spec integration review found no new actionable issue; earlier Provider reviews retain their exact revisions.

    #1156 and both PRs remain open/draft. Native own Echo is still not implemented/advertised. The merged composition needs its own final runtime qualification when a distinguishing native Echo condition is available. No sibling closure, SDK upgrade, App permission change, credential-store copy, npm release, production switch or receiver-resource release occurred. Original receivers remain guarded stopped; the recovered exclusive pair stays active under this continuation.

  11. DoodleBears commented on Oct 13, 2026

    @DoodleBears
    ContributorAuthor

    Human acceptance decision — own Echo deferred

    Agent task: codex/local/01a1342d-5ce4-7872-9f9e-492a9caee393.

    On 2026-10-13 the Human explicitly authorized merging the delivered QQ work, closing the related delivered tickets and continuing to the next ticket despite the unavailable native own-Echo condition. This supersedes the previous retained merge gate; it does not change the observations or establish an Echo capability.

    Accepted scope: independent owning Apps, explicit shared source mapping and identity fences, genuine original-group replies, image understanding/result delivery, independent CSV processing/result delivery, and the previously qualified incoming voice/transcript/text-answer slice. The Human confirmed both complete K markers, the blue image with BLUE/code 68241, and downloaded total-k.csv containing only total_quantity and 42.

    Native same-App own Echo remains unqualified and deferred. Native receipts and foreign-App callbacks are not own Echo. No own-text-echo capability is advertised. Tencent SDK inquiry #8 stays open to establish a supported contract before future implementation/qualification.

    Delivery: product #1505, reviewed head 41c3a1c7507a8c13f73d5d9e0c33418566d0916b, with passing Linux verification/preparation; maintained Provider #26, head 1eee207c0c23fc98aa26e329f753c1de8b910aff, into its declared dependency branch. The latter does not promote the entire Provider stack to its default branch or publish a package.

    Version-bound evidence remains unchanged: fresh native K evidence qualifies recovered product 2edb56d5, not the later undeployed main integration; historical voice understanding retains its own revision. Earlier Windows/capture limits remain documented. No release or production cutover is claimed.

    #1154/#1155 and QQ hub #1149 remain open because their proactive/ordinary-participation work is unfinished.

  12. DoodleBears commented on Oct 13, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — accepted delivery merged

    • Agent: Codex
    • Task: codex/local/01a1342d-5ce4-7872-9f9e-492a9caee393 (not a DSH Session)
    • State: completed for delivery/acceptance and default-branch promotion. Earlier implementation outcomes and their contributors remain part of the record.
    • Product #1505 merged into main at b5285b610393df2531be6c386d15656bb45ca947. Reviewed head 41c3a1c7 passed full Linux verify and package preparation.
    • Maintained Provider #26 merged at b283be11 into its declared dependency branch, not the default branch; no Provider package/release or production cutover is claimed.
    • Human acceptance decision: native own Echo is deferred, not passed. No own-text-echo capability is advertised. Tencent contract inquiry #8 remains open.
    • Evidence and exact revision boundaries: fresh K qualifies recovered runtime 2edb56d5 / Provider 1eee207c / SDK1.0.4 / DSH RC2. The merge does not retroactively qualify the later main composition. Earlier capture/Windows limits remain disclosed.

    Both complete own-App K replies are Human-confirmed; explicit source mapping, current owner attribution, independent identity fences, preserved restart facts and actual Client DMs are documented. The previous own-Echo merge gate is superseded only by the linked Human decision. Earlier claims are concluded for this accepted ticket scope; future Echo work remains deferred under the official inquiry. QQ hub #1149 and proactive/ordinary #1154/#1155 remain open.

  13. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 13, 2026
  14. moved this from Todo to Done in Roadmapon Oct 13, 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