github plastic-labs/honcho v3.2.2

4 hours ago

Added

  • CACHE_CONNECT_TIMEOUT_SECONDS (default 5) and CACHE_CONNECT_RETRIES (default 3). The Redis client retries a failed connect with exponential backoff (0.1s base, 0.5s cap), so an instance that boots alongside several others no longer fails on a single Timeout connecting to server (#1234)

Changed

  • Listing a peer's sessions uses a new session_peers (workspace_name, peer_name, session_name) index and starts from that peer's rows instead of walking every session in the workspace (28.9ms to 0.15ms on a 326k-row test table). This release includes a migration. The index is not built CONCURRENTLY, so writes to session_peers wait while it builds (#1237)
  • LLM provider 5xx and connection errors are no longer sent to Sentry on every attempt by the Anthropic, OpenAI, and Google GenAI SDK integrations. Honcho reports the final error once its retries are exhausted, so an outage that recovers on retry no longer alerts. Client errors (400, 401, 404, 429) are still reported (#1242)
  • Dialectic and dreamer runs are typed agent in Langfuse, so they appear in the Agent Graph. Generation output with tool calls is an OpenAI-style assistant message carrying the tool arguments and any thinking, instead of just the tool names. The langfuse floor rises to >=4.6.1 (#1258)
  • The deriver prompt and output schema no longer carry example facts. New rules resolve relative dates against each message's time, treat details in a question or proposal the target peer accepts as stated by them, skip conversational mechanics (greetings, thanks, acknowledgements), and keep one fact per conclusion with its qualifiers attached and no reworded duplicates (#1263)

Removed

  • Inline Langfuse instrumentation and the LANGFUSE_EXPORTER_MODE setting. Langfuse traces now come only from the exporter over the captured LLM call stream, which has been the default since 3.0.12. A leftover LANGFUSE_EXPORTER_MODE=inline is ignored. The exporter only registers when TELEMETRY_ENABLED is true, so deployments that set Langfuse keys with telemetry off no longer get traces (#1253)

Fixed

  • Context routes (GET /peers/{id}/context, POST /peers/{id}/representation, GET /sessions/{id}/context) truncate a search_query longer than EMBEDDING.MAX_INPUT_TOKENS (8192) before embedding it. Before, the embed failed and the route returned a 200 with semantic results silently dropped. Session context also releases its DB connection before the embedding call (#1255)
  • Langfuse traces reflect what happened: generations show the call's real latency, every trace has one root observation, user_id and the trace name sit on every observation, run and step spans stay open until the run ends, and tool spans carry the result and real duration (#1235)
  • A Redis connection dropped while idle is reconnected and the command retried, instead of failing the request. uvloop raised a RuntimeError on the closed transport, which redis-py did not treat as a connection error (#1245)

Don't miss a new honcho release

NewReleases is sending notifications on new releases.