What's Changed
- docs: 0.4.20 release blog post and changelog by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/671
- feat: remove hardcoded default models from integrations by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/670
- feat: add Strands Agents SDK integration with Hindsight memory tools by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/659
- Blog: Adding Long-Term Memory to LangGraph and LangChain Agents by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/637
- security: exclude litellm 1.82.8 (supply chain compromise) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/673
- fix: return metadata in recall responses by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/680
- fix(hermes): use async client methods to prevent event loop deadlock by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/681
- feat(mcp): add strategy parameter to retain tool by @philippop in https://github.com/vectorize-io/hindsight/pull/684
- fix: coerce JSON-string tags to list in MemoryItem and MCP tools by @philippop in https://github.com/vectorize-io/hindsight/pull/682
- feat: add LiteLLM LLM provider for Bedrock and 100+ providers by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/679
- feat(embed): add programmatic UI (control plane) management by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/683
- ci: skip unrelated jobs based on changed paths by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/687
- blog: Your AWS Strands Agent Forgets Everything Between Runs. Here's the Fix. by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/685
- feat(hermes): file-based config + updated docs by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/686
- fix: add setup_hooks.py and hindsight:setup skill for hook registration by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/690
- feat(reflect): make source facts in search_observations configurable by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/688
- feat: add 'none' LLM provider for chunk-only storage mode by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/691
- fix(claude-code): make fcntl import conditional for Windows compatibility by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/694
- fix: control plane UI fixes for recall and data view by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/693
- feat: Windows native support — run Hindsight without Docker by @grimmjoww in https://github.com/vectorize-io/hindsight/pull/699
- fix: include Pydantic v2 fields in ValidationError OpenAPI schema by @mrkhachaturov in https://github.com/vectorize-io/hindsight/pull/697
- docs: add supported platforms and Windows installation guide by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/700
- feat(claude-code): full-session retain with document upsert and configurable tags by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/695
- feat(claude-code): retain tool calls as structured JSON by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/704
- fix: resolve all Dependabot security alerts by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/702
- fix: resolve remaining Dependabot security alerts by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/705
- feat(retain): delta retain — skip LLM for unchanged chunks on upsert by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/701
- docs(claude-code): tidy configuration reference and sync README by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/706
- fix(python-client): async=true silently ignored on retain by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/709
- feat(openclaw): add recallInjectionPosition config to preserve prompt cache by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/710
- docs(python-client): async-first pydoc + low-level API access + missing params by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/711
- feat: add support for volcano LLM providers by @beordie in https://github.com/vectorize-io/hindsight/pull/714
- fix(python-client): expose all configurable fields in update_bank_config() by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/712
- docs: add Volcano Engine as supported LLM provider by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/715
- Teaching the Llama to Remember by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/707
- feat(integrations): Add hindsight-ag2 — persistent memory for AG2 agents by @faridun-ag2 in https://github.com/vectorize-io/hindsight/pull/720
- feat: add audit log for feature usage tracking by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/717
- fix(ag2): code cleanup and CI/release integration by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/721
- docs: add AG2 integration page by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/723
- fix(codex): resolve JSON serialization and logging exception propagation in codex_llm by @Rutimka in https://github.com/vectorize-io/hindsight/pull/724
- fix(migration): use IF EXISTS when dropping chunk FK constraint by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/725
- fix: silence noisy google_genai.models INFO logging by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/727
- fix(migrations): bypass PgBouncer for advisory locks via MIGRATION_DATABASE_URL by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/726
- fix(docker): add graceful shutdown handler to prevent pg0 data loss on restart by @kagura-agent in https://github.com/vectorize-io/hindsight/pull/698
- perf(stats): add bank_id to memory_links for direct filtering by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/718
- How We Built a 4-Way Hybrid Search System That Actually Runs in Parallel by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/708
- refactor(embedded): replace UI methods with constructor flags by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/728
- fix(openclaw): add recallTimeoutMs config option for auto-recall by @Rutimka in https://github.com/vectorize-io/hindsight/pull/736
- feat: add max_observations_per_scope bank config by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/729
- fix(claude-code): implement tool_choice support for forced tool calls by @kagura-agent in https://github.com/vectorize-io/hindsight/pull/733
- Fix Codex named tool_choice serialization in reflect by @Sapientropic in https://github.com/vectorize-io/hindsight/pull/734
- fix: parse query params from base_url in OpenAI embeddings client by @akhater in https://github.com/vectorize-io/hindsight/pull/735
- feat(mcp): add filter_mcp_tools hook for per-user tool visibility by @mrkhachaturov in https://github.com/vectorize-io/hindsight/pull/737
- feat(openclaw): configurable logging with structured output by @akhater in https://github.com/vectorize-io/hindsight/pull/739
- fix(codex): don't crash on startup when quota is exhausted (429) by @Rutimka in https://github.com/vectorize-io/hindsight/pull/744
- feat: add LlamaIndex integration by @DK09876 in https://github.com/vectorize-io/hindsight/pull/672
- fix(hermes): sync lifecycle hooks for hermes-agent 0.5.0 by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/741
- feat: add Hindsight memory integration for OpenAI Codex CLI by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/730
- fix(codex): cleanup dead code, add release lifecycle and docs by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/753
- fix(retain): inject retain_mission into verbose extraction mode by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/754
- fix: per-bank index creation respects HINDSIGHT_API_VECTOR_EXTENSION by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/755
- Convert codex tool_choice test to pytest style by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/752
- fix(mcp): handle Claude Code GET probe and make stateless_http configurable by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/757
- feat(api): add duration_ms to audit log entries by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/758
- refactor(llamaindex): merge into single hindsight-llamaindex package by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/760
New Contributors
- @philippop made their first contribution in https://github.com/vectorize-io/hindsight/pull/684
- @grimmjoww made their first contribution in https://github.com/vectorize-io/hindsight/pull/699
- @beordie made their first contribution in https://github.com/vectorize-io/hindsight/pull/714
- @faridun-ag2 made their first contribution in https://github.com/vectorize-io/hindsight/pull/720
- @Rutimka made their first contribution in https://github.com/vectorize-io/hindsight/pull/724
- @Sapientropic made their first contribution in https://github.com/vectorize-io/hindsight/pull/734
- @akhater made their first contribution in https://github.com/vectorize-io/hindsight/pull/735
Full Changelog: https://github.com/vectorize-io/hindsight/compare/v0.4.20...v0.4.21