Releases: vectorize-io/hindsight
Releases · vectorize-io/hindsight
v0.7.2
What's Changed
- docs: add 0.7.1 changelog and release blog post by @nicoloboschi in #1818
- chore: regenerate docs-skill references after v0.7.1 by @Sanderhoff-alt in #1822
- docs(multilingual): add pg_search backend to BM25 selector and comparison table by @r266-tech in #1824
- docs(grok-build): add Grok Build integration page by @benfrank241 in #1793
- feat(gemini-spark): add Hindsight integration for Gemini Spark via MCP by @benfrank241 in #1779
- fix(api): isolate claude-code provider subprocess from user plugins by @nicoloboschi in #1825
- chore: regenerate docs skill changelog index after v0.7.1 by @benfrank241 in #1827
- fix(api): honor explicit daemon host and port by @Sanderhoff-alt in #1821
- fix(api): vchord ANN — use cosine opclass and dispatch tuning GUCs per backend by @isac322 in #1668
- feat(vapi): add Vapi voice AI webhook memory integration by @benfrank241 in #923
- feat(roo-code): add Roo Code integration with MCP + rules by @benfrank241 in #920
- fix(directives): honor tag_groups in list_directives and reflect by @nicoloboschi in #1831
- docs(models): list openrouter, google, and jina-mlx in Cross-Encoder Supported Providers table by @r266-tech in #1832
- docs(mcp): document sync_retain tool and correct tool counts (26/29 -> 27/30) by @r266-tech in #1834
- chore(deps): bump the uv group across 1 directory with 2 updates by @dependabot[bot] in #1836
- fix: preserve raw reranker scores for calibrated [0,1] providers by @nicoloboschi in #1846
- test(reflect): regression test that tag_groups reaches internal recall by @nicoloboschi in #1828
- Bound trigram entity resolution batch size during retain by @voarsh2 in #1841
- fix(control-plane): honor basePath for auth redirects by @xmh1011 in #1845
- fix(control-plane): validate login returnTo to prevent open redirect by @nicoloboschi in #1848
- chore(control-plane): move tests out of src/ into tests/ by @nicoloboschi in #1850
- fix(retain): never silently drop memory on a fact-extraction failure (#1833) by @nicoloboschi in #1852
- fix(retain): apply batching to Oracle entity resolution + guarantee pg_trgm RESET by @nicoloboschi in #1847
- fix(consolidation): propagate round-limit re-queue failure to worker retry by @nicoloboschi in #1857
- fix(retain): preserve full document body when splitter chunks oversized input by @nicoloboschi in #1855
- fix(consolidation): shorten retry backoff base from 60s to 5s by @nicoloboschi in #1854
- ci(test-api): shard pytest 3 ways + cache resolved .venv by @nicoloboschi in #1856
- fix: wait for daemon health before reclaiming occupied port by @s09x in #1858
- docs(faq): explain Hindsight's event-centric graph vs. traditional KGs by @cdbartholomew in #1837
- docs(blog): 15k stars milestone post by @benfrank241 in #1835
- fix(consolidation): scope-locked parallel dispatch (alternative to #1843) by @nicoloboschi in #1853
- docs(configuration): document HINDSIGHT_API_WORKER_TASK_RETRY_BACKOFF_SECONDS in Distributed Workers by @r266-tech in #1861
- docs(configuration): document link_expansion per-entity-limit and timeout knobs by @r266-tech in #1864
- chore(deps): bump uv from 0.11.6 to 0.11.15 in /hindsight-integrations/crewai in the uv group across 1 directory by @dependabot[bot] in #1865
- docs(api): fix broken Worker Configuration anchor in operations page by @r266-tech in #1869
- docs(retrieval): document calibrated [0,1] reranker score passthrough by @r266-tech in #1870
- docs(cli): correct bank set-disposition flags to --skepticism/--literalism/--empathy by @r266-tech in #1871
- docs(configuration): document HINDSIGHT_CP_DATAPLANE_API_KEY for Control Plane by @r266-tech in #1872
- fix(db_utils): make acquire_with_retry yield exactly once by @slayoffer in #1880
- fix(cli): hindsight memory retain --timestamp + correct fact-type values by @slayoffer in #1881
- fix(embedded-db): bump pg0-embedded to 0.14.2 for clean stop/restart by @nicoloboschi in #1892
- fix(embed): launch Windows daemon via pythonw to stop ConPTY terminal tab by @nicoloboschi in #1890
- fix(retain): close to_unit_id deferred-FK race on memory_links inserts (#1882) by @nicoloboschi in #1894
- ci: add daily Windows smoke test (API + Python client integration) by @nicoloboschi in #1895
- feat(api): add Fireworks AI batch inference provider by @Fyko in #1860
- fix(api): robust retain/recall on special-token literals and lone surrogates by @nicoloboschi in #1891
- ci(windows-smoke): pin extras on uv run so deps survive by @nicoloboschi in #1900
- chore(docs): regenerate hindsight-docs skill references by @nicoloboschi in #1899
- fix(retain): offset chunk_index across sub-batches of an oversized document (#1888) by @nicoloboschi in #1896
- docs: drop removed
opinion/agentfact_type from MCP/SDK/integration references by @r266-tech in #1893 - fix(consolidation): make per-bank consolidation submit atomic + scope-aware (#1842) by @nicoloboschi in #1898
- fix(backup): include all 7 missing tables in backup/restore by @nicoloboschi in #1903
- fix(db): unblock PostgreSQL upgrade to v0.7.x (sqlalchemy<2.1 + autocommit_block migrations) by @nicoloboschi in #1904
- docs(integrations): drop removed
opinionfact_type from recall_types by @r266-tech in #1905 - feat(flowise): add Flowise integration with Hindsight memory tools by @benfrank241 in #1436
- fix(api): bound native ML thread pools to available CPUs by @nicoloboschi in #1901
- chore(dev): one-shot dev setup script + fix control-plane production build by @nicoloboschi in #1910
- feat(google-adk): add Hindsight integration for Google ADK by @benfrank241 in #1862
- blog: Hermes Agent on Windows — Set Up Persistent Memory with Hindsight by @benfrank241 in #1913
- blog: Building a Hermes Coding Assistant on Windows That Remembers Your Codebase by @benfrank241 in #1912
- perf(graph-maintenance): cast ANN seed embeddings once + add perf suite (#1919) by @nicoloboschi in #1924
- refactor(api): move audit-logs endpoint queries into MemoryEngine by @nicoloboschi in #1925
- docs(docker): drop --rm, add --name + restart policy in run examples by @nicoloboschi in #1927
- fix(control-plane): pin next to 16.2.5 to fix standalone i18n redirect loop (#1926) by @nicoloboschi in #1928
New Contributors
Full Changelog: v0.7.1...v0.7.2
v0.7.1
What's Changed
- docs(retrieval): add pgroonga to the BM25 backends table by @r266-tech in #1783
- docs: add 0.7.0 changelog and release blog post by @nicoloboschi in #1781
- fix(control-plane): add graph_maintenance to operations type filter by @nicoloboschi in #1785
- fix(control-plane): polish zh translation for naturalness by @XIYBHK in #1791
- docs(blog): OpenClaw agent that remembers your codebase by @benfrank241 in #1768
- fix(openclaw): stop silently skipping dispatch on synthetic-main + static-banking setups by @nicoloboschi in #1802
- fix markdown tables in mental models and cosmetic issues by @chrislatimer in #1800
- docs(retrieval): note pg_search configurable tokenizer in BM25 backends table by @r266-tech in #1790
- fix(openclaw): label "Current time" as UTC in injected memory context by @nicoloboschi in #1804
- fix(api): anchor recall recency to query timestamp by @Sanderhoff-alt in #1788
- fix(openclaw): flush un-retained turns on session_end by @nicoloboschi in #1806
- feat(embeddings): add token refresh to CodexOAuthEmbeddings; extract CodexAuthManager by @DK09876 in #1712
- feat(control-plane): add Chinese locale variants by @MapleEve in #1784
- docs(models): add claude-code Docker recipe with host Max Plan auth by @benfrank241 in #1526
- feat(integrations): default recallTypes to ['observation'] for openclaw + claude-code by @nicoloboschi in #1808
- feat(reranker): per-provider HTTP timeout env vars by @nicoloboschi in #1810
- fix(embeddings): clean up CodexOAuthEmbeddings token-refresh follow-up by @nicoloboschi in #1809
- docs(docker): add local llama.cpp sidecar compose example by @nicoloboschi in #1814
- feat(api): configure LLM reasoning effort via environment by @s9rkn in #1815
- docs(integrations): default recallTypes to ["observation"] for openclaw + claude-code (#1808) by @r266-tech in #1812
- fix(retain): keep oversized items in one async child to stop FK race (#1795) by @nicoloboschi in #1805
- feat(worker): add priority-based consolidation bank scheduling by @nicoloboschi in #1813
- fix(consolidation): indefinite retry with backoff + dedup-by-bank guard by @nicoloboschi in #1811
- docs(models): list openai-codex and openrouter in embeddings Supported Providers table by @r266-tech in #1792
New Contributors
- @XIYBHK made their first contribution in #1791
- @MapleEve made their first contribution in #1784
- @s9rkn made their first contribution in #1815
Full Changelog: v0.7.0...v0.7.1
v0.7.0
What's Changed
- docs: add 0.6.2 changelog and release blog post by @benfrank241 in #1633
- docs: attribute 0.6.2 release post to benfrank241 by @benfrank241 in #1635
- blog: What's New in Hindsight Cloud by @benfrank241 in #1636
- feat(typescript-client): replace Promise with concrete generated types by @solidprinciples in #1640
- docs(changelog): correct openai-agents v0.1.1 entry by @benfrank241 in #1639
- docs: add HINDSIGHT_API_WORKER_ID tip to API quickstart by @benfrank241 in #1617
- fix(api): strip Gemma thought tags by @xmh1011 in #1653
- feat: add opencode-go LLM provider by @tevenfeng in #1652
- fix(api): lazy load reflect tiktoken encoding by @xmh1011 in #1654
- fix(api): preserve tag group or triggers by @xmh1011 in #1655
- fix(api): auto-refresh openai-codex OAuth access_token by @benfrank241 in #1661
- fix(typescript-client): update repository URL to correct repo by @solidprinciples in #1657
- Blog: Agent Memory Consolidation framework by @benfrank241 in #1672
- style: apply ruff format to openai_compatible_llm.py by @benfrank241 in #1703
- docs(crewai): prioritize Hindsight Cloud in quickstart by @benfrank241 in #1689
- docs(strands): prioritize Hindsight Cloud in quickstart by @benfrank241 in #1690
- docs(pipecat): prioritize Hindsight Cloud in quickstart by @benfrank241 in #1695
- Regenerate hindsight-docs skill references by @benfrank241 in #1686
- docs(pydantic-ai): prioritize Hindsight Cloud in quickstart by @benfrank241 in #1691
- docs(smolagents): prioritize Hindsight Cloud in quickstart by @benfrank241 in #1692
- docs(codex): add Cloud API URL to quickstart and config default by @benfrank241 in #1693
- docs(agentcore): add Cloud API URL to quickstart and config default by @benfrank241 in #1694
- docs(agno): add Cloud API URL to quickstart and config default by @benfrank241 in #1696
- docs(n8n): add Cloud API URL to quickstart and config default by @benfrank241 in #1697
- docs(dify): add Cloud API URL to quickstart and config default by @benfrank241 in #1698
- docs(paperclip): add Cloud API URL to quickstart and config default by @benfrank241 in #1699
- docs(nemoclaw): add Cloud API URL to quickstart and config default by @benfrank241 in #1700
- docs(chat): add Cloud API URL to quickstart by @benfrank241 in #1701
- fix(api): ignore null bank config overrides by @xmh1011 in #1664
- fix(api): reject blank retain content by @xmh1011 in #1685
- fix: derive HINDSIGHT_API_HEALTH_URL default from HINDSIGHT_API_PORT by @sg-shag in #1709
- fix(mcp): omit reflect provenance by default by @xmh1011 in #1665
- fix: break mutual recursion in batch API fallback for non-batch providers by @mssteuer in #1463
- feat(reranker): support alibaba qwen3-rerank by @quicklyfast in #1501
- feat(extensions): add OperationValidator.precheck pre-body-parse hook by @cdbartholomew in #1548
- fix(claude-code-mcp): make run_mcp.sh bootstrap idempotent on Windows by @ottopichlhoefer in #1565
- fix(integrations-claude-code): label 'Current time' as UTC in recall context by @valda in #1568
- fix(reranker): detect pre-normalized scores and use rank-based normalization by @xuli500177 in #1512
- feat(right-agent): add Right Agent integration by @onsails in #1599
- fix(docker): detect nested pg0 data directories by @xmh1011 in #1650
- chore(deps): bump openssl from 0.10.79 to 0.10.80 in /hindsight-clients/rust in the cargo group across 1 directory by @dependabot[bot] in #1663
- fix(helm): remove stale Chart.lock that pulls in conflicting Bitnami postgresql sub-chart by @jay-mtl in #1632
- fix(mental-models): cap history array length to prevent jsonb overflow by @cdbartholomew in #1593
- fix(control-plane): surface upstream errors via respondWithSdk helper by @offendingcommit in #1678
- fix(embed): resolve npx absolute path on Windows before spawning UI by @tuancookiez-hub in #1682
- fix: escape literal braces in all user-supplied prompt fields by @nicoloboschi in #1728
- fix(mental-models): full refresh pending delta baselines by @xmh1011 in #1684
- fix: avoid retrying invalid embedding dimensions by @ai-ag2026 in #1687
- chore(deps): bump the uv group across 2 directories with 2 updates by @dependabot[bot] in #1705
- fix(openclaw): update Hindsight dependency ranges by @de1tydev in #1716
- fix(worker): handle stale pending schema routines by @xmh1011 in #1666
- fix(api): enable gzip middleware to keep graph payload parseable by @nicoloboschi in #1731
- fix(docs): correct DATABASE_URL env var name and fix invisible code in tip titles by @nicoloboschi in #1733
- fix(control-plane): verify signed session cookie instead of presence by @nicoloboschi in #1739
- fix: skip fuzzy entity resolution for user-defined label entities (#1558) by @nicoloboschi in #1737
- fix(api): wire up per-operation LLM concurrency caps by @nicoloboschi in #1738
- docs(blog): Hermes coding assistant codebase memory by @benfrank241 in #1710
- fix(retain): split oversized single items in batch retain (#1571) by @nicoloboschi in #1736
- feat(api): add clear endpoint for mental model content by @nicoloboschi in #1743
- test: stabilize pre-existing CI flakes by @nicoloboschi in #1742
- fix(api): make litellm-sdk embeddings api_key optional for Bedrock IAM auth by @jakub-qg in #1744
- fix(reflect): hide disabled tools from the agent's system prompt by @nicoloboschi in #1740
- fix(ollama): add ollama-cloud provider and fix native API auth by @nicoloboschi in #1734
- feat(api): add targeted consolidation by observation scopes by @nicoloboschi in #1746
- fix(api): release glibc heap pages after local reranker batches by @nicoloboschi in #1745
- docs(mcp): document clear_mental_model tool by @r266-tech in #1750
- fix(api): ignore inherited v1 base URL for Codex by @de1tydev in #1718
- fix(webhooks): avoid duplicate retain batch deliveries by @xmh1011 in #1683
- fix(api): stop sending temperature param to Anthropic API by @nicoloboschi in #1753
- feat(bm25): configurable native language + opt-in pgroonga backend by @nicoloboschi in #1538
- feat: support Codex OAuth embeddings by @haha0815 in #1704
- fix(ci): align config field count and CLI consolidation call with #1746 by @nicoloboschi in #1757
- chore(db): drop 9 unused/redundant indexes by @nicoloboschi in #1762
- feat(control-plane): surface clear_mental_model in UI by @nicoloboschi in #1764
- feat(paperclip): add per-user memory isolation via bankGranularity by @benfrank241 in #1761
- feat(api): add ParadeDB pg_search as Citus-compatible BM25 backend by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull...
v0.6.2
What's Changed
- blog: How Hindsight Scales by @nicoloboschi in #1539
- fix(claude-code): get_page detail=content + handle tool-result spillover by @cdbartholomew in #1543
- docs: add 0.6.1 changelog and release blog post by @nicoloboschi in #1542
- blog: add cover image for How Hindsight Scales by @benfrank241 in #1545
- fix(claude-code-mcp): rename recall max_results→max_tokens by @offendingcommit in #1544
- Fix strands client lifecycle leak for internally-owned clients by @benfrank241 in #1547
- blog: add category filter to blog landing page by @benfrank241 in #1580
- fix(paperclip): align with Paperclip's actual event payloads by @amirhmoradi in #1560
- blog: the case against external vector DBs for agent memory by @benfrank241 in #1594
- Docs: add Windows + China deployment guidance for embeddings setup by @benfrank241 in #1549
- docs(strands): document FastAPI lifecycle pattern from #1547 by @r266-tech in #1581
- docs(paperclip): align integration guide + README with #1560 lifecycle by @r266-tech in #1596
- fix(agent-sdk): agent_knowledge_recall — rename max_results to max_tokens, default 1024 by @r266-tech in #1552
- fix(ci): paperclip lint formatting + openclaw hook test expectations by @dcbouius in #1601
- security: bump vulnerable dependencies across npm and pip by @dcbouius in #1600
- security: bump urllib3 to 2.7.0 in integration lockfiles by @dcbouius in #1603
- security: bump remaining high/critical deps across all lockfiles by @dcbouius in #1609
- security: bump litellm to >=1.83.14 by @dcbouius in #1610
- feat(claude-code): expose configurable MCP request timeout (#1575) by @rsaulo in #1591
- fix(agent-sdk): agent_knowledge_get_page request detail=content (sister of #1543) by @r266-tech in #1557
- fix: handle transient OID errors in embedding dimension migration by @dcbouius in #1612
- fix(ci): use frozen lockfile in lint.sh during CI by @dcbouius in #1618
- fix(docs): use real GitHub handle for ContextForge integration author by @benfrank241 in #1621
- fix(cli, control-plane): make retain Event Date / timestamp actually reach the API by @benfrank241 in #1622
- docs(claude-code): document requestTimeoutSeconds option from #1591 by @r266-tech in #1626
- docs(cli): document --timestamp flag on memory retain (#1622) by @r266-tech in #1623
- fix(migrations): repair mental_models.subtype at current head (#1553) by @benfrank241 in #1627
- fix(ci): set UV_FROZEN=1 on verify-generated-files job by @dcbouius in #1629
- chore(deps): bump the uv group across 3 directories with 8 updates by @dependabot[bot] in #1630
- blog: onboarding a new engineer onto five months of OpenCode memory by @benfrank241 in #1628
New Contributors
- @offendingcommit made their first contribution in #1544
- @amirhmoradi made their first contribution in #1560
- @rsaulo made their first contribution in #1591
Full Changelog: v0.6.1...v0.6.2
v0.6.1
What's Changed
- docs: add 0.6.0 changelog and release blog post by @nicoloboschi in #1458
- chore: remove self-driving-agents CLI — moved to own repo by @nicoloboschi in #1461
- fix(retain): reduce memory pressure by clearing content references after use by @nicoloboschi in #1455
- fix(openclaw): mission semantics + retainQueue config whitelist by @nicoloboschi in #1473
- feat(claude-code): create-agent skill understands SDA layout by @nicoloboschi in #1475
- chore(deps): bump pg0-embedded to >=0.14.0 by @nicoloboschi in #1476
- feat(openclaw): drop redundant before_agent_start + add debugPerfTiming by @nicoloboschi in #1477
- feat(control-plane): enrich bank dropdown with memory stats by @nicoloboschi in #1479
- feat(engine): optional read-only backend for recall queries by @cdbartholomew in #1460
- fix(claude-code): bootstrap 'mcp' Python package on first run by @nicoloboschi in #1485
- feat(perf): publish perf-test results to external dashboard by @nicoloboschi in #1474
- fix(packaging): hard-pin meta packages to matching hindsight-api-slim by @nicoloboschi in #1486
- docs(claude-code): document knowledge tools and subagent skill by @nicoloboschi in #1487
- ci(release): add --provenance to npm publish (required for n8n Verified) by @benfrank241 in #1491
- chore: stabilize CI — docs-skill pre-commit hook + retain dict-mutation fix by @nicoloboschi in #1490
- fix(docker): chmod 755 /home/hindsight for --user UID:GID support by @nicoloboschi in #1493
- feat(cli): add --strategy flag to memory retain-files by @nicoloboschi in #1494
- blog: Your Claude Code Subagents Don't Share What They Learn by @benfrank241 in #1456
- docs(cli): document --strategy flag for memory retain-files by @r266-tech in #1499
- docs(env): document HINDSIGHT_API_READ_DATABASE_URL in .env.example by @r266-tech in #1496
- ci: cosign-sign published GHCR images (manual workflow) by @nicoloboschi in #1495
- ci: cosign-sign release images + document verification by @nicoloboschi in #1502
- Add AlloyDB ScaNN vector index support by @can1357 in #1459
- fix(worker): probe pg_proc before calling optional schemas_with_pending_work() by @nicoloboschi in #1503
- docs(installation): bake custom models into image instead of PVC by @nicoloboschi in #1504
- follow-up to #1459: AlloyDB ScaNN docs + review-nit cleanups by @nicoloboschi in #1506
- feat: add map-type entity labels for structured entity extraction by @nicoloboschi in #1505
- fix(openclaw): pass enableKnowledgeTools through getPluginConfig by @nicoloboschi in #1507
- docs(entity-labels): document type="map" structured entity groups by @r266-tech in #1508
- perf(worker): scope progress-stats fanout via existing routine by @nicoloboschi in #1509
- fix(n8n): drop hindsight-client runtime dep, inline HTTP calls by @benfrank241 in #1513
- fix(openclaw): write hooks.allowConversationAccess in setup wizard by @nicoloboschi in #1514
- fix(openclaw): reuse existing token + URL when re-running setup wizard by @nicoloboschi in #1518
- feat(claude-code): resolve git worktrees + explicit directory-bank mapping by @nicoloboschi in #1520
- fix(openclaw): backfill plugins.allow with hindsight-openclaw in setup wizard by @nicoloboschi in #1521
- fix(engine): remove multiplicative retry layers in fact extraction by @nicoloboschi in #1516
- docs: surface stable worker_id guidance and zombie-operation recovery by @nicoloboschi in #1522
- fix(daemon): replace os.fork() with subprocess.Popen to fix MPS on macOS by @nicoloboschi in #1519
- blog: n8n Workflows Are Stateless. Hindsight Makes Them Compound. by @benfrank241 in #1511
- fix(reflect): read document metadata from retain params by @nepenth in #1523
- fix(worker): propagate child error_message to failed batch_retain parent by @cdbartholomew in #1527
- fix(claude-code): use detail=metadata for agent_knowledge_list_pages by @cdbartholomew in #1528
- feat(cp): add optional access-key login for Control Plane by @ariel-ai-bot in #1530
- feat: add z.ai as LLM provider by @Burgunthy in #1529
- feat(openclaw): prepend session-context block to retained transcripts by @kryptt in #1439
- fix(cp): improve access-key auth UX and harden middleware by @nicoloboschi in #1533
- docs(zai): document z.ai provider and add default model by @nicoloboschi in #1532
- chore: fix formatting in llm_wrapper.py to pass verify-generated-files by @nicoloboschi in #1534
- perf(locomo): scope CI to a 3-conversation curated subset by @nicoloboschi in #1536
- fix(typescript-client): derive CLIENT_VERSION via tsup define by @nicoloboschi in #1540
- feat(api): add litellmrouter provider for LLM fallback chains by @nicoloboschi in #1537
New Contributors
- @can1357 made their first contribution in #1459
- @nepenth made their first contribution in #1523
- @ariel-ai-bot made their first contribution in #1530
- @Burgunthy made their first contribution in #1529
- @kryptt made their first contribution in #1439
Full Changelog: v0.6.0...v0.6.1
v0.6.0
What's Changed
- Add Pipecat voice AI persistent memory blog post by @benfrank241 in #1300
- docs(guides): add Hindsight update guides by @benfrank241 in #1301
- Fix broken link in CLI ARM64 guide by @benfrank241 in #1305
- Oracle 23ai database backend by @DK09876 in #1307
- feat(agentcore): add hindsight-agentcore integration for Bedrock AgentCore Runtime by @benfrank241 in #822
- fix(agentcore): async-native client, task tracking, drop per-package CHANGELOGs by @nicoloboschi in #1313
- fix(oracle): restore PG query semantics and clean up migration chain by @nicoloboschi in #1312
- refactor(release): single integration table in generate_changelog by @nicoloboschi in #1314
- docs: add scoring & ranking deep dive to recall docs by @nicoloboschi in #1317
- feat: add SmolAgents integration with Hindsight memory tools by @benfrank241 in #658
- fix(oracle): restore exact v0.5.6 PG query shapes by @nicoloboschi in #1321
- fix(test): remove stale profile auto-create assertion from bank stats test by @nicoloboschi in #1323
- fix(embeddings): add allowed_openai_params for OpenAI-compatible embedding dimensions by @zwcf5200 in #1320
- fix: redact database URLs in config logs by @xmh1011 in #1316
- docs(mental-models): document tags?source=mental_models per #1296 by @r266-tech in #1311
- feat(python-client): expose retain_async in retain() and aretain() by @harryplusplus in #1306
- fix(codex): fix encoding with PowerShell by @jerviscui in #1185
- chore: remove stray files accidentally landed on main by @benfrank241 in #1326
- fix(deps): cap cryptography <47 to fix SIGILL on ARM64 Apple Silicon by @nicoloboschi in #1324
- feat: self-driving agents (part1) by @nicoloboschi in #1302
- chore(docs): sync version-0.5 docs from next by @nicoloboschi in #1328
- perf(db): eliminate ResultRow wrapping overhead for PostgreSQL by @nicoloboschi in #1325
- perf: add recall-with-observations & consolidation suites, split CI steps, fix locomo by @nicoloboschi in #1333
- docs(models): document litellm-sdk embeddings provider by @r266-tech in #1336
- feat(perf): add HTTP mode to recall benchmark by @nicoloboschi in #1315
- fix(consolidator): dedupe + ON CONFLICT for observation_sources INSERT by @youchi1 in #1340
- fix(embed): include 'all' extras when spawning hindsight-api from sibling source by @youchi1 in #1341
- fix(async-ops): atomically commit batch_retain parent and child rows by @cdbartholomew in #1343
- docs(python-sdk): document retain_async kwarg per #1306 by @r266-tech in #1347
- docs: add Oracle Database as supported enterprise storage by @nicoloboschi in #1356
- fix(llm): guard against null content from OpenAI-compatible providers by @nicoloboschi in #1355
- feat(oracle): unify migrations under Alembic with dialect dispatcher by @nicoloboschi in #1330
- fix(config): default openai-codex model to gpt-5.4 by @nicoloboschi in #1357
- fix(codex): filter synthetic AGENTS startup messages by @voarsh2 in #1346
- feat(self-driving-agents): add nemoclaw harness support by @nicoloboschi in #1335
- docs: add Pydantic Logfire guide for Hindsight tracing by @benfrank241 in #1339
- Blog: Agent Memory in SmolAgents with Hindsight Tools by @benfrank241 in #1329
- Add AWS AgentCore integration blog post by @benfrank241 in #1377
- fix(embed): drop gpt-4o-mini fallback when hindsight-api import fails by @nicoloboschi in #1363
- feat(typescript-client): add AbortSignal support to all HindsightClient methods by @harryplusplus in #1198
- feat(stats): add time_field toggle to memories-timeseries chart by @aliu-ronin in #1246
- feat(opencode): share memory bank across git worktrees of the same repo by @isac322 in #1352
- docs(self-driving-agents): document nemoclaw harness + --sandbox flag by @r266-tech in #1367
- Harden OpenAI-compatible JSON responses and ensure json_object prompt hint by @voarsh2 in #1368
- fix(hindsight-api-slim): bump opentelemetry-{api,sdk,instrumentation,exporter} floors so PrometheusMetricReader 0.62b1 doesn't crash startup by @nikolay-bratanov in #1373
- fix(oracle): update CHECK constraints in baseline to match PG schema by @DK09876 in #1379
- fix(api): include observations in per-document graph and counts by @youchi1 in #1374
- fix(webhooks): route webhook endpoints through tenant-aware engine methods by @cdbartholomew in #1388
- fix: redirect daemon subprocess stdout/stderr on POSIX to prevent TUI corruption by @laoli-no1 in #1380
- fix(retain): retain all documents in async multi-document batches by @voarsh2 in #1382
- chore(embed): tidy detach-popen helper and close log fds in parent by @nicoloboschi in #1418
- codex: add configurable recall timeout for UserPromptSubmit hooks by @voarsh2 in #1399
- fix(openclaw): add WeakSet registration guard keyed by API instance by @vernmic in #1409
- chore(clients): regenerate clients for time_field timeseries param by @nicoloboschi in #1420
- fix(typescript-client): expose missing recall/reflect params by @nicoloboschi in #1362
- fix: clean up async batch retain test fixtures and comments by @nicoloboschi in #1419
- fix(api): recognize Pydantic aliases in unknown param middleware by @Tosko4 in #1417
- fix(retain): defer memory_links → memory_units FKs to break cascade deadlock by @cdbartholomew in #1398
- fix(daemon): honor --host and HINDSIGHT_API_HOST in daemon mode by @nicoloboschi in #1422
- fix(recall): preserve original exception in recall_async error path by @nicoloboschi in #1421
- fix(worker): handle NotImplementedError from add_signal_handler on Windows by @nicoloboschi in #1423
- fix(self-driving-agents): fail fast when nemoclaw sandbox is missing by @nicoloboschi in #1365
- fix(mcp): expose tag_groups parameter on recall tool by @nicoloboschi in #1424
- chore(generated): regenerate openapi spec + clients post #1246 by @aliu-ronin in #1426
- fix(hindsight-embed): use sysconfig to find scripts dir in daemon start by @nicoloboschi in #1425
- feat(anthropic): env-driven max_retries + default_headers knobs by @TuftyBruno in #1389
- feat(self-driving-agents): add Claude Chat/Cowork harness by @nicoloboschi in #1427
- feat(self-driving-agents): add Hermes Agent harness support by @nicoloboschi in #1431
- fix(entity-resolver): stamp cooccurrences with event_date, not now() by @aliu-ronin in #1247
- blog: Your Agent Harness Has Tools. It Still Needs Memory. by @benfrank241 in #1429
- docs(guides): add framework memory integration guides by @benfrank241 in #1432
- feat(n8n): add n8n community-node package for Hindsight memory by @benfrank241 in #1364
- fix(n8n): add missing entry point, fix auth header, add execution tests by @nicoloboschi in #1444
- ci: stop re-running test wo...
v0.5.6
What's Changed
- docs(release): changelog + blog for v0.5.5 by @nicoloboschi in #1297
- ci: include linux arm64 CLI in release assets by @xmh1011 in #1298
New Contributors
Full Changelog: v0.5.5...v0.5.6
v0.5.5
What's Changed
- release: 0.5.4 changelog by @nicoloboschi in #1195
- fix: auto-confirm control plane install on first UI launch by @bwjoke in #1197
- feat(worker): per-operation slot reservations by @nicoloboschi in #1199
- feat(perf): add system performance test runner by @nicoloboschi in #1201
- fix(perf): fix perf-test CI install and WorkerPoller kwarg by @nicoloboschi in #1206
- feat(db): configurable Postgres statement_timeout on pool connections by @nicoloboschi in #1200
- fix(worker): prevent child tasks from blocking parent execution by @nicoloboschi in #1210
- chore(perf): default CI perf-test scale to large by @nicoloboschi in #1211
- Blog: Hindsight 10,000 Stars Celebration by @benfrank241 in #1208
- Fix: Update 10k stars blog post date to April 22 by @benfrank241 in #1213
- feat(api): expose retry_count and next_retry_at on operation responses by @cdbartholomew in #1188
- feat(retain): expose processed_content_tokens on RetainResult by @cdbartholomew in #1217
- fix(claude-code): retain on SessionEnd even when retainEveryNTurns > 1 by @starbit-biostar in #1152
- feat(claude-code): recall from additional banks alongside primary by @starbit-biostar in #1153
- feat(perf): add LoComo benchmark as parallel CI job by @nicoloboschi in #1223
- fix(claude-code): prevent compaction from overwriting retained memories by @nicoloboschi in #1222
- fix(integrations): preserve raw UTF-8 in dynamically-derived bank_id by @Desko77 in #1141
- docs(workers): document per-operation slot reservations (#1199) by @r266-tech in #1207
- fix(perf): locomo defaults — all conversations, wait-consolidation, pro model by @nicoloboschi in #1224
- fix(mcp): remove delete_memory tool to close authorization-bypass gap by @nicoloboschi in #1228
- fix(ops): expose processing/cancelled statuses through API and UI by @nicoloboschi in #1231
- feat(api): add exclude_parents filter to list operations by @nicoloboschi in #1230
- feat(api,ui): document chunks API, reprocess, and enhanced document detail by @nicoloboschi in #1236
- fix: correct docker command in 10k stars blog quickstart by @benfrank241 in #1237
- blog: Your Agent Is Not Forgetful. It Was Never Given a Memory. by @benfrank241 in #1235
- guides: add 20 general agent memory guides by @benfrank241 in #1233
- fix(litellm): handle streaming responses in _store_conversation by @DK09876 in #1239
- fix(claude-code): handle list-content tool_results in transcript parsing by @nicoloboschi in #1226
- fix(stats): timeseries buckets should return tz-aware ISO by @aliu-ronin in #1245
- fix(db): accept asyncpg-style URLs for external PostgreSQL by @nicoloboschi in #1225
- feat(embeddings): allow Cohere output dimensions via env var by @nicoloboschi in #1249
- fix(docs): escape curly braces in generated changelog entries by @nicoloboschi in #1248
- fix(tests): repair 9 regressions surfaced on main by @nicoloboschi in #1251
- Update integration author for ContextForge by @ooa-andera in #1254
- feat(embed): full Windows support + prefer sibling hindsight-api over uvx by @nicoloboschi in #1250
- fix(llm): handle DeepSeek tool-call compatibility by @M1p0 in #1253
- docs: add nodes_by_fact_type field to Document Response Format example by @r266-tech in #1243
- feat(embeddings): add HINDSIGHT_API_EMBEDDINGS_GEMINI_FORCE_IPV4 opt-in by @connorblack in #1241
- docs(ops): document processing + cancelled statuses from #1231 by @r266-tech in #1238
- docs(blog): align retainEveryNTurns default with #1186 (10 → 3) by @r266-tech in #1268
- docs(sidecar): mirror HINDSIGHT_API_EMBEDDINGS_GEMINI_FORCE_IPV4 from #1241 by @r266-tech in #1265
- fix(embed): satisfy ty on Windows-only subprocess attrs by @grimmjoww in #1263
- docs(configuration): mirror COHERE_OUTPUT_DIMENSIONS env var into sidecar reference by @r266-tech in #1252
- chore(deps): bump actions/github-script from 8 to 9 by @dependabot[bot] in #1025
- fix(openclaw): stop silently skipping retention on default agent:main:main sessions by @nicoloboschi in #1276
- fix(consolidation): reduce memory fan-out during consolidation recall by @nicoloboschi in #1277
- Add blog post: Connect ChatGPT and Perplexity to Hindsight for Long-Term Memory by @benfrank241 in #1255
- chore(lint): cover all npm packages with prettier in lint.sh by @nicoloboschi in #1279
- fix(mcp): report Hindsight's version in serverInfo, not FastMCP's by @cdbartholomew in #1281
- docs(integrations): add ChatGPT and Perplexity integration guides by @benfrank241 in #1280
- docs(installation): document memory footprint and hardware requirements by @nicoloboschi in #1282
- feat(pipecat): add Pipecat voice AI pipeline memory integration by @benfrank241 in #921
- fix(llm): simplify JSON schemas for better Ollama and LLM compliance by @nicoloboschi in #1292
- fix(parsers): LlamaParse follow-up — reuse client, fix error mapping, add tests by @nicoloboschi in #1293
- fix(api): GET /banks/{bank_id}/profile no longer auto-creates the bank by @cdbartholomew in #1287
- fix(retain): drop strength from causal relations (fixes #1289) by @nicoloboschi in #1295
- fix(llm): omit tool_choice="auto" and add deepseek as first-class provider by @nicoloboschi in #1294
- chore(deps): bump actions/upload-artifact from 4 to 7 by @dependabot[bot] in #1278
- test(integration): add Hermes Agent embedded-mode smoke test by @nicoloboschi in #1283
- feat: mental-models List view + /tags?source=mental_models by @nicoloboschi in #1296
New Contributors
- @bwjoke made their first contribution in #1197
- @starbit-biostar made their first contribution in #1152
- @Desko77 made their first contribution in #1141
- @aliu-ronin made their first contribution in #1245
- @M1p0 made their first contribution in #1253
- @connorblack made their first contribution in #1241
Full Changelog: v0.5.4...v0.5.5
v0.5.4
What's Changed
- release: 0.5.3 notes and blog post by @nicoloboschi in #1126
- blog: OpenAI Agents persistent memory with Hindsight by @benfrank241 in #1129
- fix(openai-agents): review followup — docs, tests, polish by @DK09876 in #1134
- docs: fix HINDSIGHT_API_LLM_MAX_RETRIES default (10 → 3) by @r266-tech in #1137
- docs(sdk): add document CRUD methods to TypeScript client reference by @r266-tech in #1132
- fix(ai-sdk): align ReflectBasedOn types with OpenAPI spec by @nicoloboschi in #1163
- fix(api): populate items_count in list_operations by @nicoloboschi in #1164
- feat(admin): add decommission-workers and worker-status CLI commands by @nicoloboschi in #1165
- feat(claude-code): add {user_id} retainTags template variable by @soichisumi in #1161
- fix(startup): downgrade LLM verify_connection failure to warning by @nicoloboschi in #1166
- feat: disable daemon idle timeout by default by @nicoloboschi in #1162
- blog: OpenCode persistent memory with Hindsight by @benfrank241 in #1172
- guide batch, OpenClaw and Hermes memory by @benfrank241 in #1177
- fix(worker): pass DeferOperation through MemoryEngine.execute_task by @cdbartholomew in #1135
- fix(engine): use ensure_ascii=False in json.dumps for LLM prompts by @harryplusplus in #1169
- docs: add cover images for Apr 20 OpenClaw and Hermes guide batch by @benfrank241 in #1181
- fix(worker): scan for active schemas before claiming by @cdbartholomew in #1109
- fix(mcp): route update_bank through config resolver, expose all fields by @nicoloboschi in #1168
- docs(admin-cli): document decommission-workers and worker-status by @r266-tech in #1180
- fix(reflect): honor reflect_mission identity framing in prompt builder by @nicoloboschi in #1167
- fix(retain): prevent duplicate memory units from delta upsert chunk issues by @nicoloboschi in #1178
- fix(alembic): merge divergent heads for v0.5.3 by @grimmjoww in #1149
- docs(mcp): document update_bank config_updates and configurable fields by @r266-tech in #1183
- blog: add five agent memory articles by @benfrank241 in #1184
- fix(opencode): lower retainEveryNTurns default from 10 to 3 by @DK09876 in #1186
- fix(reflect): prevent directive leakage on empty banks by @nicoloboschi in #1190
- fix: allow reflect-specific LLM config when default is disabled by @zwcf5200 in #1189
- chore(deps): bump actions/upload-pages-artifact from 4 to 5 by @dependabot[bot] in #1170
- feat(embeddings): make OpenAI-compatible batch size configurable (#1142) by @r266-tech in #1143
- fix(embedded): recover from daemon crashes transparently by @nicoloboschi in #1193
- fix(retain): preserve document created_at across upsert + UI edit flow by @nicoloboschi in #1194
- fix(reflect): scope delta mental model recall to new memories only by @nicoloboschi in #1192
New Contributors
- @soichisumi made their first contribution in #1161
- @harryplusplus made their first contribution in #1169
- @zwcf5200 made their first contribution in #1189
Full Changelog: v0.5.3...v0.5.4
v0.5.3
What's Changed
- feat(openclaw): session-scoped document_id and structured per-message timestamp by @nicoloboschi in #1075
- release: 0.5.2 notes and blog post by @nicoloboschi in #1074
- docs: add screenshots to 0.5.2 release post by @nicoloboschi in #1078
- fix(control-plane): encode bank ids in URLs end-to-end by @nicoloboschi in #1079
- fix(reflect): forward mental model max_tokens to refresh by @nicoloboschi in #1076
- feat(cli): add named connection profiles (-p/--profile) by @nicoloboschi in #1080
- feat(api): add tenant field and configurable allowlist to JSON logs by @nicoloboschi in #1085
- feat(paperclip): replace library with Paperclip plugin (v0.2.0) by @benfrank241 in #934
- docs: add /guides section with Hermes how-to guides by @benfrank241 in #1062
- fix(worker): per-tenant fair rotation in claim_batch by @cdbartholomew in #1088
- feat(mental-models): staleness signal + history reflect snapshot + UI revamp by @nicoloboschi in #1089
- fix: handle 'timestamp' field for file retain API by @christerence in #1092
- fix: files/retain upload problems and orphaned retains by @christerence in #1091
- fix(worker): make submit_task idempotent when payload already set by @nicoloboschi in #1097
- test(file-retain): regression for timestamp -> event_date mapping by @nicoloboschi in #1096
- fix(openclaw): resolve full symlink chain in isDirectExecution() by @D2758695161 in #1093
- feat(control-plane): surface failed-consolidation count and drilldown by @nicoloboschi in #1100
- fix(openclaw): per-session retain stops overwriting prior turns by @nicoloboschi in #1102
- fix(ollama): add think=false to _call_ollama_native payload by @karl-8888 in #1099
- fix(consolidation): prevent orphan observations when source deleted mid-consolidation by @nicoloboschi in #1090
- feat(recall): make budget mapping configurable per bank by @nicoloboschi in #1106
- feat(worker): DeferOperation exception for extension-driven requeue by @nicoloboschi in #1105
- feat(mental-models): structured-ops delta refresh + observation cleanup on upsert by @nicoloboschi in #1101
- fix(control-plane): clearer constellation recency legend & node tooltip by @nicoloboschi in #1108
- blog: Constellation View and Entity Co-occurrence Graph by @benfrank241 in #1103
- docs: add /guides section with how-to guides and comparisons by @benfrank241 in #1110
- feat: add OpenAI Agents SDK integration by @DK09876 in #842
- fix(integrations): add encoding="utf-8" to transcript file reads by @tordf in #1119
- fix(ai-sdk): align HindsightClient interface with hindsight-client@0.5.2 by @nicoloboschi in #1118
- fix(migrations): restore broken chain for v0.4.22 to v0.5.x upgrades by @nicoloboschi in #1117
- fix(jina-mlx): serialize Metal GPU ops to prevent SIGSEGV on concurrent reranker calls by @lkttle in #1113
- fix: improve reranker error messages and add configurable TEI timeout by @octo-patch in #1115
- fix(config): reduce default LLM max retries from 10 to 3 by @nicoloboschi in #1121
- feat: add consolidation_max_memories_per_round config by @nicoloboschi in #1123
New Contributors
- @christerence made their first contribution in #1092
- @D2758695161 made their first contribution in #1093
- @karl-8888 made their first contribution in #1099
- @tordf made their first contribution in #1119
- @lkttle made their first contribution in #1113
Full Changelog: v0.5.2...v0.5.3