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

推荐订阅源

C
Comments on: Blog
GbyAI
GbyAI
B
Blog RSS Feed
Microsoft Security Blog
Microsoft Security Blog
罗磊的独立博客
人人都是产品经理
人人都是产品经理
F
Full Disclosure
IT之家
IT之家
Know Your Adversary
Know Your Adversary
Engineering at Meta
Engineering at Meta
K
Kaspersky official blog
T
Tor Project blog
V
Visual Studio Blog
S
SegmentFault 最新的问题
P
Proofpoint News Feed
V
Vulnerabilities – Threatpost
T
True Tiger Recordings
H
Hackread – Cybersecurity News, Data Breaches, AI and More
The Hacker News
The Hacker News
MyScale Blog
MyScale Blog
Latest news
Latest news
Blog — PlanetScale
Blog — PlanetScale
Cyberwarzone
Cyberwarzone
Stack Overflow Blog
Stack Overflow Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
Apple Machine Learning Research
Apple Machine Learning Research
Project Zero
Project Zero
AWS News Blog
AWS News Blog
Martin Fowler
Martin Fowler
F
Fox-IT International blog
C
CXSECURITY Database RSS Feed - CXSecurity.com
Scott Helme
Scott Helme
C
Check Point Blog
博客园 - Franky
P
Proofpoint News Feed
S
Securelist
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
U
Unit 42
P
Privacy & Cybersecurity Law Blog
NISL@THU
NISL@THU
T
The Blog of Author Tim Ferriss
Google DeepMind News
Google DeepMind News
D
Docker
Hacker News - Newest:
Hacker News - Newest: "LLM"
WordPress大学
WordPress大学
李成银的技术随笔
A
Arctic Wolf
CTFtime.org: upcoming CTF events
CTFtime.org: upcoming CTF events
S
Schneier on Security
N
Netflix TechBlog - Medium

Recent Commits to openclaw:main

fix: accept trailing fuzzy voice wake questions · openclaw/openclaw@d001d35 fix(podman): bound setup image builds · openclaw/openclaw@d6fcb56 fix(podman): kill timed container launches · openclaw/openclaw@6118f3f fix(scripts): preserve native pnpm exec paths · openclaw/openclaw@fb853de fix(ci): bound docker pull smoke steps · openclaw/openclaw@e96cde7 fix(codex): bridge cli api-key auth into app-server fix(e2e): kill timed docker helper commands · openclaw/openclaw@e89afa6 fix(e2e): kill timed live docker runs · openclaw/openclaw@dc0d4c2 fix(ci): kill timed website installer docker steps · openclaw/openclaw@d54c906 fix(scripts): trim macOS node bootstrap · openclaw/openclaw@4ff5a61 fix(ci): kill timed install smoke docker steps · openclaw/openclaw@cf6f9ad feat(ios): show Talk voice mode (#86798) · openclaw/openclaw@19e4c37 fix(setup): kill timed image pulls when supported fix(test): default Vitest stall watchdog fix(ci): bound crabbox hydrate downloads · openclaw/openclaw@d1c8f09 fix(control-ui): guard stale overview usage refresh fix(qa): require genai otel model spans (#86920) refactor: move transcripts into core fix(message-tool): hydrate structured reply attachments fix(e2e): kill timed npm install process groups fix(ci): kill timed workflow process groups fix(e2e): kill timed setup process groups fix(e2e): bound resource-sampled docker runs · openclaw/openclaw@d0dd8b8 fix(mac): fail closed on restart gateway check · openclaw/openclaw@295b5ea fix(e2e): time out live docker setup installs · openclaw/openclaw@8c7f226 ci: resolve major node fallback versions · openclaw/openclaw@e37ac22 ci: use local node toolcache setup · openclaw/openclaw@4c6aeb9 ci: add node download fallback fix(e2e): bound docker npm install phases · openclaw/openclaw@9777526 ci: restore pnpm store cache with corepack · openclaw/openclaw@84e4bff ci: avoid pnpm setup action download · openclaw/openclaw@13f72e4 fix(e2e): time out telegram package installs · openclaw/openclaw@a17ac3e ci: avoid unconditional bun action download · openclaw/openclaw@e549d0c ci: avoid token-backed read checkouts · openclaw/openclaw@df13d3a ci: use unauthenticated workflow fetches fix(e2e): time out package npm installs · openclaw/openclaw@a07dc38 test: speed up slow CI regressions · openclaw/openclaw@30e59b4 fix(release): fail closed on cross-os agent turns · openclaw/openclaw@dfe94ff fix(e2e): reject corrupt plugin update false greens · openclaw/openclaw@419178b fix(qa): preserve corrupt auth profile files · openclaw/openclaw@efebf6b fix(matrix): reject malformed integer cli values · openclaw/openclaw@cb34175 fix(canvas): reject invalid snapshot formats · openclaw/openclaw@884d346 fix(browser): reject invalid wait load states · openclaw/openclaw@13c6a33 fix(ci): time out website installer docker runs · openclaw/openclaw@a3bb4fe fix(discord): gate native built-in UI before owner auth fix(ci): fail Testbox changed-check delegation · openclaw/openclaw@92fb79e fix(ci): time out install smoke docker runs · openclaw/openclaw@30c4489 ci(release): retry transient GitHub API suspension errors (#86859) · openclaw/openclaw@94a04e1 fix(podman): time out detached launches · openclaw/openclaw@8307e2f Auto-scale live tool result caps (#86857) fix(podman): time out setup image pulls · openclaw/openclaw@c2b1d20 perf: use typed arrays for audio codec loops (#86856) · openclaw/openclaw@18ff19e fix(e2e): time out live image pulls · openclaw/openclaw@f0599fd fix(mac): require dist dSYM artifacts · openclaw/openclaw@fe9f28f docs: update changelog for testbox delegation · openclaw/openclaw@71e7a1f fix(e2e): time out installer smoke containers · openclaw/openclaw@9208272 fix: simplify testbox changed-check delegation · openclaw/openclaw@e20b8d7 fix(mac): require packaged app resources · openclaw/openclaw@198d0a5 test: update docker stats helper expectations · openclaw/openclaw@11512b1 fix(e2e): time out live Docker runs · openclaw/openclaw@d1f2eb0 fix(mac): remove unused codesign entitlements · openclaw/openclaw@e8cb2b5 fix(docker): time out setup image pulls · openclaw/openclaw@dcf0941 fix(mac): fail closed on missing staple app · openclaw/openclaw@da16a96 fix(qa-slack): preserve failure debug artifacts · openclaw/openclaw@4ebc13a fix(e2e): time out standalone Docker smokes · openclaw/openclaw@f1ceed9 fix(mac): clean codesign entitlement temps · openclaw/openclaw@68f877e fix(e2e): time out install smoke Docker copies · openclaw/openclaw@1c5b835 fix(mac): fail closed on dmg plist reads · openclaw/openclaw@7aedff8 fix(e2e): route gateway network client through Docker helper · openclaw/openclaw@f2ad94e fix(mac): fail closed on dist plist reads · openclaw/openclaw@8e110a2 test(codex): widen app-server wait timeout type · openclaw/openclaw@4c8e9da fix(e2e): time out Docker image reuse probes docs: clarify compatibility defaults · openclaw/openclaw@4f1cd8e fix(e2e): route named container cleanup through helper · openclaw/openclaw@e295c86 fix(mac): fail closed on plist stamp errors · openclaw/openclaw@91080fd fix(e2e): route focused docker smokes through run helper · openclaw/openclaw@4838e70 fix(mattermost): tag typed text slash control commands · openclaw/openclaw@21aebd5 fix(e2e): route sampled docker runs through helpers fix(e2e): clean package docker artifacts on setup failure · openclaw/openclaw@90bcec9 ci(release): include performance run in validation manifest · openclaw/openclaw@0e73379 test(e2e): harden release media memory smoke · openclaw/openclaw@99032f0 fix(e2e): clean package onboarding artifacts · openclaw/openclaw@f63754b fix(e2e): honor Docker harness run timeouts · openclaw/openclaw@b34e1b3 fix(imessage): dedupe accounts sharing the local Messages source (#86… · openclaw/openclaw@9434228 fix(scripts): detect shell-wrapped changed gates fix(codex): preserve sandbox bootstrap path style · openclaw/openclaw@3f6b63a perf: skip canonical session migration parses · openclaw/openclaw@c5530c7 fix(e2e): clean skill install package mounts · openclaw/openclaw@d3bbfa1 fix(e2e): clean Codex plugin live artifacts · openclaw/openclaw@a5653c0 fix(e2e): clean sampled Docker logs on failure · openclaw/openclaw@b93cee4 refactor: migrate validators to TypeBox (#86639) · openclaw/openclaw@3548cff fix(e2e): clean package mount tarballs · openclaw/openclaw@b377618 fix(scripts): format auth expiries on macos · openclaw/openclaw@437a9e9 fix(e2e): clean functional Docker build inputs Fix iMessage image attachment roots (#86569) · openclaw/openclaw@2e17003 chore(release): refresh plugin sdk api baseline · openclaw/openclaw@918472a fix(e2e): fail on invalid test state payloads · openclaw/openclaw@4a1d772 ci(release): apply exact extension batch excludes fix(installer): reject invalid shell options ci(release): pass vitest batch options before roots
fix: update Discord voice to libopus-wasm 0.1.0 · openclaw/openclaw@0f605ee
steipete · 2026-05-26 · via Recent Commits to openclaw:main

@@ -4,8 +4,8 @@ import {

44

Application,

55

createDecoder as createLibopusDecoder,

66

createEncoder as createLibopusEncoder,

7-

type OpusDecoder as LibopusDecoder,

8-

type OpusEncoder as LibopusEncoder,

7+

type OpusDecoderHandle as LibopusDecoder,

8+

type OpusEncoderHandle as LibopusEncoder,

99

} from "libopus-wasm";

1010

import { resamplePcm } from "openclaw/plugin-sdk/realtime-voice";

1111

import { logVerbose, shouldLogVerbose } from "openclaw/plugin-sdk/runtime-env";

@@ -80,7 +80,12 @@ async function createOpusDecoder(params: {

8080

return {

8181

name: "libopus-wasm",

8282

decoder: {

83-

decode: (buffer) => pcmInt16ToBuffer(decoder.decodeFrame(buffer, DISCORD_OPUS_FRAME_SIZE)),

83+

decode: (buffer) =>

84+

pcmInt16ToBuffer(

85+

decoder.decode(buffer, {

86+

maxFrameSize: DISCORD_OPUS_FRAME_SIZE,

87+

}),

88+

),

8489

free: () => decoder.free(),

8590

},

8691

};

@@ -141,7 +146,13 @@ class DiscordOpusEncodeStream extends Transform {

141146

while (this.#buffer.length >= DISCORD_OPUS_FRAME_BYTES) {

142147

const frame = this.#buffer.subarray(0, DISCORD_OPUS_FRAME_BYTES);

143148

this.#buffer = this.#buffer.subarray(DISCORD_OPUS_FRAME_BYTES);

144-

this.push(Buffer.from(encoder.encodePcm16(frame, DISCORD_OPUS_FRAME_SIZE)));

149+

this.push(

150+

Buffer.from(

151+

encoder.encode(frame, {

152+

frameSize: DISCORD_OPUS_FRAME_SIZE,

153+

}),

154+

),

155+

);

145156

}

146157

done();

147158

} catch (err) {

@@ -156,7 +167,13 @@ class DiscordOpusEncodeStream extends Transform {

156167

const frame = Buffer.alloc(DISCORD_OPUS_FRAME_BYTES);

157168

this.#buffer.copy(frame);

158169

this.#buffer = Buffer.alloc(0);

159-

this.push(Buffer.from(encoder.encodePcm16(frame, DISCORD_OPUS_FRAME_SIZE)));

170+

this.push(

171+

Buffer.from(

172+

encoder.encode(frame, {

173+

frameSize: DISCORD_OPUS_FRAME_SIZE,

174+

}),

175+

),

176+

);

160177

}

161178

this.#freeEncoder();

162179

done();