All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Query Documents endpoint is a POST request for better DX
String
columns are nowTEXT
columns to match postgres best practices- Docstrings to have better stainless generations
- Dialectic API to use most recent user representation
- Prepared Statements Transient Error with
psycopg
- Queue parallel worker scheduling
- Ability to clone session for a user to achieve more loom-like behavior
- GitHub Actions Testing
- Ability to disable derivations on a session using the
deriver_disabled
flag in a session's metadata /v1/
prefix to all routes- Environment variable to control deriver workers
- public_ids to use NanoID and internal ID to
use
BigInt
- Dialectic Endpoint can take a list of queries
- Using
uv
for project management - User Representations stored in a metamessage rather than using reserved collection
- Base model for Dialectic API and Deriver is now Claude 3.5 Sonnet
- Paginated GET requests now POST requests for better developer UX
- Mirascope Dependency
- Slowapi Dependency
- Opentelemetry Dependencies and Setup
session_id
column toQueueItem
TableActiveQueueSession
Table to track, which sessions are being actively processed- Queue can process multiple sessions at once
- Sessions do not require a
location_id
- Detailed printing using
rich
- Test cases for Storage API
- Sentry tracing and profiling
- Additional Error handling
- Document API uses same embedding endpoint as deriver
- CRUD operations use one less database call by removing extra refresh
- Use database for timestampz rather than API
- Pydantic schemas to use modern syntax
- Deriver queue resolution
- Deriver to docker compose
- Postgres based Queue for background jobs
- Deriver to use a queue instead of supabase realtime
- Using mirascope instead of langchain
- Legacy SDKs in preference for stainless SDKs
- Documentation to OpenAPI
- Bearer token auth to OpenAPI routes
- Get by ID routes for users and collections
- NodeJS SDK support
- Authentication Middleware now implemented using built-in FastAPI Security module
- Get by name routes for users and collections now include "name" in slug
- Python SDK moved to separate respository
- Error reporting for methods with integrity errors due to unique key constraints
- Authentication Middleware Interface
- Full docker-compose for API and Database
- API Response schema removed unnecessary fields
- OTEL logging to properly work with async database engine
fly.toml
default settings for deriver setauto_stop=false
- Refactored API server into multiple route files
- Metadata to all data primitives (Users, Sessions, Messages, etc.)
- Ability to filter paginated GET requests by JSON filter based on metadata
- Optional Sentry error monitoring
- Optional Opentelemetry logging
- Dialectic API to interact with honcho agent and get insights about users
- Automatic Fact Derivation Script for automatically generating simple memory
- API Server now uses async methods to make use of benefits of FastAPI
- apps table with a relationship to the users table
- users table with a relationship to the collections and sessions tables
- Reverse Pagination support to get recent messages, sessions, etc. more easily
- Linting Rules
- Get sessions method returns all sessions including inactive
- using timestampz instead of timestamp
- Collections table to reference a collection of embedding documents
- Documents table to hold vector embeddings for RAG workflows
- Local scripts for running a postgres database with pgvector installed
- OpenAI Dependency for embedding models
- PGvector dependency for vector db support
- session_data is now metadata
- session_data is a JSON field used python
dict
for compatability
- Pagination for requests via
fastapi_pagination
- Metamessages
get_message
routescreated_at
field added to each Table- Message size limits
- IDs are now UUIDs
- default rate limit now 100 requests per minute
- Removed messages from session response model
- Rate limiting of 10 requests for minute
- Application level scoping