602 lines
19 KiB
Plaintext
602 lines
19 KiB
Plaintext
---
|
|
title: "Changelog"
|
|
icon: "clock-rotate-left"
|
|
---
|
|
|
|
Welcome to the Honcho changelog! This section documents all notable changes to the Honcho API and SDKs.
|
|
|
|
|
|
<Accordion title="How to Read This Changelog">
|
|
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
|
|
</Accordion>
|
|
|
|
### Honcho API and SDK Changelogs
|
|
<Tabs>
|
|
<Tab title="Honcho API">
|
|
<Update label="v3.0.0 (Current)">
|
|
### Changed
|
|
|
|
- Major version release
|
|
</Update>
|
|
|
|
<Update label="v2.5.1">
|
|
### Fixed
|
|
|
|
- Backwards compatibility for `message_ids` field in documents to handle legacy tuple format
|
|
</Update>
|
|
|
|
<Update label="v2.5.0">
|
|
### 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
|
|
</Update>
|
|
|
|
<Update label="v2.4.3">
|
|
### 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
|
|
</Update>
|
|
|
|
<Update label="v2.4.2">
|
|
### 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
|
|
</Update>
|
|
|
|
<Update label="v2.4.1">
|
|
### 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
|
|
</Update>
|
|
|
|
<Update label="v2.4.0">
|
|
### 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
|
|
|
|
</Update>
|
|
|
|
<Update label="v2.3.3">
|
|
### Changed
|
|
|
|
- Deriver Rollup Queue processes interleaved messages for more context
|
|
|
|
### Fixed
|
|
|
|
- Dialectic Streaming to follow SSE conventions
|
|
- Sentry tracing in the deriver
|
|
</Update>
|
|
|
|
<Update label="v2.3.2">
|
|
### 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
|
|
</Update>
|
|
<Update label="v2.3.1">
|
|
### Fixed
|
|
|
|
- Added max message count to deriver in order to not overflow token limits
|
|
</Update>
|
|
<Update label="v2.3.0">
|
|
### 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
|
|
</Update>
|
|
<Update label="v2.2.0">
|
|
### 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
|
|
</Update>
|
|
|
|
|
|
<Update label="v2.1.2">
|
|
### 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
|
|
</Update>
|
|
|
|
|
|
<Update label="v2.1.1">
|
|
### 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
|
|
</Update>
|
|
|
|
<Update label="v2.1.0">
|
|
### 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)
|
|
</Update>
|
|
|
|
<Update label="v2.0.5">
|
|
### Fixed
|
|
|
|
- Groq API client to use the Async library
|
|
</Update>
|
|
|
|
<Update label="v2.0.4">
|
|
### Fixed
|
|
|
|
- Migration/provision scripts did not have correct database connection arguments, causing timeouts
|
|
</Update>
|
|
|
|
<Update label="v2.0.3">
|
|
### Fixed
|
|
|
|
- Bug that causes runtime error when Sentry flags are enabled
|
|
</Update>
|
|
|
|
<Update label="v2.0.2">
|
|
### Fixed
|
|
|
|
- Database initialization was misconfigured and led to provision_db script failing: switch to consistent working configuration with transaction pooler
|
|
</Update>
|
|
|
|
<Update label="v2.0.1">
|
|
### 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
|
|
</Update>
|
|
|
|
<Update label="v2.0.0">
|
|
### 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
|
|
---
|
|
</Update>
|
|
|
|
<Update label="v1.1.0">
|
|
### 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
|
|
</Update>
|
|
|
|
<Update label="v1.0.0">
|
|
### 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
|
|
</Update>
|
|
|
|
## Previous Releases
|
|
|
|
For a complete history of all releases, see our [GitHub Releases](https://github.com/plastic-labs/honcho/tags) page.
|
|
</Tab>
|
|
|
|
<Tab title="Python SDK">
|
|
[Python SDK](https://pypi.org/project/honcho-ai/)
|
|
<Update label="v2.0.0 (Current)">
|
|
### Changed
|
|
|
|
- Major version release
|
|
</Update>
|
|
<Update label="v1.6.0">
|
|
### 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
|
|
</Update>
|
|
<Update label="v1.5.0">
|
|
### Added
|
|
|
|
- Delete workspace method
|
|
|
|
### Changed
|
|
|
|
- message_id of `Summary` model is a string nanoid
|
|
- Get Context can return Peer Card & Peer Representation
|
|
</Update>
|
|
<Update label="v1.4.1">
|
|
### 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
|
|
</Update>
|
|
<Update label="v1.4.0">
|
|
### 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)
|
|
</Update>
|
|
<Update label="v1.2.2">
|
|
### Added
|
|
|
|
- Filter parameter to various endpoints
|
|
|
|
</Update>
|
|
<Update label="v1.2.1">
|
|
### Fixed
|
|
|
|
- Honcho util import paths
|
|
|
|
</Update>
|
|
<Update label="v1.2.0">
|
|
### 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
|
|
|
|
</Update>
|
|
<Update label="v1.1.0">
|
|
### Fixed
|
|
|
|
- Properly handle AsyncClient
|
|
</Update>
|
|
</Tab>
|
|
|
|
<Tab title="TypeScript SDK">
|
|
[TypeScript SDK](https://www.npmjs.com/package/@honcho-ai/sdk)
|
|
<Update label="v2.0.0 (Current)">
|
|
### Changed
|
|
|
|
- Major version release
|
|
</Update>
|
|
<Update label="v1.6.0">
|
|
### 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
|
|
</Update>
|
|
<Update label="v1.5.0">
|
|
### Added
|
|
|
|
- Delete workspace method
|
|
|
|
### Changed
|
|
|
|
- message_id of `Summary` model is a string nanoid
|
|
- Get Context can return Peer Card & Peer Representation
|
|
</Update>
|
|
<Update label="v1.4.1">
|
|
### 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
|
|
</Update>
|
|
<Update label="v1.4.0">
|
|
### 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)
|
|
</Update>
|
|
<Update label="v1.2.1">
|
|
### Added
|
|
|
|
- linting via Biome
|
|
- Adding filter parameter to various endpoints
|
|
|
|
### Fixed
|
|
|
|
- Order of parameters in `getSessions` endpoint
|
|
</Update>
|
|
<Update label="v1.2.0">
|
|
### 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
|
|
</Update>
|
|
<Update label="v1.1.0">
|
|
### Fixed
|
|
|
|
- Create default workspace on Honcho client instantiation
|
|
- Simplified Honcho client import path
|
|
</Update>
|
|
</Tab>
|
|
</Tabs>
|
|
|
|
## 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
|