Jun 30 03:01 fix: /friend motion โ interrupt hold on new action, drain queue, fix emotion mapping โ chenbhao +1: Claude Big Pickle - MotionController: interrupt hold when new playAction arrives instead of
queueing, so LLM text-message actions are not blocked by stale 10s hold
- MotionController: drain action queue in hold timer callback to prevent
silent drop of queued actions
- App.tsx: remove hold=true from emotion-only messages โ action plays once,
emotion timer handles duration independently
- App.tsx: remove awkward emotionโaction mappings (neutralโsalute,
relaxedโsalute, sadโshy) that caused unnatural gestures
Co-Authored-By: Claude Big Pickle <noreply@anthropic.com> 02:08 feat: /friend aliveness system, motion controller fix, VAD tuning, high-pass filter โ chenbhao +1: Claude Big Pickle - Remove redundant files (HistoryPanel, MoodIndicator, vmd-loader, vrm-ik-handler, web-file-picker, FriendScreenObserveTool)
- Add action parameter to friend_emotion for VRM animation playback
- Fix motion-controller: replace broken 'finished' event with frame-accurate completion detection and action queue
- Add aliveness system: breathing, postural sway, speech micro-movements, listening response, micro-expressions, enhanced blink
- Add Silero VAD threshold tuning and high-pass filter for low-frequency noise rejection
- Fix build scripts (vite build instead of tauri build)
- Add LipSync.isActive() for speech-driven animation blending
Co-Authored-By: Claude Big Pickle <noreply@anthropic.com> Jun 22 10:33 chore: no appimage 08:51 feat: polling voice create stt 5s โ ๆถๆๅๆด๏ผๆต่งๅจ VAD โ ๆๅกๅจ็ซฏๅฎๆถๅๆฎต
ๆ นๆฌ้ฎ้ข
onnxruntime-web WASM ๅ็ซฏๅจ Tauri ็ WebKitGTK
ไธญๆ ๆณ่ฟ่ก๏ผๅณไฝฟๆๆๆไปถ้ฝๅจๆฌๅฐๆไพ๏ผใ่ฟๆฏ WebKitGTK ็ไธไธชๅทฒ็ฅ้ๅถใ
่งฃๅณๆนๆก
ไธๅๅฐ่ฏๅจๆต่งๅจไธญ่ฟ่ก VADใๆนไธบๆๅกๅจ็ซฏ็ๅฎๆถ้ณ้ขๅๆฎต๏ผ
F2 ๅผๅง โ ๆๅกๅจ็จ cpal/arecord ๅฝๅถ้ณ้ข โ ๆฏ 5 ็ง๏ผ
โโ ็ปๆๅฝๅ STT ่ฟๆฅ โ Groq ่ฝฌๅ โ sendText() โ CLI ๅฏน่ฏ
โโ ๅๅปบๆฐ็ STT ่ฟๆฅ๏ผ็ปง็ปญๅฝๅถ
F2 ็ปๆ โ ๆธ
็
ๅๆดๆไปถ
โโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
โ ๆไปถ โ ๅๆด โ
โโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ FriendService.ts โ ๆฐๅขๅฎๆถๅๆฎต๏ผ_flushSegment() + captureTimer๏ผๅฐ้ณ้ขๅๆฎตไธบ โ
โ โ 5 ็ง็ชๅฃ๏ผ่ชๅจๅ้ๅฐ CLI โ
โโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโค
โ useServerStt.ts โ ๅฎๅ
จ้ๅ๏ผ็งป้คๆต่งๅจ VAD๏ผ@ricky0123/vad-web / โ
โ โ onnxruntime-web๏ผ๏ผๆฐๅขๅบไบ่ฝฎ่ฏข็ๆๅกๅจ็ซฏ่ฏญ้ณ้่ฏ โ
โโโโโโโโโโโโโโโโโโโโผโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฆ 07:40 feat: VAD but just case choose 00:45 feat: cycle time activate check friend Jun 21 15:30 feat: grop free stt 14:11 feat: friend text tts ok but websearch tts not ok 13:28 fix: Microphone access denied 12:07 feat: inter-process โ ๆถๆๅฏนๆฏ
ไนๅ: ไนๅ:
CLI TUI CLI TUI (ๅไธ่ฟ็จ)
โโโ /friend start โโโ FriendService (in-process, cpal)
โโโ ๆๅกๅจๅญ่ฟ็จ :3456 โ โโโ STT via cpal
โ โโโ chat-service.ts โ โโโ enqueue() โ ไธป CLI
โ โ โโโ CLI SDK ๅญ่ฟ็จโ โโโ SSE โ Tauri
โ โโโ arecord ๅญ่ฟ็จ โโโ ่ฝป้ Bun.serve (in-process)
โ โโโ SSE โโโ Tauri (thin display only)
โโโ Tauri (getUserMedia) 08:11 feat: csp null 00:30 feat: full screen friend Jun 20 19:28 fix: friend render 17:16 fix: esc in /friend start โ 1. ๅฏๅจ Tauri ็ชๅฃ๏ผๅผๆญฅ๏ผๅๅฐ่ฟ่ก๏ผ
2. ๆธฒๆ FriendStartView ็ปไปถ๏ผๆพ็คบ็ถๆไฟกๆฏ
3. ๆ Esc ๆ Enter ๅ
ณ้ญ TUI ้ขๆฟ๏ผTauri ็ชๅฃ็ปง็ปญๅจๅๅฐ่ฟ่ก
launchTauri ไนๅ็จไบ await ไผ้ปๅก UI๏ผ็ฐๅจๆนๆไบ็ดๆฅ่ฐ็จ่ฎฉๅฎๅจๅๅฐๅผๆญฅ่ฟ่กใ่ฏ่ฏ /friend start ็็ๆๆ 16:34 feat: /friend start tauri app 14:29 feat: friend refactor to src