Skip to content

QQ tracer: incoming voice playback and understanding with original-group text answers #1159

Closed

Description

@DoodleBears

v1.3 release reconciliation — 2026-10-11

Target release: v1.3. The implementation/evidence recorded below was merged into the existing #1156 QQ feature branch, not main. Added native blocker #1156 for default-branch stack promotion and current-product qualification; preserve the fulfilled #1153 foundation and all existing owner/evidence records. Do not reimplement the accepted media slice or close it merely because the child PR was merged to a dependency branch. This is a release/integration dependency, not a new claim or authorization to merge.


Parent

QQ group chat specification #1149

What to build

Send an eligible spoken request in a QQ group, play its authorized original voice on demand in the local Channel where the format is supported, and have the Bot understand the request and answer in text through its own app in the same group.

Prefer a demonstrably available platform transcript. Otherwise qualify a supported actual model/speech-recognition capability through the existing owning seams within this runnable slice. Do not create a speculative ASR foundation issue or count audio transport as understanding.

Acceptance criteria

  • Real incoming voice preserves trusted native message/group/app association and the existing eligible mention/conversation scope. Recognition and playback do not widen mentions-only collection; ordinary unmentioned voice requires an already opted-in route.
  • The Channel offers source-bound original audio and on-demand, non-autoplay playback where the codec is supported. Private resources and credentials stay behind checked Provider operations and canonical media authority.
  • Distinguish verified platform transcript, separately recognized output and unavailable recognition with actual provenance. A retrieved audio file is not a transcript and no text is invented when recognition is unavailable.
  • Select and exercise an actual supported recognition/model path for the synthetic spoken request. Its content reaches the existing Orchestrator, and an independently inspected own-app text response in the original QQ group demonstrates correct understanding.
  • The model cannot claim audio understanding merely from metadata or a fixture transcript. If a new recognition boundary is genuinely necessary, record its architecture choice, ownership and lifecycle and integrate the living architecture in this slice.
  • Source acquisition, playback, recognition and text output apply existing authorization, revocation, cancellation and duration/size budgets. Unsupported codecs, expired resources, missing transcript, unavailable recognition and interrupted acquisition have clear states.
  • Human playback does not mark Bot Observation or create wake/admission. Transcript/derived media facts retain original message association through canonical persistence rather than a separate voice store.
  • Public-contract regressions cover voice provenance, scope, actual content handoff, refusal/unsupported states, authority loss and checked original-group text results; native unknown sends are never auto-retried.
  • Run real QQ/Client/model-recognition acceptance with synthetic speech and independently inspected text answer. Record selected recognition capability, SDK/Provider/DSH/product revisions and sanitized evidence.
  • Include usable Client and keyboard/focus evidence, bilingual guide/ledger updates and checks; contribute reusable QQ voice intake/transcript/playback contracts through the maintained fork and upstream.
  • No outgoing native voice reply, automatic speech synthesis or video is implemented. If understanding cannot be qualified, expose the cause and retain this required slice as unfinished rather than closing it on playback alone.

Blocked by

Existing cross-provider playback/provenance patterns are prior art. Other providers' unfinished audio presentation tickets and QQ image/file slices do not gate this path.

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 eligible incoming voice, source-bound on-demand playback, verified platform transcript or explicit unavailable state, actual understanding and checked own-app original-group text answer. No outgoing voice, synthetic transcript or widening ordinary-message reception.
    • Branch: codex/1159-qq-voice
    • Started: 2026-10-08 12:40 UTC
    • State: active

    Continue from the Human-approved #1193 merge on the existing QQ stack. Use the already approved public checked dsh-im → canonical Source Event / Bot Inbox → existing Orchestrator → original-group receipt test boundary and real QQ/Client acceptance. Existing media/Grant/attachment owners remain authoritative; SDK optional voice/ASR fields require real qualification.

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

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

    @DoodleBears
    ContributorAuthor

    #1159 implementation complete; PR ready for review

    Claim: #1159 (comment)
    Product PR: #1201 — final head 1e758df5, base codex/1156-qq-own-identities; this is a stacked implementation, not a main/release merge.
    Upstream contribution: xmanrui/dsh-im#334 (draft, depends on #332; modern Host live qualification remains separate).

    Real qualification, 2026-10-08:

    • Explicit native QQ voice quote, platform ASR → one canonical Source / Inbox / Channel → existing native model bridge_read and bridge_reply → own-app original-group 24, native provider receipt; Human confirmed receiving 24.
    • Original SILK 12,775 bytes. Actual Client download is byte-identical; independent 6.4-second WAV is bounded, prepares without autoplay, and keyboard Space played through to ended. Downloads/playback created no further Inbox/model work.
    • Maintained runtime pin 60be59adcc17a40ff78049f51295205657fd54bc, 409 runtime files, SHA-256 a940e150bfb3f807b6fec0c7efdc913320b3202aa4cbe64e73356607cd5cc6e8; installed artifact verified on DSH 0.2.0-rc.1.
    • Light/dark prior-entry-point/after screenshots at 1559 × 865, prepare focus state, actual silent 8.88-second sampled keyboard recording and both PR Lens themes are published in the PR. GitHub renders the 5 body images and native video; all assets read successfully.
    • Standards and Spec reviews passed against approved fixed baselines (product 561f42d0, Provider 55b45284) with focused final-delta checks. Shared player label and modern registry port findings were resolved.
    • Final GitHub lint/format/typecheck/test/build/docs passed. Maintained QQ 181/181; modern QQ 192/192; new Client voice 5/5 and canonical voice 3/3. Existing Windows media/CSV tests passed 11/11 at a 60-second invocation budget; default 15-second load-related timeouts remain recorded.

    Scope: one maintained application and native quoted-ASR/SILK path. Missing ASR, other codecs and the modern Host are not real-qualified. No outgoing voice/TTS or automatic ASR credentials. Raw audio was kept private.

    Sibling #1154 remains dependent on shared #1115 and Provider release #1111; #1155 remains dependent on #1154. Neither is marked complete.

  8. DoodleBears commented on Oct 8, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome — merged

  9. modified the milestones: v1.2, v1.3 on Oct 11, 2026
  10. 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.

    The already accepted incoming voice implementation (#1201) is now promoted to main. Actual platform-transcript understanding and original-group text responses retain their separately recorded historical revisions (24 at the original slice, 56 at 6ec097e). Actual original SILK download and bounded converted keyboard playback remain verified; the later shared audio-card UI has separate evidence. Fresh K image/file/text tests are not relabelled as new voice understanding. No outgoing voice/TTS is included.

  11. 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 agentready-for-humanRequires human implementationscope:tracerHuman-testable implementation slice

    Type

    No type

    Projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions