Repository navigation
Open
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:channelChannel chat, timeline, composer, and navigationChannel chat, timeline, composer, and navigationfeature:messagingMessaging module and external providersMessaging module and external providersready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Milestone
Description
Parent
#1020 — Authorized Bridge media in Channel history. Coordination: #48.
What to build
Human uses an inline voice player, platform-provided transcript where present and original download for real WeChat owner-DM voice messages retained in Channel history.
Acceptance criteria
- Reuse merged feat(wechat): retain original voice and prepare bounded audio playback #1015 / completed WeChat tracer: checked raw voice access and supported audio processing #906 original-voice retention and bounded playback preparation. Do not introduce a second audio conversion lifecycle or provider-private credential store.
- Click prepares supported playback, including qualified WAV preparation where applicable. Preserve original audio download, actual duration and existing platform transcription provenance.
- Prove playback with and without a platform transcript, preparation failure/retry, refresh/restart and access revocation. Bot understanding and voice processing policy remain unchanged.
- Deliver one production-shaped path through qualified Provider intake, canonical Source Event, realtime and historical Channel projection, authorized Host media access and operable bubble UI. Do not start a competing receiver or a second message store.
- Preserve external author, source-name button/Modal, message boundary and known item ordering. Multiple and mixed media remain one native message; unknown ordering/metadata is honest. Provider URLs, tokens, AES keys and credentials remain private.
- Human Channel access resolves trusted media authorization without choosing or borrowing a Bot identity. Recheck placement, source/media identity, current Channel access and independent valid source authorization during acquisition and serving.
- Visible-image previews acquire on visibility; audio/video and file actions acquire on explicit action. Reuse existing Host Attachment management; keep the default 25 MiB bound, cancellation and bounded concurrency. Display loading, too-large, unsupported, failure and retry states honestly.
- After acquisition, refresh and Host restart retain authorized history access. Ordinary Bridge reception stop allows acquired-media viewing but no new acquisition through that stopped path. Unbind/media revocation prevents acquisition and serving through that authorization; independent valid paths remain independent. Do not resurrect Content Purge content.
- Human viewing creates no Bot Observation, model-context change, Inbox admission, wake or external send authority. Inbox-only creates no Channel history. Bot understanding and own-identity permissions remain unchanged.
- Complete focused observable regression coverage and real platform/media E2E: receive a uniquely identifiable native message, inspect actual bytes/preview/play/download as applicable, refresh/restart, and demonstrate relevant stop/revoke/error recovery. Mock payloads, flags and HTTP success alone are not platform proof.
- Provide GitHub-renderable matched before/after light/dark screenshots, relevant playback/recovery recording and usable Human verification steps. Follow DSH tokens/primitives and keyboard/accessibility conventions; keep private chat content and secrets out of evidence.
- Update applicable canonical English/Chinese user guidance and bilingual release ledgers for delivered behavior; do not edit generated docs. Deliver one issue-linked PR with task claim/trace and review-risk classification, then pause for Human QA before expanding dependent slices. Merge/deployment require separate authorization.
Blocked by
- Bridge tracer: Lark audio and video playback in Channel bubbles #1023
- Bridge tracer: WeChat images and files in Channel bubbles #1030
Planning and authority
Project: V1.1 · IM Identities & Messaging (#10). Milestone: v1.2, explicitly selected by Human; Project title does not override milestone. Human approved ticket granularity and blocking edges before publication. This publication does not claim implementation or take over existing WeChat work.
Completed reusable prerequisite: #906 / merged PR #1015. Verify its delivered contracts before implementation.
Metadata
Metadata
Assignees
Labels
area:fullstackEnd-to-end Host and Client implementationEnd-to-end Host and Client implementationfeature:channelChannel chat, timeline, composer, and navigationChannel chat, timeline, composer, and navigationfeature:messagingMessaging module and external providersMessaging module and external providersready-for-agentFully specified, ready for an AFK agentFully specified, ready for an AFK agentscope:tracerHuman-testable implementation sliceHuman-testable implementation slice
Type
Projects
- StatusShow more project fieldsTodo
- StatusShow more project fieldsTodo
Activity