Skip to content

Releases: PsycherosAI/Psycheros

psycheros-v0.8.18

27 Jun 06:35
psycheros-v0.8.18
fadaac0

Choose a tag to compare

Fixed

  • Voice WebSocket: 25s ping heartbeat prevents Deno from killing the connection
    during long thinking periods (tool calls, LLM round-trips).
  • Vanilla (continuous) voice mode: pttMode is now compared as "ptt" instead
    of truthy, so non-PTT mode no longer blocks audio frame sending at call start.
  • Tauri 2.x desktop: native mic capture delivers frames as ArrayBuffer, not
    Array. Both shapes are now handled in the voice WebSocket send path and the
    mic test diagnostic.

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 release

See 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.

psycheros-v0.8.17

26 Jun 08:32
psycheros-v0.8.17
83165cb

Choose a tag to compare

Fixed

  • PTT mode: gate audio frame sending and server-side audio on pttHolding to
    prevent spurious RECORDING state
  • PTT mode: remove global pttEnabled, make PTT per-call only
  • PTT mode: add session.pttMode to track PTT vs vanilla mode
  • UI state: always show 'Listening' for idle state regardless of PTT mode
  • UI state: show 'Listening' not 'Recording' in vanilla mode
  • STT provider: fix module-level sttProvider in fallback path
  • VAD: reset nativePeakRms in browser VAD
  • VAD: send user_speech_start when VAD detects speech (server STT)

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 release

See 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.

psycheros-v0.8.16

26 Jun 00:55
psycheros-v0.8.16
b756ea5

Choose a tag to compare

Fixed

  • Silence detector check loop no longer dies when analyserNode isn't ready
    yet. An early return cancelled rescheduling, leaving VAD dead for the entire
    call — same bug class as the WS-connect race fixed in 0.8.15, now also fixed
    for the browser-STT audio-analysis path.

Changed

  • Added VAD state-transition diagnostic logging: speech detected (with RMS +
    capture source), silence-after-speech (with timer duration), and
    user_silence sent. Visible in the voice debug panel and /api/voice/log.

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 release

See 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.

psycheros-v0.8.15

26 Jun 00:26
psycheros-v0.8.15
b608f06

Choose a tag to compare

Fixed

  • Voice-chat config <script> tags (sttProvider, pttEnabled, etc.) were
    orphaned during fragment mounting — only the overlay <div> reached the DOM.
    On mobile (Chrome Android) this silently fell back to browser STT instead of
    the configured Deepgram provider, producing garbled transcriptions and sending
    zero audio frames to the server. Desktop (Tauri) was unaffected. All fragment
    children now mount correctly.
  • Silence detector (VAD) now starts when push-to-talk is toggled off mid-call
    for server-side STT. Previously it only ran at call init when PTT was globally
    off — so toggling PTT off after call start left the call stuck on RECORDING
    indefinitely.
  • Silence detector check loop no longer dies when the voice WebSocket isn't open
    yet. An early return cancelled rescheduling, leaving VAD dead for the entire
    call until a full restart.

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 release

See 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.

psycheros-v0.8.13

25 Jun 04:19
psycheros-v0.8.13
4d88108

Choose a tag to compare

Fixed

  • Fixed silent config fetch failure in voice chat by falling back to
    /api/voice/status when the HTML config peek returns 'browser'. This recovers
    the correct STT provider and activates native mic capture.
  • Simplified context inspector label to just the turn number instead of the
    unreadable "Turn X / Y of Z" on conversations longer than 50 turns.

Changed

  • Added comprehensive diagnostics for voice calls: POST /api/voice/log
    endpoint, unconditional diagnostic logs at config resolution, native capture
    success/failure, and config peek recovery.
  • Added STT/TTS provider info to /api/voice/status response and voice chat
    logs.
  • Added live-session capture event logging to prove frames route through the
    live voice session (not the test probe).

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 release

See 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.

entity-core-v0.4.4

25 Jun 04:19
entity-core-v0.4.4
4d88108

Choose a tag to compare

Fixed

  • Fixed orphaned vec_graph_nodes entries that appeared after prune/merge
    phases. verifyVectorTableSync now removes orphans on startup instead of just
    warning; consolidateGraph adds a Phase 5 sweep that removes vec entries for
    any soft-deleted node.

How to install

This package ships as a scoped source release. Download entity-core-v*.tar.gz
(or .zip) — those archives contain the entity-core package tree only.

The archives prefixed Psycheros- are GitHub's auto-attached full-monorepo
source — they contain the whole workspace, useful if you want the companion
packages too.

psycheros-v0.8.12

24 Jun 06:59
psycheros-v0.8.12
20b7880

Choose a tag to compare

Fixed

  • Fixed a memory loading bug in the editor where GET handler for
    /fragments/settings/memories/:granularity/:date stripped the slug before
    calling readMemory, so entity-core fell into findMemoryByDate and returned
    the first file matching the date prefix. On dates with multiple significant
    memories, the editor loaded the wrong memory's body while showing the correct
    title.

Changed

  • Added comprehensive voice pipeline diagnostic logging to trace audio flow from
    mic capture through to STT output. Five new logging points: JS
    handleVoiceMessage (daemon message types), JS channel.onmessage (frame
    send counts), daemon binary frame reception (WS handler), daemon STT
    lifecycle, and Rust tap block RMS audio level (detects silent capture). With
    voiceChatDebug on, a single voice call shows exactly where audio dies in the
    pipeline.
  • Added frame-send logging to voice.js to track dropped frames when voiceWs
    isn't open yet and the first successful frame transmission to the WebSocket.
    Logging is throttled to avoid drowning the console.
  • Restored the macOS mic permission check (authorizationStatus) before calling
    requestAccess to skip redundant permission prompts on subsequent voice
    calls.

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 release

See 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.

launcher-v2-v0.2.42

24 Jun 06:59
launcher-v2-v0.2.42
20b7880

Choose a tag to compare

Fixed

  • macOS mic permission prompt now appears only once (first voice call) instead
    of every call. Restored the authorizationStatus check before requestAccess
    — if macOS already reports "authorized" (status 3), skip the request and
    return early without triggering the system permission prompt.

Changed

  • Added RMS audio level logging to the Rust tap block (every 100th frame) to
    detect when mic capture is producing silence vs actual audio. 0.0 = dead
    silence (wrong device or muted), ~0.05 = room noise, ~0.1+ = speech. This
    catches "frames are flowing but mic isn't capturing" — the hardest issue to
    diagnose without direct measurement. Uses Arc<AtomicU32> for the frame
    counter since the tap closure must be Fn (not FnMut) and is called from
    AVAudioEngine's render thread.

macOS

Download Psycheros_<version>_aarch64.dmg, double-click to mount, drag the
Psycheros app into Applications/.

The build is unsigned by deliberate decision. macOS Gatekeeper will refuse
to open it on first launch with "can't be verified." The dance to bypass this is
one-time per install:

  1. Right-click the Psycheros app in Applications → Open.
  2. The OS shows a confirmation dialog with an Open button (vs. only
    Cancel in the default double-click flow).
  3. Future launches work normally.

Once installed, the app supervises a persistent Psycheros daemon via launchd —
closing the window doesn't stop me. See the in-app Diagnostics card for paths
and the Settings card for entity config.

Psycheros.app.tar.gz is the auto-updater bundle format — not useful for
first-install; it's consumed by tauri-plugin-updater when the launcher checks
for shell-binary updates.

Windows

Download Psycheros_<version>_x64_en-US.msi and run it.

Windows SmartScreen will flag the installer as unrecognized because it is
unsigned. Click More infoRun anyway to proceed. This is one-time
per version.

The installer places Psycheros in C:\Program Files\Psycheros\. At the end of
the wizard, the launcher registers a Task Scheduler job that supervises the
daemon — closing the launcher window or the system-tray icon does not stop
the daemon. The daemon starts at login and restarts automatically on crash.

Psycheros_<version>_x64-setup.exe is the NSIS-based alternative installer with
the same content — use whichever you prefer.

launcher-v2-v0.2.41

24 Jun 04:22
launcher-v2-v0.2.41
90195d7

Choose a tag to compare

Fixed

  • macOS mic-capture now correctly resamples audio at any hardware sample rate,
    not just 48kHz. The integer decimation from 0.2.40 only handled 48kHz cleanly;
    at 24kHz (which AVAudioEngine hands out for some AirPods configurations) it
    shipped audio at the wrong rate, which would have produced garbage
    speech-to-text. Switched to linear interpolation with a float ratio — works
    for 48kHz, 44.1kHz, 32kHz, 24kHz, and 16kHz hardware formats. Also adds a
    defensive bounds check to skip empty buffers and avoid reading past the input.

macOS

Download Psycheros_<version>_aarch64.dmg, double-click to mount, drag the
Psycheros app into Applications/.

The build is unsigned by deliberate decision. macOS Gatekeeper will refuse
to open it on first launch with "can't be verified." The dance to bypass this is
one-time per install:

  1. Right-click the Psycheros app in Applications → Open.
  2. The OS shows a confirmation dialog with an Open button (vs. only
    Cancel in the default double-click flow).
  3. Future launches work normally.

Once installed, the app supervises a persistent Psycheros daemon via launchd —
closing the window doesn't stop me. See the in-app Diagnostics card for paths
and the Settings card for entity config.

Psycheros.app.tar.gz is the auto-updater bundle format — not useful for
first-install; it's consumed by tauri-plugin-updater when the launcher checks
for shell-binary updates.

Windows

Download Psycheros_<version>_x64_en-US.msi and run it.

Windows SmartScreen will flag the installer as unrecognized because it is
unsigned. Click More infoRun anyway to proceed. This is one-time
per version.

The installer places Psycheros in C:\Program Files\Psycheros\. At the end of
the wizard, the launcher registers a Task Scheduler job that supervises the
daemon — closing the launcher window or the system-tray icon does not stop
the daemon. The daemon starts at login and restarts automatically on crash.

Psycheros_<version>_x64-setup.exe is the NSIS-based alternative installer with
the same content — use whichever you prefer.

launcher-v2-v0.2.40

24 Jun 02:54
launcher-v2-v0.2.40
3908c1d

Choose a tag to compare

Fixed

  • macOS mic-capture no longer crashes on start. The crash log from 0.2.39
    pinpointed the failure to installTapOnBus_bufferSize_format_block — Apple
    throws NSInvalidArgumentException when the tap format doesn't match the
    input node's output format. We were requesting 16kHz Float32 on a hardware
    input node that runs at 48kHz. The fix queries the hardware's actual format
    via outputFormatForBus(0) and decimates in Rust to ~16kHz (take every Nth
    sample) — same algorithm the original JS path used. Mic capture now works on
    all Macs regardless of native sample rate.

macOS

Download Psycheros_<version>_aarch64.dmg, double-click to mount, drag the
Psycheros app into Applications/.

The build is unsigned by deliberate decision. macOS Gatekeeper will refuse
to open it on first launch with "can't be verified." The dance to bypass this is
one-time per install:

  1. Right-click the Psycheros app in Applications → Open.
  2. The OS shows a confirmation dialog with an Open button (vs. only
    Cancel in the default double-click flow).
  3. Future launches work normally.

Once installed, the app supervises a persistent Psycheros daemon via launchd —
closing the window doesn't stop me. See the in-app Diagnostics card for paths
and the Settings card for entity config.

Psycheros.app.tar.gz is the auto-updater bundle format — not useful for
first-install; it's consumed by tauri-plugin-updater when the launcher checks
for shell-binary updates.

Windows

Download Psycheros_<version>_x64_en-US.msi and run it.

Windows SmartScreen will flag the installer as unrecognized because it is
unsigned. Click More infoRun anyway to proceed. This is one-time
per version.

The installer places Psycheros in C:\Program Files\Psycheros\. At the end of
the wizard, the launcher registers a Task Scheduler job that supervises the
daemon — closing the launcher window or the system-tray icon does not stop
the daemon. The daemon starts at login and restarts automatically on crash.

Psycheros_<version>_x64-setup.exe is the NSIS-based alternative installer with
the same content — use whichever you prefer.