psycheros-v0.8.21
Fixed
- Voice: stop the "sent" cue tone firing mid-speaking in vanilla mode. TTS audio
leaking back into the mic triggered the browser VAD during the entity's turn,
which forced the pipeline state torecordingmid-response and let the next
user_silencerun a new turn on top of the in-flight one.pushAudionow
drops frames while the entity isprocessing/speaking, and the
user_speech_starthandler keeps theuserSpeakingflag (Pulse draining) but
no longer transitions state out of a mid-response turn. - Voice (playback): TTS chunk scheduling moved off the JS event loop. Each chunk
now starts at a trackednextStartTime(sample-accurate via
source.start(nextStartTime)) instead of waiting for the previous source's
onended, which fires 1–5ms late and produced a click at every chunk boundary
— audible as "crackling fire" on Bluetooth headsets and small-chunk providers
like ElevenLabs.
How to install
The canonical artifact for the harness is the container image:
docker pull ghcr.io/psycherosai/psycheros:<version>
# or `:latest` for the most recent releaseSee the README's Docker block
for the recommended docker run invocation, env-var reference, and volume
layout.
The archives prefixed Psycheros- below are GitHub's auto-attached
full-monorepo source — useful for building the image yourself, but the published
image at GHCR is the supported install path.