Releases: vectorize-io/hindsight
Releases · vectorize-io/hindsight
v0.4.18
What's Changed
- doc: add 0.4.17 release blog post by @nicoloboschi in #538
- perf: replace window-function retrieval with UNION ALL + per-bank HNSW indexes by @nicoloboschi in #541
- feat: make recall max query tokens configurable via env var by @nicoloboschi in #544
- feat: add jina-mlx reranker provider for Apple Silicon by @nicoloboschi in #542
- doc: Run Hindsight with Ollama: Local AI Memory, No API Keys Needed by @benfrank241 in #536
- doc: What's New in Hindsight Cloud — Programmatic API Key Management by @benfrank241 in #543
- fix: cancel in-flight async ops when bank is deleted by @nicoloboschi in #545
- fix: register embedded profiles in CLI metadata on daemon start by @nicoloboschi in #546
- fix(openclaw): keep recalled memories out of the visible transcript by @stablegenius49 in #548
- blog: Time-Aware Spreading Activation for Memory Graphs by @benfrank241 in #547
- feat: add MiniMax LLM provider support by @octo-patch in #550
- fix: truncate documents exceeding LiteLLM reranker context limit by @nicoloboschi in #549
- Upgrade GitHub Actions to latest versions by @salmanmkc in #553
- chore: add dependabot config for GitHub Actions updates by @nicoloboschi in #554
- chore(deps): bump actions/cache from 4 to 5 by @dependabot[bot] in #559
- chore(deps): bump actions/setup-go from 5 to 6 by @dependabot[bot] in #558
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #555
- chore(deps): bump actions/checkout from 4 to 6 by @dependabot[bot] in #556
- feat: introduce hindsight-api-slim and hindsight-all-slim packages by @nicoloboschi in #560
- fix: remove broken minimax test and enhance slim smoke tests by @nicoloboschi in #564
- chore(deps): bump actions/setup-node from 4 to 6 by @dependabot[bot] in #557
- docs: revamp sidebar with icon grids and language support by @nicoloboschi in #563
- feat: compound tag filtering via tag_groups by @nicoloboschi in #562
New Contributors
- @stablegenius49 made their first contribution in #548
- @octo-patch made their first contribution in #550
- @salmanmkc made their first contribution in #553
- @dependabot[bot] made their first contribution in #559
Full Changelog: v0.4.17...v0.4.18
v0.4.17
What's Changed
- doc: add 0.4.16 release blog post and changelog by @nicoloboschi in #502
- fix: truncate long bank names in selector dropdown by @dcbouius in #505
- fix: refresh bank list when dropdown is opened by @dcbouius in #504
- fix: openclaw tests + split doc-examples CI per language by @nicoloboschi in #503
- doc: document all missing bank config fields in memory-banks.mdx by @nicoloboschi in #508
- Add on_file_convert_complete extension hook after file-to-markdown conversion by @cdbartholomew in #507
- feat: add source facts token limits to consolidation and recall by @nicoloboschi in #509
- refactor: remove dead code and clarify observations vs mental models by @nicoloboschi in #512
- feat: per-request file parser selection with fallback chains by @nicoloboschi in #514
- feat: observation history tracking and diff UI by @nicoloboschi in #513
- feat: mental model history tracking and UI diff view by @nicoloboschi in #516
- doc: Upgrading OpenClaw's Memory with Hindsight by @benfrank241 in #515
- Fix GCS auth for Workload Identity Federation credentials by @cdbartholomew in #518
- feat: change tags for a document by @nicoloboschi in #517
- fix: serialize Alembic upgrades in-process by @cdbartholomew in #521
- Fix Iris parser httpx read timeout by @cdbartholomew in #524
- fix: migrate mental_models.embedding dimension alongside memory_units by @nicoloboschi in #526
- feat: filter operations by type + fix stale auto-refresh closure (#522) by @nicoloboschi in #527
- fix(consolidation): respect bank mission over ephemeral-state heuristic by @nicoloboschi in #525
- docs: add FAQ entry for conversation retain format by @nicoloboschi in #529
- fix: normalize named tool_choice to avoid HTTP 400 on LM Studio / Ollama by @nicoloboschi in #528
- doc: Your Pydantic AI Agent Forgets You After Every Run. Fix It in 5 Lines. by @benfrank241 in #531
- Fix run-db-migration for all-tenant upgrades by @cdbartholomew in #530
- doc: What's New in Hindsight — Document File Upload by @benfrank241 in #532
- doc: split blog index into Hindsight and Hindsight Cloud sections by @nicoloboschi in #534
- fix: strip null bytes from parsed file content before retain by @nicoloboschi in #535
- fix: resolve remaining webhook schema issues in multi-tenant retain by @Andreymi in #533
- feat: manual retry for failed async operations by @nicoloboschi in #537
Full Changelog: v0.4.16...v0.4.17
v0.4.16
What's Changed
- docs: 0.4.15 release blog post and changelog by @nicoloboschi in #477
- doc: update cookbook by @nicoloboschi in #479
- blog: add LiteLLM persistent memory post by @benfrank241 in #481
- doc: fix LiteLLM blog — OPINION → OBSERVATION, update title by @benfrank241 in #482
- cli: add linux-arm64 binary to release and CI by @nicoloboschi in #484
- fix: resolve all Dependabot security vulnerabilities by @nicoloboschi in #486
- doc: add ZeroEntropy reranker to models.md by @nicoloboschi in #489
- feat: webhook system with retain.completed event, UI, and docs by @nicoloboschi in #487
- fix: resolve TypeError when LLM returns invalid JSON across all retries by @nicoloboschi in #490
- Fix bank-level MCP tool filtering for FastMCP 3.x by @cdbartholomew in #491
- doc: add MCP blog post by @benfrank241 in #492
- perf: add GIN index on source_memory_ids for observation lookup by @nicoloboschi in #485
- fix: replace additive combined scoring with multiplicative CE boosts by @nicoloboschi in #494
- fix: cap uvicorn graceful shutdown at 5s and enable force-kill on double Ctrl+C by @nicoloboschi in #495
- fix: resolve chunks for observation results via source_memory_ids by @nicoloboschi in #496
- feat(openclaw): v2 recall/retention controls, scalability fixes, and Gemini safety settings by @mysteriousHerb in #480
- fix: use correct schema name in webhook outbox callback by @cdbartholomew in #499
- fix: run schema migrations in thread to prevent event loop deadlock by @nicoloboschi in #500
- doc: Give Your OpenAI App a Memory in 5 Minutes by @benfrank241 in #498
- fix: preserve None temporal fields for observations without source dates by @nicoloboschi in #501
New Contributors
- @mysteriousHerb made their first contribution in #480
Full Changelog: v0.4.15...v0.4.16
v0.4.15
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
v0.4.14
What's Changed
- doc: 0.4.13 changelog by @nicoloboschi in #411
- fix(chore): include hindsight-crewai in release workflow by @nicoloboschi in #412
- feat(openclaw): add autoRecall toggle and excludeProviders schema by @slayoffer in #413
- doc: improve api explanation by @nicoloboschi in #415
- misc: fix vertex/gemini errors and use it for ci tests by @nicoloboschi in #414
- Fix bank config API for multi-tenant schema isolation by @cdbartholomew in #417
- feat: add ZeroEntropy reranker provider support by @franchb in #420
- Fix reflect based_on population and enforce full hierarchical retrieval by @cdbartholomew in #421
- fix: improve memory footprint of recall by @nicoloboschi in #423
- feat: include doc metadata in fact extraction by @nicoloboschi in #424
- feat: increase customization for reflect, retain and consolidation by @nicoloboschi in #419
- feat: enable bank config API by default by @nicoloboschi in #426
- feat: add reflect mode to LoComo benchmark and improve reflect agent by @nicoloboschi in #428
- fix(openclaw): pass auth token to health check endpoint by @slayoffer in #427
- fix: handle observations regeneration when memories get deleted by @nicoloboschi in #429
- feat: batch observations consolidation by @nicoloboschi in #430
- feat: expand MCP tool surface area by @DK09876 in #435
- feat: filter graph memories with tags by @nicoloboschi in #431
- fix: pass encoding_format="float" in LiteLLM SDK embedding calls by @franchb in #434
- fix: catch ValueError instead of bare except in date parsing by @haosenwang1018 in #438
- feat: configure exposed mcp tools per bank by @nicoloboschi in #439
- fix(storage): use dynamic schema_getter in PostgreSQLFileStorage for multi-tenant by @Andreymi in #440
- fix: fail fast HNSW index when embedding dimension exceeds 2000 by @slayoffer in #361
- feat: add Chat SDK integration for persistent chat bot memory by @benfrank241 in #442
- chore: integrate chat with release by @nicoloboschi in #443
- fix: doc build and add chat doc by @nicoloboschi in #444
New Contributors
- @haosenwang1018 made their first contribution in #438
- @Andreymi made their first contribution in #440
Full Changelog: v0.4.13...v0.4.14
v0.4.13
What's Changed
- doc: changelog for 0.4.12 by @nicoloboschi in #397
- fix: document not tracked if has 0 extracted facts by @nicoloboschi in #399
- feat: add CrewAI integration for persistent crew memory by @benfrank241 in #319
- fix: clients don't respect timeout setting by @nicoloboschi in #400
- fix: reduce temporal ordering offset from 10s to 10ms by @dcbouius in #402
- fix: reranker crashes on provider error by @nicoloboschi in #403
- fix(mcp): stateless param not supported anymore by @nicoloboschi in #406
- feat: include source facts in observation recall by @nicoloboschi in #404
- fix: docker startup fails with named docker volumes by @nicoloboschi in #405
- fix(mcp): unify hindsight-mcp-local and server mcp by @nicoloboschi in #407
- fix: npx hindsight-control-plane fails by @nicoloboschi in #408
- feat: switch default model to gpt-4o-mini by @nicoloboschi in #410
New Contributors
- @benfrank241 made their first contribution in #319
Full Changelog: v0.4.12...v0.4.13
v0.4.12
What's Changed
- doc: changelog and blog post for 0.4.11 by @nicoloboschi in #363
- feat: allow chunks-only in recall (max_tokens=0) by @nicoloboschi in #364
- fix(openclaw): remove unused imports, retry health check, suppress unhandled rejection by @slayoffer in #373
- fix: propagate document_tags in async retain path by @abix5 in #374
- feat: add Go client SDK with ogen code generation by @franchb in #375
- fix: improve async batch retain with large payloads by @nicoloboschi in #366
- feat: support Batch API for retain (openai/groq) by @nicoloboschi in #365
- feat: use official go generator for Go client by @nicoloboschi in #377
- feat: support for pgvectorscale (DiskANN) by @nicoloboschi in #378
- doc: add go client examples by @nicoloboschi in #380
- ci: ensure docs get created with no extracted facts by @nicoloboschi in #379
- feat: support azure pg_diskann by @nicoloboschi in #381
- doc: add faq page by @nicoloboschi in #383
- fix(openclaw): error E2BIG on large content ingested by @nicoloboschi in #389
- fix(python-client): async method parity and server keepalive timeout by @cdbartholomew in #387
- feat: accept pdf, images and office files by @nicoloboschi in #390
- fix: restore entity retrieval in recall by @dcbouius in #391
- fix(go-client): use monorepo-compatible module path by @franchb in #392
- feat: improve ai sdk tools by @nicoloboschi in #394
- fix(go-client): add go build to CI by @nicoloboschi in #393
- fix(openclaw): shell safety, HTTP dual-mode, lazy reinit, per-user banks by @slayoffer in #388
- feat: add iris as file parser by @nicoloboschi in #395
- fix: improve openclaw test coverage by @nicoloboschi in #396
New Contributors
Full Changelog: v0.4.11...v0.4.12
v0.4.11
What's Changed
- fix(helm): gke overriding HINDSIGHT_API_PORT by @nicoloboschi in #328
- feat(helm): add PDB and per-component affinity support by @nuclon in #327
- feat(openclaw): add excludeProviders config by @GodsBoy in #332
- Fix MCP usage metering: propagate tenant_id through context vars by @DK09876 in #334
- feat: add otel traceability by @nicoloboschi in #330
- feat: add docs skill by @nicoloboschi in #335
- fix: include tiktoken in slim image by @nicoloboschi in #336
- Fix async batch retain incorrectly marked as internal by @cdbartholomew in #338
- feat: add mental model CRUD tools to MCP server by @DK09876 in #337
- feat(helm): add TEI reranker sidecar support by @slayoffer in #333
- Harden MCP server: fix routing, validation, and usage metering by @DK09876 in #341
- Add actual LLM token usage fields to RetainResult by @cdbartholomew in #342
- fix: improve model configuration for litellm gateway by @nicoloboschi in #345
- fix: add trust_code env config by @nicoloboschi in #347
- Replace waitlist links with direct signup URL by @cdbartholomew in #349
- Fix MCP extra args rejection and bank ID resolution priority by @DK09876 in #351
- feat: add reverse proxy support by @nicoloboschi in #346
- Implement the vchord / pgvector support by @qdrddr in #350
- fix: resolve based_on schema/serialization issues in reflect API by @nicoloboschi in #348
- feat: implement hierarchical configuration (system, tenant, bank) by @nicoloboschi in #329
- feat: support for other text and vector search pg extensions by @nicoloboschi in #355
- chore: remove dead code by @nicoloboschi in #356
- Fix incorrect MCP tool parameters in docs by @DK09876 in #358
- feat: support timescale pg_textsearch as text search extension by @nicoloboschi in #359
- feat: support litellm-sdk as reranker and embeddings by @nicoloboschi in #357
- fix(openclaw): avoid memory retain recursion by @nicoloboschi in #362
New Contributors
Full Changelog: v0.4.10...v0.4.11
v0.4.10
What's Changed
- fixed cast error by @haydenrear in #300
- fix: tagged directives should be applied to tagged mental models by @nicoloboschi in #303
- docs: add AI SDK integration documentation by @nicoloboschi in #304
- ci: ensure backwards/forward compatibility of the API by @nicoloboschi in #306
- fix(openclaw): remove format:uri to fix ajv warning by @GodsBoy in #309
- feat: support markdown in reflect and mental models by @nicoloboschi in #307
- ci: ensure python 3.14 compatibility by @nicoloboschi in #310
- fix(ci): resolve flaky test failures in api tests by @nicoloboschi in #311
- feat: slim docker distro by @nicoloboschi in #314
- doc: update claude-code usage terms by @nicoloboschi in #315
- fix: hindsight-embed profiles are not loaded correctly by @nicoloboschi in #316
- feat: add TenantExtension auth to MCP endpoint by @DK09876 in #286
- doc: improve Node.js client example by @vanvuongngo in #320
- feat: improve mcp tools based on endpoint by @nicoloboschi in #318
- fix(openclaw): prevent memory wipe on every session by @slayoffer in #323
- feat: add docker-compose example by @vanvuongngo in #313
- fix: do not log db user/password by @vanvuongngo in #312
- Add Supabase tenant extension by @jerryhenley in #267
- fix(helm): improve appVersion usage by @nicoloboschi in #326
- doc: prepare doc for 0.4.10 by @nicoloboschi in #325
New Contributors
- @haydenrear made their first contribution in #300
- @vanvuongngo made their first contribution in #320
- @jerryhenley made their first contribution in #267
Full Changelog: v0.4.9...v0.4.10
v0.4.9
What's Changed
- doc: changelog for 0.4.8 by @nicoloboschi in #283
- doc: update cookbook by @nicoloboschi in #284
- fix(openclaw): improve shell argument escaping by @slayoffer in #288
- feat(openclaw): add external Hindsight API support by @slayoffer in #289
- docs: expand external API configuration for OpenClaw by @slayoffer in #294
- feat(openclaw): add dynamic per-channel memory banks by @slayoffer in #290
- fix: hide hf logging by @nicoloboschi in #295
- fix: improve claude code and codex for /reflect by @nicoloboschi in #285
- feat(hindsight-litellm): support streaming on wrappers by @nicoloboschi in #296
- feat: HindsightEmbedded python SDK by @nicoloboschi in #293
- feat: improve mental models ux on control plane by @nicoloboschi in #297
- Fix recall endpoint timeout handling and add query length validation by @cdbartholomew in #298
- feat: ai sdk integration by @nicoloboschi in #299
Full Changelog: v0.4.8...v0.4.9