Release 0.23.0
v0.23.0 Release Notes
This release focuses on reliability and correctness improvements: hardening the event/op contract, fixing schema composition edge cases, and eliminating performance hazards in the session journal.
Bug Fixes
Cyclic Journal Protection
The session journal's Fold operation could hang indefinitely if a cycle existed in the journal chain. chainFromHead is now bounded, preventing infinite loops in malformed or corrupted journal state.
Schema Composition Fix
Resolved an issue with schema composition (PR #133) that could produce incorrect or invalid schemas in certain edge cases.
Contract Hardening
Several correctness issues in the core Event/Op contract were addressed:
- Fixed announce/envelope handling
- Added a proper
context-overflowerror type - Corrected ACP decode behavior
- Removed a dead
diagnosticsfield that was causing confusion - Improved MCP schema fidelity to better match the expected wire format
Improvements
Journal Performance — No-Copy Cost & LastUsage Derivation
Journal.Cost and Journal.LastUsage no longer allocate journal-sized copies when computing their results. Additionally, LastUsage's internal walk is now bounded, preventing unbounded traversal on large or pathological journals. This reduces memory pressure in agents with long-running sessions.
Commits
- Merge pull request #131 from jedwards1230/integration/contract-hardening (c702c40)
- Merge pull request #133 from jedwards1230/fix/119-schema-composition (a752b43)
- Merge pull request #121 from jedwards1230/perf/journal-no-copy (0ad5537)
Full Changelog: v0.22.0...v0.23.0