psycheros-v0.10.0
Added
- Bundled Google Suite plugin: Calendar, Contacts, Drive, Fit, Gmail, and
Tasks tools with full OAuth PKCE flow. Ships as a first-party bundled plugin —
enabled per-entity in the Plugins settings tab. - Context Inspector Plugins tab: view loaded plugins and their prompt-hook
detail directly in the inspector. - Per-conversation composer draft persistence: unsent text in the composer
is now saved per-conversation and restored on switch. - Configurable embedding model and chunk sizes: users can now choose the
embedding model and tune RAG chunk parameters from the Memory & RAG settings
page. Changing the model triggers a full re-embed. - Configurable eager-RAG chunk limit: controls how many chunks are eagerly
injected into context per turn. - Optional instructions field for synthesis tools: synthesis tool
definitions can now carry custom instructions for the LLM. - Per-component log-level filtering: set log verbosity per component
(gateway, RAG, entity loop, etc.) instead of a single global level.
Fixed
- Discord gateway silently drops and never reconnects: the gateway's
skipNextCloseflag was set unconditionally at the top ofconnectWs()but
was only consumed by the asynchronous close event of an outgoing WebSocket. On
initial connect (and any reconnect where the old WS was already null), no
close event ever fired, so the flag sat stale indefinitely. When Discord
rotated the connection a few hours later, the close handler saw the stale
flag, cleared it, and returned without scheduling a reconnect — leaving the
entity dark with no log lines and no recovery path short of a daemon restart.
The flag is now set only inside theif (this.ws)block in bothconnectWs()
andcloseAndReconnect(), so it's always paired with an actual close that
will consume it. Two related changes shipped together: (1) a 60-second health
watchdog now schedules a reconnect if the WebSocket is not open and no
reconnect is already pending — defence-in-depth on top of the heartbeat's
missed-ACK check, which only fires while the WS is OPEN; (2) the hard
10-attempt cap on reconnects is removed. Backoff stays bounded at 30s, so
transient outages are affordable to retry indefinitely; a permanent give-up
left no recovery path for token fixes, network changes, or DNS hiccups that
outlasted the old ~3-minute window. - Embedding config not applied on boot: saved embedding model/chunk settings
were loaded from DB but not propagated to the embedder singleton at startup.
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.