惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

美团技术团队
N
Netflix TechBlog - Medium
WordPress大学
WordPress大学
云风的 BLOG
云风的 BLOG
J
Java Code Geeks
V
Visual Studio Blog
H
Help Net Security
Engineering at Meta
Engineering at Meta
Hugging Face - Blog
Hugging Face - Blog
Microsoft Security Blog
Microsoft Security Blog
腾讯CDC
博客园 - 【当耐特】
B
Blog
Stack Overflow Blog
Stack Overflow Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
大猫的无限游戏
大猫的无限游戏
GbyAI
GbyAI
博客园 - 司徒正美
博客园 - 叶小钗
Y
Y Combinator Blog
MyScale Blog
MyScale Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
G
Google Developers Blog
酷 壳 – CoolShell
酷 壳 – CoolShell

Recent Commits to openclaw:main

test: merge chat side-result checks · openclaw/openclaw@ddd2c2a test: merge cron history checks · openclaw/openclaw@f7eb746 test: merge responsive navigation shell checks · openclaw/openclaw@c2e4b47 docs(changelog): add codex oauth fixes · openclaw/openclaw@628e6cd test: merge navigation routing cases · openclaw/openclaw@5d8cecb Tests: mock channel registry bundled fallback · openclaw/openclaw@2b08233 Secrets: avoid broad web search discovery for single plugin config · openclaw/openclaw@a464f59 test: merge config view browser checks · openclaw/openclaw@20cf511 fix(status): align oauth health with runtime · openclaw/openclaw@eed7116 feat: add macOS screen snapshots for monitor preview (#67954) thanks … · openclaw/openclaw@f377db1 fix: report shared auth scopes in hello-ok (#67810) thanks @BunsDev · openclaw/openclaw@0b6c39b Auto-reply: avoid eager bundled route fallback · openclaw/openclaw@3ea1bf4 Tests: narrow session binding contract setup · openclaw/openclaw@54e4e16 fix(macOS): enable undo/redo in webchat composer text input (#34962) · openclaw/openclaw@00951dc Tests: speed up channel setup promotion · openclaw/openclaw@82b529a Docs: refresh agent instructions · openclaw/openclaw@5775fe2 fix(auth): serialize OAuth refresh across agents to fix #26322 (#67876) · openclaw/openclaw@8e79080 test: allow ollama public surface boundary test · openclaw/openclaw@7d4f1a6 Docs: add test performance guardrails · openclaw/openclaw@89706d3 Tests: restore context-engine usage proof · openclaw/openclaw@e4c4f95 Tests: slim context engine runtime coverage · openclaw/openclaw@74c198f ci: retry failed custom checkouts · openclaw/openclaw@0ee5baf test: trim duplicate provider auth onboarding cases · openclaw/openclaw@1ffc02e matrix: fix sessions_spawn --thread subagent session spawning (#67643) · openclaw/openclaw@1ce2596 test: reduce auth choice fixture churn · openclaw/openclaw@857b9cd test: mock health status config boundaries · openclaw/openclaw@9d5ab4a test: mock onboard config io boundary · openclaw/openclaw@299694d test: mock legacy state plugin boundaries · openclaw/openclaw@2713089 test: mock channel install boundaries · openclaw/openclaw@b945248 test: mock doctor preview channel boundaries · openclaw/openclaw@b1a3ad4
fix: force ffmpeg muxers for staged audio outputs · openc...
steipete · 2026-05-15 · via Recent Commits to openclaw:main
Original file line numberDiff line numberDiff line change

@@ -63,6 +63,7 @@ Docs: https://docs.openclaw.ai

6363

- Discord: report unresolved configured bot-token SecretRefs during startup instead of treating the account as unconfigured. (#82009) Thanks @giodl73-repo.

6464

- Discord: pass an explicit Ogg muxer to ffmpeg when transcoding voice-message audio through staged temp files, restoring TTS voice-message delivery. Fixes #82074. Thanks @hwlbb.

6565

- Discord/Feishu: allow Discord voice uploads through RFC2544 fake-IP proxy DNS and pass Feishu's voice ffmpeg transcode through an explicit Ogg muxer. (#82088) Thanks @hwlbb and @6peng888.

66+

- Audio/STT: pass explicit WAV/Ogg muxers to ffmpeg for whisper-cli and WhatsApp staged temp outputs so `.part` filenames do not break transcription or voice-message delivery. Fixes #82094.

6667

- CLI/config: preserve numeric-looking object keys such as Discord guild IDs during `config patch` recursive merges. (#81999) Thanks @giodl73-repo.

6768

- Gateway/OpenAI-compatible HTTP: forward `response_format` from `/v1/chat/completions` requests through agent stream params to upstream Chat Completions and Responses transports, restoring structured-output support. Fixes #82003. (#82004) Thanks @Lellansin.

6869

- Control UI/WebChat: let sidebar markdown code-block Copy buttons use the same delegated clipboard handler as chat messages. (#58709) Thanks @tikitoki.

Original file line numberDiff line numberDiff line change

@@ -778,6 +778,7 @@ describe("deliverWebReply", () => {

778778

expect(ffmpegArgList).toContain("48000");

779779

expect(ffmpegArgList).toContain("-b:a");

780780

expect(ffmpegArgList).toContain("64k");

781+

expect(ffmpegArgList.slice(-3, -1)).toEqual(["-f", "ogg"]);

781782

const mediaPayload = requireRecord(

782783

mockCallArg(msg.sendMedia, 0, 0, "sendMedia"),

783784

"sendMedia payload",

Original file line numberDiff line numberDiff line change

@@ -214,6 +214,8 @@ async function transcodeToWhatsAppVoiceOpus(params: {

214214

"libopus",

215215

"-b:a",

216216

WHATSAPP_VOICE_BITRATE,

217+

"-f",

218+

"ogg",

217219

outputPath,

218220

]);

219221

},

Original file line numberDiff line numberDiff line change

@@ -315,6 +315,8 @@ describe("web outbound", () => {

315315

"libopus",

316316

"-b:a",

317317

"64k",

318+

"-f",

319+

"ogg",

318320

]);

319321

const outputPath = ffmpegArgs?.at(-1);

320322

expect(outputPath).toContain("/fs-safe-output-");

Original file line numberDiff line numberDiff line change

@@ -846,12 +846,21 @@ describe("applyMediaUnderstanding", () => {

846846
847847

expect(ctx.Transcript).toBe("whisper cpp ogg ok");

848848

const ffmpegArgs = getRunFfmpegArgs();

849-

expect(ffmpegArgs).toHaveLength(10);

849+

expect(ffmpegArgs).toHaveLength(12);

850850

expect(ffmpegArgs.slice(0, 2)).toEqual(["-y", "-i"]);

851851

expect(String(ffmpegArgs[2]).endsWith("telegram-voice.ogg")).toBe(true);

852-

expect(ffmpegArgs.slice(3, 9)).toEqual(["-ac", "1", "-ar", "16000", "-c:a", "pcm_s16le"]);

853-

expect(String(ffmpegArgs[9])).toContain("telegram-voice.wav");

854-

expect(String(ffmpegArgs[9]).endsWith(".part")).toBe(true);

852+

expect(ffmpegArgs.slice(3, 11)).toEqual([

853+

"-ac",

854+

"1",

855+

"-ar",

856+

"16000",

857+

"-c:a",

858+

"pcm_s16le",

859+

"-f",

860+

"wav",

861+

]);

862+

expect(String(ffmpegArgs[11])).toContain("telegram-voice.wav");

863+

expect(String(ffmpegArgs[11]).endsWith(".part")).toBe(true);

855864
856865

const [command, args, options] = getRunExecCall();

857866

expect(command).toBe("whisper-cli");

Original file line numberDiff line numberDiff line change

@@ -269,6 +269,8 @@ async function resolveCliMediaPath(params: {

269269

"16000",

270270

"-c:a",

271271

"pcm_s16le",

272+

"-f",

273+

"wav",

272274

outputPath,

273275

]);

274276

},