What's Changed
- doc: changelog and blog post by @nicoloboschi in #445
- doc: improvements by @nicoloboschi in #448
- doc: 0.4.14 by @nicoloboschi in #449
- feat: observation_scopes field to drive observations granularity by @nicoloboschi in #447
- feat(openclaw): retain last n+2 turns every n turns (default n=10) by @fabioscarsi in #452
- Add bank-scoped validation to engine and HTTP handlers by @cdbartholomew in #454
- fix: JSON serialization and logging exception propagation in claude_code_llm by @nicoloboschi in #461
- fix: zeroentropy rerank URL missing /v1 prefix and MCP retain async_processing param by @nicoloboschi in #460
- fix(control-plane): observations count always showing 0 by @nicoloboschi in #464
- fix: resolve consolidation deadlock caused by zombie processing tasks on retry by @nicoloboschi in #463
- fix(reflect): prevent context_length_exceeded on large memory banks by @nicoloboschi in #462
- feat: support timestamp="unset" to retain content without a date by @nicoloboschi in #465
- feat: entity labels — optional, free_values, multi_value, UI polish by @nicoloboschi in #450
- docs: entities vs tags vs metadata by @nicoloboschi in #466
- feat: add Pydantic AI integration for persistent agent memory by @benfrank241 in #441
- feat: add Pydantic AI integration to CI, release pipeline, and docs by @nicoloboschi in #467
- feat: add tags filtering and q description fix for list documents API by @nicoloboschi in #468
- blog: add CrewAI persistent memory post by @benfrank241 in #471
- feat: add extension hooks for root routing and error headers by @DK09876 in #470
- refactor(openclaw): replace console.log with debug() helper by @slayoffer in #456
- fix(performance): improve recall and retain performance on large banks by @nicoloboschi in #469
- feat: configurable Gemini/Vertex AI safety settings by @nicoloboschi in #473
- perf(recall): improve single-query chunk fetch by @nicoloboschi in #475
- fix(ts-sdk): send null instead of undefined when includeEntities is false by @nicoloboschi in #476
- refactor: replace set_gemini_safety_settings() with LLMProvider.with_config() by @nicoloboschi in #474
New Contributors
- @fabioscarsi made their first contribution in #452
Full Changelog: v0.4.14...v0.4.15