Releases: ndrco/Listener
Releases · ndrco/Listener
Release list
Listener v0.2.7 - OpenClaw gateway v4 and emoji display while speaker is off
- Updated Listener's OpenClaw websocket clients to negotiate Gateway protocol v4 for both input-side forwarding and SpeakerAgent history/event reads.
- Kept emoji-display working even when spoken replies are disabled, so emoji can still appear on the external display while local TTS stays off.
- Added a loopback-only fallback for reading the local OpenClaw gateway token, which fixes
device identity requiredfailures for Listener's websocket path. - Added an explicit PATH entry for
/home/re/.local/binin the Listener systemd template so CLI fallback can still findopenclawwhen needed. - Expanded regression coverage for Gateway v4 compatibility and emoji-display behavior with
speaker.enabled=false. - Bumped runtime version to
0.2.7.
Listener v0.2.6 - Speaker voice controls and ducking recovery
- Added local voice commands to disable and re-enable spoken replies with phrases like
"<Имя> выключи озвучку"and"<Имя> включи озвучку". - Added an OpenClaw
listener-speaker-offskill/tool for turning Listener speech output off from the workspace. - Fixed ducking recovery so persisted baseline volumes survive stream recreation and short sink-input disappearance during or after speech.
- Taught forced ducking recovery to match streams by route key, not only by the old sink-input id, which helps Chrome/PipeWire sessions recover their volume.
- Expanded docs and regression coverage for speaker voice controls and ducking restoration.
- Bumped runtime version to
0.2.6.
Listener v0.2.5 - Emoji display simplification and import resilience
What changed
- Simplified emoji display delivery: Listener now sends only the latest emoji token from a segment and defaults
speaker.emoji_display.sendtolast. - Kept backward compatibility for existing configs by accepting legacy
send=alland mapping it tolast. - Made
audioandllmpackage exports lazy so control, Speaker, and status code paths can import cleanly before optional ML dependencies are loaded. - Changed
torch-backed SpeechGate and Silero helpers to fail only when those features are instantiated, rather than during unrelated module imports. - Expanded README, release docs, and test coverage for the new emoji-display behavior.
- Bumped runtime version to
0.2.5.
Validation
.venv/bin/python -m py_compile main.py agents/control_agent.py agents/openclaw_input_agent.py agents/speaker_agent.py agents/speech_gate_agent.py audio/ducking.py llm/speech_gate.py speaker/*.py utils/listenerctl.pyPYTHONPATH=. pytest -q tests/test_control_agent.py tests/test_main_service.py tests/test_speaker_emoji.py tests/test_speaker_config.py tests/test_speaker_events.py tests/test_speaker_service.py tests/test_speaker_tts.py tests/test_speaker_agent.py tests/test_sound_indicators.py-> 76 passedgit diff --check-> clean
Listener v0.2.4 - Speaker recovery and service controls
What changed
- Fixed streaming Speaker routing stalls on file names such as
MEMORY.mdandAGENTS.md; Listener no longer stops speaking after those dots. - Added stronger SpeechGate/Speaker reset flow for service reloads, including ducking recovery and route-setting normalization.
- Improved Speaker playback reliability on Linux with
paplaymetadata/volume handling and persisted ducking baselines. - Expanded service, OpenClaw, Speaker, emoji, and troubleshooting documentation.
- Bumped runtime version to
0.2.4.
Validation
python -m pytest -q-> 174 passed, 1 warninggit diff --check-> clean
Listener v0.2.3 - OpenClaw gateway client fix
Patch release for service installs.\n\n- Use the OpenClaw Gateway-accepted client id for Listener input RPC connections so chat.send can use the persistent WebSocket path instead of falling back to CLI.\n- Add regression coverage for the Gateway connect payload.\n\nValidation: local pytest passed (164 tests), GitHub Actions passed for commit a4799be.
Listener v0.2.2 - Reliable service shutdown
Fixes
- Make
ExecStopbest-effort in the systemd user-service template. - Prevent
listenerctl stop//shutdownfrom causing a failed unit result when Listener has already stopped before systemd runsExecStop. - Document the best-effort shutdown behavior.
Verification
- Local:
python -m pytest -qpassed with163 passed, 1 warning. - GitHub Actions: latest
mainworkflow passed.
Listener v0.2.1 - Clean service installs
Fixes
- Do not ship
state/runtime_state.jsonin releases. New installations now start fromconfig/config.jsoninstead of inheriting a developer machine runtime mode. - Keep
state/in the repository with.gitkeepand ignore generated runtime state JSON files. - Document that runtime mode state is created locally on the installed machine.
Verification
- Local:
python -m pytest -qpassed with163 passed, 1 warning. - GitHub Actions: latest
mainworkflow passed.
Listener v0.2.0 - Service-ready voice runtime
Highlights
- Added Linux
systemd --userservice support withdeploy/systemd/listener.serviceandutils/install_user_service.py. - Added service lifecycle controls:
listenerctl health,listenerctl ready,listenerctl stop, plus/readyand/shutdowncontrol API endpoints. - Added
service.strict_startupfor failing service startup when critical components cannot start. - Added persisted runtime state for speech-gate/speaker modes across restarts.
- Reduced spoken-reply latency with persistent TTS/ducking improvements and structured performance logs.
- Fixed missing spoken reply tails by reconciling streaming
finalevents againstchat.history. - Improved setup documentation in
README.md,INSTALL.md, anddocs/service.md.
Verification
- Local:
python -m py_compile ...passed. - Local:
python -m pytest -qpassed with163 passed, 1 warning. - GitHub Actions: latest
mainworkflow passed.
Notes
This release is Linux-first. The recommended service mode is a foreground Python process supervised by systemd --user, so Listener keeps access to the user audio session.
Listener v0.1.0 - Linux voice runtime for OpenClaw
Listener v0.1.0 - Linux voice runtime for OpenClaw
- Linux-first microphone, VAD, STT and AEC loopback pipeline.
- Whisper STT integration with async executor isolation.
- SpeechGate directed-speech filtering with OpenClaw identity discovery.
- Runtime SpeechGate control API and listenerctl.
- OpenClaw workspace skill for voice-mode control.
- Removed unused speaker diarization / speaker-recognition functionality.