Skip to content

WeChat tracer: native voice transcript intake and original-DM reply #905

Closed

Description

@DoodleBears

Parent

#902 — Personal WeChat capability alignment. IM coordination reference: #48.

What to build

When WeChat supplies text for a voice message, the PersonaBot receives that transcript with its voice provenance and can reply in the same DM.

Scope: personal WeChat/iLink, explicitly authorized paired-owner DM. Enterprise WeChat/WeCom is excluded.

Acceptance criteria

  • Accept a valid owner voice item carrying a platform-provided transcript. Preserve the original voice item/source identity, available duration and transcript provenance rather than claiming BotHarness performed transcription.
  • Render the transcript legibly in Inbox/source details with an explicit voice-message indication; do not invent an audio URL or playback affordance when audio has not been qualified.
  • Feed the supplied transcript through canonical admission and the existing Wake/Orchestrator path, retaining deduplication, durable acceptance and the original authorized reply route.
  • A voice item without a transcript must not appear as an empty successful transcription; clearly distinguish this from the separately scoped raw-audio capability.
  • Real E2E: Human sends a voice message whose native event includes a transcript and a unique phrase; Bot responds based on that transcript in the original WeChat DM. Preserve original source and reply screenshots.

Blocked by

None — can start immediately. Completed prerequisite: #878 / PR #894.

Delivery and evidence

  • Deliver one production-shaped tracer through the qualified Provider, canonical Messaging authority, applicable PersonaBot/Channel/Inbox behavior, and an operable Client path. Reuse the existing exclusive Consumer; do not create standalone dsh-im Sessions or a parallel message store.
  • Keep the original external author, timestamp, lossless native message ID, Source Event ID, and trusted reply route. Every external send uses the acting Bot's own bound identity and current Grant; platform credentials, context tokens and media keys remain Provider-private.
  • Qualify the changed Provider capability on the maintained fork and pin the verified artifact. Submit reusable Provider changes upstream where appropriate, without making upstream merge a release prerequisite.
  • Complete fresh real WeChat E2E with the Human controlling WeChat. Include observable success and the relevant refusal/recovery behavior, focused regression coverage, and packaged-product verification. A model's claim, HTTP success, or client acknowledgement alone is not delivery/read proof.
  • Preserve real screenshots or recording during acceptance; embed GitHub-renderable evidence in the PR, including before/after and applicable light/dark states for visible UI changes. Do not publish credentials or unrelated chat contents.
  • Update the illustrated English and Chinese WeChat connection guide and reusable IM integration guidance with verified behavior and platform limitations; edit canonical source docs, not generated site content.
  • Create one issue-linked PR, then pause for Human QA. Merge and deployment require their own Human authorization. Issue closure requires the accepted behavior, not only documentation or a capability flag.

Activity

  1. added this to the v1.1 milestone on Oct 5, 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 5, 2026
  3. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent work claim

    • Agent: Codex
    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95 (not a DSH Session)
    • Issue scope: qualified personal WeChat paired-owner native voice transcript intake, explicit voice provenance in canonical Source Event/Inbox, existing Wake/Orchestrator and own-identity text reply in the original DM. No raw-audio playback, ASR, other contacts/groups or WeCom.
    • Branch: codex/905-wechat-voice-transcript
    • Started: 2026-10-06 07:05 UTC
    • State: active
    • Baseline: latest main after accepted PR feat(wechat): checked image intake, preview and native image replies #946; Human continues to control the WeChat client. One issue-linked PR with real E2E media and bilingual guide updates, then pause for Human QA.
  4. added
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 6, 2026
  5. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

    • Task: codex/local/01a0f14c-5338-7020-853b-0fe54b87aa95
    • State: paused for Human QA
    • PR: WeChat: receive platform voice transcripts and reply in the original DM #1005; head 332ae0fcd1b0aa337933abf75e6ccd14404f7476
    • Delivered: checked WeChat platform transcript intake, canonical Source/Inbox voice provenance, native UI label and own-identity original-DM reply. Human confirmed “蓝色灯塔37”; the original Human screenshot is attached unchanged to the PR only. Light/dark source screenshots and separate data-flow diagrams are attached.
    • Validation: latest-main full regression 2,804 passed / 9 skipped; Provider 3,583 passed; focused integration, lint, format, typecheck, build, packaging and bilingual docs passed. Earlier no-reply frozen QA role and test timeouts remain documented.
    • Remaining: Human QA and exact-head CI. No merge/deployment performed; sibling issues remain pending.
  6. removed
    agent:activeOne or more coding-agent tasks currently claim this issue; see claim comments for task IDs
    on Oct 6, 2026
  7. DoodleBears commented on Oct 6, 2026

    @DoodleBears
    ContributorAuthor

    Agent work outcome

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