-
Notifications
You must be signed in to change notification settings - Fork 4
Expand file tree
/
Copy pathchangelog.json
More file actions
666 lines (665 loc) · 25.1 KB
/
Copy pathchangelog.json
File metadata and controls
666 lines (665 loc) · 25.1 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
[ {
"version": "1.0.7",
"date": "2026-05-05",
"changes": [
"Build: Bump package version to 1.0.7",
"Change: Align audio runtime with current SDK patterns by splitting local TTS playback from Sendspin-capable music playback and moving wakeword/stopword loading into shared helpers",
"Change: Raise the Reachy Mini SDK baseline to reachy-mini>=1.7.1",
"Fix: Keep wakeup and TTS playback on the local player path while binding both local and Sendspin players to shared speech sway helpers",
"Fix: Synchronize Idle Behavior shutdown with ESPHome face and gesture switches plus runtime state updates",
"Fix: Remove obsolete runtime monitor modules that are no longer needed with the current SDK behavior",
"Optimize: Tighten Sendspin buffering with proactive backpressure and cleaner local queue handling"
]
},
{
"version": "1.0.6",
"date": "2026-05-01",
"changes": [
"Build: Bump package version to 1.0.6",
"Change: Align pyproject.toml with the current Reachy Mini SDK baseline (reachy-mini>=1.7.0, Python>=3.12, zeroconf>=0.131,<1, aiohttp, websockets>=12,<16, and gstreamer-bundle==1.28.1 on non-Linux)",
"Change: Align Sendspin dependency with the current upstream client line via aiosendspin>=5.1,<6.0",
"Fix: Fetch camera snapshot frames on demand when the MJPEG cache is empty so Home Assistant camera proxy requests keep working with the Reachy Mini SDK 1.7.0 media pull model",
"Optimize: Stop the camera server entirely when Idle Behavior is disabled instead of only unloading vision models"
]
},
{
"version": "1.0.5",
"date": "2026-04-12",
"changes": [
"Build: Bump package version to 1.0.5",
"Change: Remove app-managed robot sleep/wake handling because the current Reachy Mini SDK no longer allows mini apps to stay active while the robot enters sleep",
"Change: Limit resource suspend/resume to ESPHome-driven runtime toggles such as Home Assistant disconnect, mute, camera disable, and service recovery",
"Change: Align pyproject.toml runtime constraints with the current Reachy Mini reference SDK package (reachy-mini>=1.6.3, websockets>=12,<16, Python baseline >=3.10, and uv gstreamer metadata)",
"Remove: Delete SleepManager integration and app-side sleep/wake callback flow from the voice assistant runtime",
"Remove: Delete Home Assistant sleep control entities and internal robot sleep state tracking from the mini app"
]
},
{
"version": "1.0.4",
"date": "2026-03-19",
"changes": [
"Build: Bump package version to 1.0.4",
"Fix: Align Reachy Mini integration with current SDK assumptions by removing legacy compatibility paths and private client health checks",
"Fix: Replace direct SDK private _respeaker access with audio_control_utils-based ReSpeaker initialization",
"Fix: Tighten camera and pose composition to require current SDK media/utils APIs and valid look_at_image inputs",
"Improve: Unify idle behavior into a single persisted Home Assistant entity and remove old idle compatibility aliases",
"Improve: Replace separate wake/sleep buttons with a single sleep control entity",
"Improve: Update Sendspin integration for current aiosendspin lifecycle, stream handling, listener cleanup, and synchronized buffering",
"Improve: Standardize daemon URL usage on shared config across controller, sleep manager, and daemon monitor"
]
},
{
"version": "1.0.3",
"date": "2026-03-07",
"changes": [
"Build: Bump package version to 1.0.3",
"New: Add Idle Random Actions switch in Home Assistant with preferences persistence and startup restore",
"New: Add configurable idle_random_actions action presets in conversation_animations.json for centralized idle motion tuning",
"Fix: Remove duplicate idle_random_actions fields/methods and complete runtime control wiring in controller/entity registry/movement manager",
"Improve: Increase idle breathing and antenna sway cadence to 0.24Hz with wiggle antenna profile for more natural standby motion",
"Optimize: Remove set_target global rate limiting and unchanged-pose skip gating to continuously stream motion commands each control tick",
"Optimize: Remove idle antenna slew-rate limiter so antenna motion follows animation waveforms directly for reference-like smoothness"
]
},
{
"version": "1.0.2",
"date": "2026-03-06",
"changes": [
"Build: Bump package version to 1.0.2",
"Fix: Restore idle antenna sway animation and tune idle breathing parameters to reduce perceived stiffness",
"Fix: Reintroduce idle anti-chatter smoothing/deadband for antenna and body updates to reduce mechanical jitter/noise",
"Fix: Switch sleep/wake control to daemon API (start/stop with wake_up/goto_sleep) so /api/daemon/status reflects real sleep state on SDK 1.5",
"Fix: Normalize daemon status parsing for SDK 1.5 object-based status responses",
"Fix: Remove all app-side antenna power on/off operations to avoid SDK instability and external-control conflicts",
"Change: Keep idle antenna behavior as animation-only control (no torque coupling)",
"Change: Tighten preference loading to current schema (no legacy config fallback filtering)",
"Fix: Sync Idle Motion toggle with Idle Antenna Motion toggle for expected behavior in ESPHome",
"Fix: Remove legacy app-managed audio routing hooks and rely on native SDK/system audio selection",
"New: Add Home Assistant blueprint for Reachy presence companion automation",
"Improve: Blueprint supports device-first auto-binding and richer usage instructions",
"Docs: Refresh landing page (index.html) with current version, GitHub source link, and new Blueprint/Auto Release capability cards",
"New: Add GitHub workflow to auto-create releases when pyproject/changelog version updates produce a new tag",
"Chore: Ignore local wiki workspace artifacts (local/) from repository tracking"
]
},
{
"version": "1.0.1",
"date": "2026-03-05",
"changes": [
"Build: Bump package version to 1.0.1",
"Deps: Update runtime dependency baseline to reachy-mini>=1.5.0",
"Fix: Remove legacy Zenoh 7447 startup precheck for SDK v1.5 compatibility",
"Fix: Remove legacy ZError string matching from connection error handling",
"Fix: Adapt daemon status handling to SDK v1.5 DaemonStatus object (prevents AttributeError on status.get)",
"Fix: Harden stop-word handling with runtime activation/deactivation and mute-aware trigger gating",
"Fix: Align wakeup stream start timing with reference behavior (start microphone stream after wakeup sound)",
"Fix: Improve TTS streaming robustness and reduce cutoffs with retry-based audio push",
"Optimize: Support single-request streaming with in-memory fallback cache for one-time TTS URLs (no temp file dependency)",
"Optimize: Lower streaming fetch chunk size and apply unthrottled preroll for faster first audio"
]
},
{
"version": "1.0.0",
"date": "2026-03-04",
"changes": [
"Build: Bump package version to 1.0.0",
"Deps: Require reachy-mini[gstreamer]>=1.4.1",
"Fix: Improve gesture responsiveness and stability (faster smoothing, min processing cadence, no-gesture alignment)",
"Fix: Auto-match ONNX gesture input size from model shape to prevent INVALID_ARGUMENT dimension errors",
"New: Add Sendspin switch in ESPHome (default OFF, persistent, runtime enable/disable)",
"New: Add Face Tracking and Gesture Detection switches in ESPHome (both default OFF, persistent)",
"New: Add Face Confidence number entity (0.0-1.0, persistent)",
"Optimize: Unload/reload face and gesture models when toggled off/on to save resources",
"Optimize: Idle behavior updated to breathing + look-around alternation, idle antenna sway disabled",
"Optimize: Adjust idle breathing to human-like cadence",
"Fix: Disable antenna torque in idle mode and re-enable outside idle to reduce chatter/noise",
"Fix: Harden startup against import-time failures (lazy emotion library loading and graceful Sendspin disable)",
"Fix: Enforce deterministic audio startup path and fail fast when microphone capture is not ready",
"Optimize: Make MJPEG streaming viewer-aware (skip continuous JPEG encode/push when no stream clients)",
"Optimize: Keep face/gesture AI processing active even when stream viewers are absent",
"Fix: Add on-demand /snapshot JPEG generation when no cached stream frame is available",
"Change: Use camera backend default FPS/resolution for stream path instead of forcing fixed 1080p/25fps"
]
},
{
"version": "0.9.9",
"date": "2026-01-28",
"changes": [
"Fix: Audio buffer overflow - require Reachy Mini hardware, use only Reachy microphone with 50ms sleep",
"Optimize: Gesture detection sensitivity - remove all confidence filtering, return all detections to Home Assistant",
"Optimize: Gesture detection now runs at 1 frame interval for maximum responsiveness",
"Refactor: Simplify GestureSmoother to frequency-based confirmation (1 frame)",
"Refactor: Remove unused parameters (confidence_threshold, detection_threshold, GestureConfig)",
"Fix: Remove duplicate empty check in gesture detection",
"Optimize: SDK integration - add MediaBackend detection and proper resource cleanup",
"Document: ReSpeaker private attribute access risk with TODO comments"
]
},
{
"version": "0.9.8",
"date": "2026-01-27",
"changes": [
"New: Mute switch and Disable Camera entities for granular control",
"Fix: Camera disable logic and daemon crash prevention",
"New: Home Assistant connection-driven feature loading with auto suspend/resume",
"Optimize: Reduce log output by 30-40%",
"Fix: Code quality improvements",
"Fix: SDK crash during idle - optimize audio processing and add GStreamer threading lock",
"Optimize: Bundle face tracking model, use SDK Zenoh for daemon monitoring",
"Simplify: Device ID reads /etc/machine-id directly",
"Clean up: Remove unused config items"
]
},
{
"version": "0.9.7",
"date": "2026-01-20",
"changes": [
"Fix: Device ID file path corrected after util.py moved to core/ subdirectory (prevents HA seeing device as new)",
"Fix: Animation file path corrected (was looking in wrong directory)",
"Fix: Remove hey_jarvis from required wake words (it's optional in openWakeWord/)"
]
},
{
"version": "0.9.6",
"date": "2026-01-20",
"changes": [
"New: Add ruff linter/formatter and mypy type checker configuration",
"New: Add pre-commit hooks for automated code quality checks",
"Fix: Remove duplicate resume() method in audio_player.py",
"Fix: Remove duplicate connection_lost() method in satellite.py",
"Fix: Store asyncio task reference in sleep_manager.py to prevent garbage collection",
"Optimize: Use dict.items() for efficient iteration in smoothing.py"
]
},
{
"version": "0.9.5",
"date": "2026-01-19",
"changes": [
"Refactor: Modularize codebase - new core/motion/vision/audio/entities module structure",
"New: Direct callbacks for HA sleep/wake buttons to suspend/resume services",
"Optimize: Audio processing latency - reduced chunk size from 1024 to 256 samples (64ms -> 16ms)",
"Optimize: Audio loop delay reduced from 10ms to 1ms for faster VAD response",
"Optimize: Stereo to mono conversion uses first channel instead of mean for cleaner signal",
"Improve: Camera resume_from_suspend now synchronous for reliable wake from sleep",
"Improve: Rotation clamping in face tracking to prevent IK collisions"
]
},
{
"version": "0.9.0",
"date": "2026-01-18",
"changes": [
"New: Robot state monitor for proper sleep mode handling - services pause when robot disconnects and resume on reconnect",
"New: System diagnostics entities (CPU, memory, disk, uptime) exposed as Home Assistant diagnostic sensors",
"New: Phase 24 with 9 diagnostic sensors (cpu_percent, cpu_temperature, memory_percent, memory_used_gb, disk_percent, disk_free_gb, uptime_hours, process_cpu_percent, process_memory_mb)",
"Fix: Voice assistant and movement manager now properly pause during robot sleep mode instead of generating error spam",
"Improve: Graceful service lifecycle management with RobotStateMonitor callbacks"
]
},
{
"version": "0.8.7",
"date": "2026-01-18",
"changes": [
"Fix: Clamp body_yaw to safe range to prevent IK collision warnings during emotion playback",
"Fix: Emotion moves and face tracking now respect SDK safety limits",
"Improve: Face tracking smoothness - removed EMA smoothing (matches reference project)",
"Improve: Face tracking timing updated to match reference (2s delay, 1s interpolation)"
]
},
{
"version": "0.8.6",
"date": "2026-01-18",
"changes": [
"Fix: Audio buffer memory leak - added size limit to prevent unbounded growth",
"Fix: Temp file leak - downloaded audio files now cleaned up after playback",
"Fix: Camera thread termination timeout increased for clean shutdown",
"Fix: Thread-safe draining flag using threading.Event",
"Fix: Silent failures now logged for debugging"
]
},
{
"version": "0.8.5",
"date": "2026-01-18",
"changes": [
"Fix: DOA turn-to-sound direction inverted - now turns correctly toward sound source",
"Fix: Graceful shutdown prevents daemon crash on app stop"
]
},
{
"version": "0.8.4",
"date": "2026-01-18",
"changes": [
"Improve: Smooth idle animation with interpolation phase (matches reference BreathingMove)",
"Improve: Two-phase animation - interpolates to neutral before oscillation",
"Fix: Antenna frequency updated to 0.5Hz (was 0.15Hz) for more natural sway"
]
},
{
"version": "0.8.3",
"date": "2026-01-18",
"changes": [
"Fix: Body now properly follows head rotation during face tracking",
"Fix: body_yaw extracted from final head pose matrix and synced with head_yaw",
"Fix: Matches reference project sweep_look behavior for natural body movement"
]
},
{
"version": "0.8.2",
"date": "2026-01-18",
"changes": [
"Fix: Body now follows head rotation during face tracking - body_yaw syncs with head_yaw",
"Fix: Matches reference project sweep_look behavior for natural body movement"
]
},
{
"version": "0.8.1",
"date": "2026-01-18",
"changes": [
"Fix: face_detected entity now pushes state updates to Home Assistant in real-time",
"Fix: Body yaw simplified to match reference project - SDK automatic_body_yaw handles collision prevention",
"Fix: Idle animation now starts immediately on app launch",
"Fix: Smooth antenna animation - removed pose change threshold for continuous motion"
]
},
{
"version": "0.8.0",
"date": "2026-01-17",
"changes": [
"New: Comprehensive emotion keyword mapping with 280+ Chinese and English keywords",
"New: 35 emotion categories mapped to robot expressions",
"New: Auto-trigger expressions from conversation text patterns"
]
},
{
"version": "0.7.3",
"date": "2026-01-12",
"changes": [
"Fix: Revert to reference project pattern - use refractory period instead of state flags",
"Fix: Remove broken _in_pipeline and _tts_playing state management",
"Fix: Restore correct RUN_END event handling from linux-voice-assistant"
]
},
{
"version": "0.7.2",
"date": "2026-01-12",
"changes": [
"Fix: Remove premature _tts_played reset in RUN_END event",
"Fix: Ensure _in_pipeline stays True until TTS playback completes"
]
},
{
"version": "0.7.1",
"date": "2026-01-12",
"changes": [
"Fix: Prevent wake word detection during TTS playback",
"Fix: Add _tts_playing flag to track TTS audio state precisely"
]
},
{
"version": "0.7.0",
"date": "2026-01-12",
"changes": [
"New: Gesture detection using HaGRID ONNX models (18 gesture classes)",
"New: gesture_detected and gesture_confidence entities in Home Assistant",
"Fix: Gesture state now properly pushed to Home Assistant in real-time",
"Optimize: Aggressive power saving - 0.5fps idle mode after 30s without face",
"Optimize: Gesture detection only runs when face detected (saves CPU)"
]
},
{
"version": "0.6.1",
"date": "2026-01-12",
"changes": [
"Fix: Prioritize MicroWakeWord over OpenWakeWord for same-name wake words",
"Fix: OpenWakeWord wake words now visible in Home Assistant selection",
"Fix: Stop word detection now works correctly",
"Fix: STT/LLM response time improved with fixed audio chunk size"
]
},
{
"version": "0.6.0",
"date": "2026-01-11",
"changes": [
"New: Real-time audio-driven speech animation (SwayRollRT algorithm)",
"New: JSON-driven animation system - all animations configurable",
"Refactor: Remove hardcoded actions, use animation offsets only",
"Fix: TTS audio analysis now works with local playback"
]
},
{
"version": "0.5.16",
"date": "2026-01-11",
"changes": [
"Remove: Tap-to-wake feature (too many false triggers)",
"New: Continuous Conversation switch in Home Assistant",
"Refactor: Simplified satellite.py and voice_assistant.py"
]
},
{
"version": "0.5.15",
"date": "2026-01-11",
"changes": [
"New: Audio settings persistence (AGC, Noise Suppression, Tap Sensitivity)",
"Refactor: Move Sendspin mDNS discovery to zeroconf.py",
"Fix: Tap detection not re-enabled during emotion playback in conversation"
]
},
{
"version": "0.5.14",
"date": "2026-01-11",
"changes": [
"Fix: Skip ALL wake word processing when pipeline is active",
"Fix: Eliminate race condition in pipeline state during continuous conversation",
"Improve: Control loop increased to 100Hz (daemon updated)"
]
},
{
"version": "0.5.13",
"date": "2026-01-10",
"changes": [
"New: JSON-driven animation system for conversation states",
"New: AnimationPlayer class inspired by SimpleDances project",
"Refactor: Replace SpeechSwayGenerator and BreathingAnimation with unified animation system"
]
},
{
"version": "0.5.12",
"date": "2026-01-10",
"changes": [
"Remove: Deleted broken hey_reachy wake word model",
"Revert: Default wake word back to \"Okay Nabu\""
]
},
{
"version": "0.5.11",
"date": "2026-01-10",
"changes": [
"Fix: Reset feature extractors when switching wake words",
"Fix: Add refractory period after wake word switch"
]
},
{
"version": "0.5.10",
"date": "2026-01-10",
"changes": [
"Fix: Wake word models now have 'id' attribute set correctly",
"Fix: Wake word switching from Home Assistant now works"
]
},
{
"version": "0.5.9",
"date": "2026-01-10",
"changes": [
"New: Default wake word changed to hey_reachy",
"Fix: Wake word switching bug"
]
},
{
"version": "0.5.8",
"date": "2026-01-09",
"changes": [
"Fix: Tap detection waits for emotion playback to complete",
"Fix: Poll daemon API for move completion"
]
},
{
"version": "0.5.7",
"date": "2026-01-09",
"changes": [
"New: DOA turn-to-sound at wakeup",
"Fix: Show raw DOA angle in Home Assistant (0-180)",
"Fix: Invert DOA yaw direction"
]
},
{
"version": "0.5.6",
"date": "2026-01-08",
"changes": [
"Fix: Better pipeline state tracking to prevent duplicate audio"
]
},
{
"version": "0.5.5",
"date": "2026-01-08",
"changes": [
"Fix: Prevent concurrent pipelines",
"New: Add prompt sound for continuous conversation"
]
},
{
"version": "0.5.4",
"date": "2026-01-08",
"changes": [
"Fix: Wait for RUN_END before starting new conversation"
]
},
{
"version": "0.5.3",
"date": "2026-01-08",
"changes": [
"Fix: Improve continuous conversation with conversation_id tracking"
]
},
{
"version": "0.5.2",
"date": "2026-01-08",
"changes": [
"Fix: Enable HA control of robot pose",
"Fix: Continuous conversation improvements"
]
},
{
"version": "0.5.1",
"date": "2026-01-08",
"changes": [
"Fix: Sendspin connects to music_player instead of tts_player",
"Fix: Persist tap_sensitivity settings",
"Fix: Pause Sendspin during voice assistant wakeup",
"Fix: Sendspin prioritize 16kHz sample rate"
]
},
{
"version": "0.5.0",
"date": "2026-01-07",
"changes": [
"New: Face tracking with adaptive frequency",
"New: Sendspin multi-room audio integration",
"Optimize: Shutdown mechanism improvements"
]
},
{
"version": "0.4.0",
"date": "2026-01-07",
"changes": [
"Fix: Daemon stability fixes",
"New: Face tracking enabled by default",
"Optimize: Microphone settings for better sensitivity"
]
},
{
"version": "0.3.0",
"date": "2026-01-06",
"changes": [
"New: Tap sensitivity slider entity",
"Fix: Music Assistant compatibility",
"Optimize: Face tracking and tap detection"
]
},
{
"version": "0.2.21",
"date": "2026-01-06",
"changes": [
"Fix: Daemon crash - reduce control loop to 2Hz",
"Fix: Pause control loop during audio playback"
]
},
{
"version": "0.2.20",
"date": "2026-01-06",
"changes": [
"Revert: Audio/satellite/voice_assistant to v0.2.9 working state"
]
},
{
"version": "0.2.19",
"date": "2026-01-06",
"changes": [
"Fix: Force localhost connection mode to prevent WebRTC errors"
]
},
{
"version": "0.2.18",
"date": "2026-01-06",
"changes": [
"Fix: Audio playback - restore wakeup sound",
"Fix: Use push_audio_sample for TTS"
]
},
{
"version": "0.2.17",
"date": "2026-01-06",
"changes": [
"Remove: head_joints/passive_joints entities",
"Move: error_message to diagnostic category"
]
},
{
"version": "0.2.16",
"date": "2026-01-06",
"changes": [
"Fix: TTS playback - pause recording during playback"
]
},
{
"version": "0.2.15",
"date": "2026-01-06",
"changes": [
"Fix: Use play_sound() instead of push_audio_sample() for TTS"
]
},
{
"version": "0.2.14",
"date": "2026-01-06",
"changes": [
"Fix: Pause audio recording during TTS playback"
]
},
{
"version": "0.2.13",
"date": "2026-01-06",
"changes": [
"Fix: Don't manually start/stop media - let SDK/daemon manage it"
]
},
{
"version": "0.2.12",
"date": "2026-01-05",
"changes": [
"Fix: Disable breathing animation to prevent serial port overflow"
]
},
{
"version": "0.2.11",
"date": "2026-01-05",
"changes": [
"Fix: Disable wakeup sound to prevent daemon crash",
"Add: Debug logging for troubleshooting"
]
},
{
"version": "0.2.10",
"date": "2026-01-05",
"changes": [
"Add: Debug logging for motion init",
"Fix: Audio fallback samplerate"
]
},
{
"version": "0.2.9",
"date": "2026-01-05",
"changes": [
"Remove: DOA/speech detection - replaced by face tracking"
]
},
{
"version": "0.2.8",
"date": "2026-01-05",
"changes": [
"New: Replace DOA with YOLO face tracking"
]
},
{
"version": "0.2.7",
"date": "2026-01-05",
"changes": [
"Fix: Add DOA caching to prevent ReSpeaker query overload"
]
},
{
"version": "0.2.6",
"date": "2026-01-05",
"changes": [
"New: Thread-safe ReSpeaker USB access to prevent daemon deadlock"
]
},
{
"version": "0.2.4",
"date": "2026-01-05",
"changes": [
"Fix: Microphone volume control via daemon HTTP API"
]
},
{
"version": "0.2.3",
"date": "2026-01-05",
"changes": [
"Fix: Daemon crash caused by conflicting pose commands",
"Disable: Pose setter methods in ReachyController"
]
},
{
"version": "0.2.2",
"date": "2026-01-05",
"changes": [
"Fix: Second conversation motion failure",
"Reduce: Control loop from 20Hz to 10Hz",
"Improve: Connection recovery (faster reconnect)"
]
},
{
"version": "0.2.1",
"date": "2026-01-05",
"changes": [
"Fix: Daemon crash issue",
"Optimize: Code structure"
]
},
{
"version": "0.2.0",
"date": "2026-01-05",
"changes": [
"New: Automatic facial expressions during conversation",
"New: Emotion playback integration",
"Refactor: Integrate emotion playback into MovementManager"
]
},
{
"version": "0.1.5",
"date": "2026-01-04",
"changes": [
"Optimize: Code splitting and organization",
"Fix: Program crash issues"
]
},
{
"version": "0.1.0",
"date": "2026-01-01",
"changes": [
"Initial release",
"ESPHome protocol server implementation",
"mDNS auto-discovery for Home Assistant",
"Local wake word detection (microWakeWord)",
"Voice assistant pipeline integration",
"Basic motion feedback (nod, shake)"
]
}
]