--- title: "Changelog" icon: "clock-rotate-left" --- Welcome to the Honcho changelog! This section documents all notable changes to the Honcho API and SDKs. Each release is documented with: - **Added**: New features and capabilities - **Changed**: Modifications to existing functionality - **Deprecated**: Features that will be removed in future versions - **Removed**: Features that have been removed - **Fixed**: Bug fixes and corrections - **Security**: Security-related improvements ## Version Format Honcho follows [Semantic Versioning](https://semver.org/): - **MAJOR** version for incompatible API changes - **MINOR** version for backwards-compatible functionality additions - **PATCH** version for backwards-compatible bug fixes ### Honcho API and SDK Changelogs ### Changed - Major version release ### Fixed - Backwards compatibility for `message_ids` field in documents to handle legacy tuple format ### Added - Message level configurations - CRUD operations for observations - Comprehensive test cases for harness - Peer level get_context - Set Peer Card Method - Manual dreaming trigger endpoint ### Changed - Configurations to support more flags for fine-grained control of the deriver, peer cards, summaries, etc. - Working Representations to support more fine-grained parameters ### Fixed - File uploads to match `MessageCreate` structure - Cache invalidation strategy ### Added - Redis caching to improve DB IO - Backup LLM provider to avoid failures when a provider is down ### Changed - QueueItems to use standardized columns - Improved Deduplication logic for Representation Tasks - More finegrained metrics for representation, summary, and peer card tasks - DB constraint to follow standard naming conventions ### Fixed - Langfuse tracing to have readable waterfalls - Alembic Migrations to match models.py - message_in_seq correctly included in webhook payload ### Changed - Alembic to always use a session pooler - Statement timeout during alembic operations to 5 min ### Added - Alembic migration validation test suite ### Fixed - Alembic migrations to batch changes - Batch message creation sequence number ### Changed - Logging infrastructure to remove noisy messages - Sentry integration is centralized ### Added - Unified `Representation` class - vllm client support - Periodic queue cleanup logic - WIP Dreaming Feature - LongMemEval to Test Bench - Prometheus Client for better Metrics - Performance metrics instrumentation - Error reporting to deriver - Workspace Delete Method - Multi-db option in test harness ### Changed - Working Representations are Queried on the fly rather than cached in metadata - EmbeddingStore to RepresentationFactory - Summary Response Model to use public_id of message for cutoff - Semantic across codebase to reference resources based on `observer` and `observed` - Prompts for Deriver & Dialectic to reference peer_id and add examples - `Get Context` route returns peer card and representation in addition to messages and summaries - Refactoring logger.info calls to logger.debug where applicable ### Fixed - Gemini client to use async methods ### Changed - Deriver Rollup Queue processes interleaved messages for more context ### Fixed - Dialectic Streaming to follow SSE conventions - Sentry tracing in the deriver ### Added - Get peer cards endpoint (`GET /v3/peers/{peer_id}/peer-card`) for retrieving targeted peer context information ### Changed - Replaced Mirascope dependency with small client implementation for better control - Optimized deriver performance by using joins on messages table instead of storing token count in queue payload - Database scope optimization for various operations - Batch representation task processing for ~10x speed improvement in practice ### Fixed - Separated clean and claim work units in queue manager to prevent race conditions - Skip locked ActiveQueueSession rows on delete operations - Langfuse SDK integration updates for compatibility - Added configurable maximum message size to prevent token overflow in deriver - Various minor bugfixes ### Fixed - Added max message count to deriver in order to not overflow token limits ### Added - `getSummaries` endpoint to get all available summaries for a session directly - Peer Card feature to improve context for deriver and dialectic ### Changed - Session Peer limit to be based on observers instead, renamed config value to `SESSION_OBSERVERS_LIMIT` - `Messages` can take a custom timestamp for the `created_at` field, defaulting to the current time - `get_context` endpoint returns detailed `Summary` object rather than just summary content - Working representations use a FIFO queue structure to maintain facts rather than a full rewrite - Optimized deriver enqueue by prefetching message sequence numbers (eliminates N+1 queries) ### Fixed - Deriver uses `get_context` internally to prevent context window limit errors - Embedding store will truncate context when querying documents to prevent embedding token limit errors - Queue manager to schedule work based on available works rather than total number of workers - Queue manager to use atomic db transactions rather than long lived transaction for the worker lifecycle - Timestamp formats unified to ISO 8601 across the codebase - Internal get_context method's cutoff value is exclusive now ### Added - Arbitrary filters now available on all search endpoints - Search combines full-text and semantic using reciprocal rank fusion - Webhook support (currently only supports queue_empty and test events, more to come) - Small test harness and custom test format for evaluating Honcho output quality - Added MCP server and documentation for it ### Changed - Search has 10 results by default, max 100 results - Queue structure generalized to handle more event types - Summarizer now exhaustive by default and tuned for performance ### Fixed - Resolve race condition for peers that leave a session while sending messages - Added explicit rollback to solve integrity error in queue - Re-introduced Sentry tracing to deriver - Better integrity logic in get_or_create API methods ### Fixed - Summarizer module to ignore empty summaries and pass appropriate one to get_context - Structured Outputs calls with OpenAI provider to pass strict=True to Pydantic Schema ### Added - Test harness for custom Honcho evaluations - Better support for session and peer aware dialectic queries - Langfuse settings - Added recent history to dialectic prompt, dynamic based on new context window size setting ### Fixed - Summary queue logic - Formatting of logs - Filtering by session - Peer targeting in queries ### Changed - Made query expansion in dialectic off by default - Overhauled logging - Refactor summarization for performance and code clarity - Refactor queue payloads for clarity ### Added - File uploads - Brand new "ROTE" deriver system - Updated dialectic system - Local working representations - Better logging for deriver/dialectic - Deriver Queue Status no longer has redundant data ### Fixed - Document insertion - Session-scoped and peer-targeted dialectic queries work now - Minor bugs ### Removed - Peer-level messages ### Changed - Dialectic chat endpoint takes a single query - Rearranged configuration values (LLM, Deriver, Dialectic, History->Summary) ### Fixed - Groq API client to use the Async library ### Fixed - Migration/provision scripts did not have correct database connection arguments, causing timeouts ### Fixed - Bug that causes runtime error when Sentry flags are enabled ### Fixed - Database initialization was misconfigured and led to provision_db script failing: switch to consistent working configuration with transaction pooler ### Added - Ergonomic SDKs for Python and TypeScript (uses Stainless underneath) - Deriver Queue Status endpoint - Complex arbitrary filters on workspace/session/peer/message - Message embedding table for full semantic search ### Changed - Overhauled documentation - BasedPyright typing for entire project - Resource filtering expanded to include logical operators ### Fixed - Various bugs - Use new config arrangement everywhere - Remove hardcoded responses ### Added - Ability to get a peer's working representation - Metadata to all data primitives (Workspaces, Peers, Sessions, Messages) - Internal metadata to store Honcho's state no longer exposed in API - Batch message operations and enhanced message querying with token and message count limits - Search and summary functionalities scoped by workspace, peer, and session - Session context retrieval with summaries and token allocatio - HNSW Index for Documents Table - Centralized Configuration via Environment Variables or config.toml file ### Changed - New architecture centered around the concept of a "peer" replaces the former "app"/"user"/"session" paradigm - Workspaces replace "apps" as top-level namespace - Peers replace "users" - Sessions no longer nested beneath peers and no longer limited to a single user-assistant model. A session exists independently of any one peer and peers can be added to and removed from sessions. - Dialectic API is now part of the Peer, not the Session - Dialectic API now allows queries to be scoped to a session or "targeted" to a fellow peer - Database schema migrated to adopt workspace/peer/session naming and structure - Authentication and JWT scopes updated to workspace/peer/session hierarchy - Queue processing now works on 'work units' instead of sessions - Message token counting updated with tiktoken integration and fallback heuristic - Queue and message processing updated to handle sender/target and task types for multi-peer scenarios ### Fixed - Improved error handling and validation for batch message operations and metadata - Database Sessions to be more atomic to reduce idle in transaction time ### Removed - Metamessages removed in favor of metadata - Collections and Documents no longer exposed in the API, solely internal - Obsolete tests for apps, users, collections, documents, and metamessages --- ### Added - Normalize resources to remove joins and increase query performance - Query tracing for debugging ### Changed - `/list` endpoints to not require a request body - `metamessage_type` to `label` with backwards compatability - Database Provisioning to rely on alembic - Database Session Manager to explicitly rollback transactions before closing the connection ### Fixed - Alembic Migrations to include initial database migrations - Sentry Middleware to not report Honcho Exceptions ### Added - JWT based API authentication - Configurable logging - Consolidated LLM Inference via `ModelClient` class - Dynamic logging configurable via environment variables ### Changed - Deriver & Dialectic API to use Hybrid Memory Architecture - Metamessages are not strictly tied to a message - Database provisioning is a separate script instead of happening on startup - Consolidated `session/chat` and `session/chat/stream` endpoints ## Previous Releases For a complete history of all releases, see our [GitHub Releases](https://github.com/plastic-labs/honcho/tags) page. [Python SDK](https://pypi.org/project/honcho-ai/) ### Changed - Major version release ### Added - metadata and configuration fields to Workspace, Peer, Session, and Message objects - Session Clone methods - Peer level get_context method - `ObservationScope` object to perform CRUD operations on observations - Representation object for WorkingRepresentations ### Changed - methods that take IDs, can all optionally take an object of the same type ### Added - Delete workspace method ### Changed - message_id of `Summary` model is a string nanoid - Get Context can return Peer Card & Peer Representation ### Added - Get Peer Card method - Update Message metadata method - Session level deriver status methods - Delete session message ### Fixed - Dialectic Stream returns Iterators - Type warnings ### Changed - Pagination class to match core implementation ### Added - getSummaries API returning structured summaries - Webhook support ### Changed - Messages can take an optional `created_at` value, defaulting to the current time (UTC ISO 8601) ### Added - Filter parameter to various endpoints ### Fixed - Honcho util import paths ### Added - Get/poll deriver queue status endpoints added to workspace - Added endpoint to upload files as messages ### Removed - Removed peer messages in accordance with Honcho 2.1.0 ### Changed - Updated chat endpoint to use singular `query` in accordance with Honcho 2.1.0 ### Fixed - Properly handle AsyncClient [TypeScript SDK](https://www.npmjs.com/package/@honcho-ai/sdk) ### Changed - Major version release ### Added - metadata and configuration fields to Workspace, Peer, Session, and Message objects - Session Clone methods - Peer level get_context method - `ObservationScope` object to perform CRUD operations on observations - Representation object for WorkingRepresentations ### Changed - methods that take IDs, can all optionally take an object of the same type ### Added - Delete workspace method ### Changed - message_id of `Summary` model is a string nanoid - Get Context can return Peer Card & Peer Representation ### Added - Get Peer Card method - Update Message metadata method - Session level deriver status methods - Delete session message ### Fixed - Dialectic Stream returns Iterators - Type warnings ### Changed - Pagination class to match core implementation ### Added - getSummaries API returning structured summaries - Webhook support ### Changed - Messages can take an optional `created_at` value, defaulting to the current time (UTC ISO 8601) ### Added - linting via Biome - Adding filter parameter to various endpoints ### Fixed - Order of parameters in `getSessions` endpoint ### Added - Get/poll deriver queue status endpoints added to workspace - Added endpoint to upload files as messages ### Removed - Removed peer messages in accordance with Honcho 2.1.0 ### Changed - Updated chat endpoint to use singular `query` in accordance with Honcho 2.1.0 ### Fixed - Create default workspace on Honcho client instantiation - Simplified Honcho client import path ## Getting Help If you encounter issues using the Honcho API or its SDKs: 1. Open an issue on [GitHub](https://github.com/plastic-labs/honcho/issues) 2. Join our [Discord community](http://discord.gg/plasticlabs) for support