skeino 1.1.0
Changed
- The SQLite metadata store enables
journal_mode=WALand a 10 s busy timeout at setup, preventingdatabase is lockederrors when sharing a database file with the SQLite checkpointer. WAL persists in the database file once enabled. (#36) - Metadata store row shapes are now a typed contract:
ThreadRow/RunRowTypedDicts (exported fromskeino.persistence) replace thedict[str, Any]returns onMetadataStoreProtocol, and every backend now always includes theerrorkey on run rows. HTTP responses are unchanged; customMetadataStoreProtocolimplementations should return the new shapes. (#36) - MongoDB: both the checkpointer and the metadata store now use the database named in the
mongodb://…/<db>URI path. URIs without a path keep the previous defaults (checkpointing_dbfor checkpoints,skeinofor metadata). If your URI already names a database, both stores re-point to it on upgrade — existing data in the old default databases is not migrated. (#36)
Fixed
- Per-run token usage is now measured with a
UsageMetadataCallbackHandlerattached to each run's config, soX-Tokens-Usedand the streamingendevent report the run's own tokens — including for graphs that never store usage-bearing messages in checkpoint state (previously reported as 0), and without the cumulative over-count on multi-turn threads. Summing the final checkpoint's messages remains as a fallback. (#52) - PyPI trove classifier updated to
Development Status :: 5 - Production/Stable. (#48)
Internal
- New infra-backed
tests/apisuite exercising the HTTP surface against real Postgres/Mongo/Redis via docker compose (local-only, not in CI). (#47)
Full Changelog: v1.0.1...v1.1.0