Skip to content

feat(feishu): qualify quoted native voice audio for Channel playback - #35

Merged
DoodleBears merged 1 commit into
mainfrom
claude/1023-lark-audio
Nov 3, 2026
Merged

DoodleBears merged 1 commit into
mainfrom
claude/1023-lark-audio

Conversation

@DoodleBears

Copy link
Copy Markdown
Collaborator

Requested by Vain

Refs BotHarness/DeepSeekBot#1023 · Core PR · follows #31 (video)

Why the change

Let the external Consumer play a Lark voice message that a user quotes while mentioning the App, the same way #31 did for video.

Special things to note

  • Merge risk: two-way door — revert the sourceVoiceAudio opt-in and the source-voice-audio-checked capability; small blast radius — only the opted-in parent-resource path in external-files.mjs; consumers that do not pass sourceVoiceAudio see no change.
  • The Provider does not decode: it returns the parent's file_key as one audio/unknown attachment (voice.opus) plus voice: { transcript: 'unavailable', itemId, durationMs? }. Lark has no transcript, so none is claimed.
  • Real E2E (2026-11-03, QA1 app, group "BotHarness QA1 Test"): a native audio message was quoted by a real Human mention; the Core Channel showed the voice with duration 4916 ms, the original read back byte-identical (156874cb…), and Chromium played the Host-decoded WAV with advancing time and seek.

Change outline

external-files.mjs   parentResources(): msg_type 'audio' when sourceVoiceAudio
                     → parentAudio(): exact file_key, optional duration, voice descriptor
                     readExternalFile(): re-check also accepts the audio parent
feishu-runtime.mjs   enrichExternal() forwards sourceVoiceAudio
multi-bot-controller consumeInbound({ sourceVoiceAudio }) + capability source-voice-audio-checked
docs/botharness-lark-audio.md   contract (EN/中文)

Tests: Feishu suite 791/791; new cases cover opt-in, mention requirement, exact-parent re-check, invalid duration, missing duration, other chat.

🤖 Generated with Claude Code

Refs BotHarness/DeepSeekBot#1023

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
@DoodleBears DoodleBears self-assigned this Nov 3, 2026
@DoodleBears
DoodleBears merged commit bde1cac into main Nov 3, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant