Skip to content

Releases: vectorize-io/hindsight

v0.8.3

18 Jun 09:36

Choose a tag to compare

What's Changed

  • docs: changelog and blog post for v0.8.2 by @nicoloboschi in #2172
  • docs: add Memory Defense to the 0.8.2 blog post by @nicoloboschi in #2173
  • blog: Cursor persistent memory (editor + CLI in one post) by @benfrank241 in #2171
  • docs(models): register the nous provider so the Models page lists it by @r266-tech in #2128
  • docs(litellm): replace removed opinion fact-type with observation by @r266-tech in #2198
  • fix(search): use effective-time fallback (mentioned_at, occurred_end) for recency scoring by @r266-tech in #2197
  • Chore (opencode): drop utility re-exports from plugin entry by @mdbenito in #2193
  • fix(metrics): don't count a client-disconnect cancellation as a failed recall/reflect operation by @r266-tech in #2185
  • docs(reflect): align reflect_async docstring with read-only tool set by @kubaodias in #2200
  • feat(consolidation): add "shared" observation_scopes keyword by @nicoloboschi in #2202
  • fix(db): widen remaining live bank_id columns to TEXT on PostgreSQL (#2106 follow-up) by @r266-tech in #2175
  • fix(api): mental model delta refresh (prompt size, JSON, consolidation) by @oldschoola in #2170
  • feat(api): omit null fields from JSON responses where wire-safe by @nicoloboschi in #2204
  • feat(migrations): parallelize tenant schema migrations by @nicoloboschi in #2203
  • feat(retain): make structured-unit chunk limit configurable by @Sanderhoff-alt in #2139
  • feat(api): dry-run fact extraction endpoint (preview, no persistence) by @nicoloboschi in #2205
  • fix(ts-client): accept shared observation scope by @koriyoshi2041 in #2207
  • blog(gemini-spark): Gemini Spark persistent memory via MCP by @benfrank241 in #2208
  • feat(zapier): add Hindsight Zapier app (actions + REST Hook triggers) by @benfrank241 in #2119
  • feat(continue): add Continue.dev integration via HTTP context provider by @DK09876 in #2213
  • fix(skill-docs): convert all admonition keywords in the docs→skill generator by @r266-tech in #2218
  • fix(curation): drop the embedding column from invalidated_memory_units (#2209) by @nicoloboschi in #2210
  • feat(api): improve Chinese temporal query parsing by @Sanderhoff-alt in #2220
  • perf(api): index memory_links.bank_id on PostgreSQL by @zommiommy in #2223
  • fix(api): gate dry-run extraction behind the operation precheck by @r266-tech in #2211
  • fix(docs): deflake memories.py doc example (async-consolidation race) by @benfrank241 in #2152
  • test: fix flaky test-api shard (migration pg0 provisioning race) by @nicoloboschi in #2225
  • fix(mcp): give update_memory/invalidate_memory non-empty descriptions by @bluecrayon52 in #2215
  • test(control-plane): validate t() keys resolve against the i18n catalog by @nicoloboschi in #2232
  • feat(tags): officially surface tags_match=exact in UI, docs, and clients by @nicoloboschi in #2230
  • fix(migrations): merge two divergent alembic heads by @nicoloboschi in #2234
  • test: fix flaky test_llm_trace via leaked global recorder (#2229) by @nicoloboschi in #2231
  • revert(worker): trust schemas_with_pending_work() result, drop per-poll re-scan by @nicoloboschi in #2236
  • docs: update CLAUDE guidance by @Sanderhoff-alt in #2228
  • docs: fix stale documentation links by @Sanderhoff-alt in #2221
  • fix(control-plane): expose "shared" observation scope in the Add Document UI by @r266-tech in #2212
  • blog(obsidian): Chat With Your Obsidian Vault, grounded in your notes by @benfrank241 in #2237
  • feat(composio): add Composio integration (Hindsight memory as custom tools) by @benfrank241 in #2180
  • chore(control-plane): format bank-selector.tsx (lint drift from #2212) by @DK09876 in #2250
  • Add TypeScript client getVersion helper by @koriyoshi2041 in #2252
  • Strip reasoning tags on non-structured LLM output (and unclosed blocks) by @grimmjoww in #2195
  • fix(api): reject empty/whitespace content in dry-run extraction before the LLM call by @r266-tech in #2246
  • docs(embed): document control center commands by @r266-tech in #2151
  • docs(paperclip): document dynamicBankId / bankId / user granularity (#1761) by @r266-tech in #1803
  • Add Python client get_version helper by @nicoloboschi in #2256
  • fix(api): defer provider quota reset retries by @oldschoola in #2194
  • chore(ci): disable Dependabot version updates by @nicoloboschi in #2257
  • Honor CODEX_HOME for Codex auth.json location by @mdenil in #1874
  • fix(openclaw): always session-scope retained documents by @nicoloboschi in #2259
  • fix(claude-code-mcp): resolve venv interpreter in the Windows Scripts/ layout (#1758, 3a) by @eldar702 in #2066
  • claude-code: case-insensitive directoryBankMap matching on Windows by @eskild-boop in #2183
  • fix: template bank-id path segment in HTTP metric endpoint label (follow-up to #850) by @sireika in #2191
  • feat(api): add optional MarkItDown OCR support by @Sanderhoff-alt in #2145
  • fix(litellm): hard-cap completions with asyncio.wait_for so a hung call can't block forever by @kubaodias in #2224
  • log(consolidation): show call count + avg for each timing phase by @cdbartholomew in #2238
  • feat(mcp): add ToolAnnotations (read-only/destructive hints) to MCP tools by @yunanwg in #2243
  • fix(consolidation): handle single-value source_fact_ids from LLM by @haodonp in #2240
  • feat(extensions): expose Content-Length on PrecheckContext by @cdbartholomew in #2247
  • feat(metrics): expose async-operation queue + consolidation backlog as gauges by @MattJackson in #1987
  • fix(api): apply bank-config disposition + mission overlay in list_banks by @PathKnower in #2101
  • fix(openclaw): strip runtime metadata from memory content by @de1tydev in #1968
  • fix(mcp): omit reflect tool_trace/llm_trace from responses by default by @yunanwg in #2242
  • Add Gemini service tier config by @r266-tech in #2251
  • feat(embeddings): detect Intel XPU for local embedding acceleration by @nicoloboschi in #2260
  • docs: document MCP trace and precheck content length by @r266-tech in #2264
  • test(openclaw): fix agent_end hook tests after #1968 context change by @nicoloboschi in #2266
  • test(retain): fix broken quota-defer test config mock by @nicoloboschi in #2265
  • fix(retain): stop dropping chunks when an oversized doc splits into multi-chunk sub-batches by @nicoloboschi in #2269
  • Hide Windows netstat port probes by @koriyoshi2041 in #2263
  • Update integrations.json by @yugandhar-maram in #2268
  • docs(observations): stop claiming a per-observation freshness trend by @benfrank241 in #2271
  • feat(zed): add Zed editor integration (MCP context server + recall/retain rule) by @DK09876 in #2153
  • blog(freshness): Freshness-Aware Memory — knowing when a belief has gone stale by @benfrank241 in #2267
  • feat(openhand...
Read more

v0.8.2

12 Jun 16:08

Choose a tag to compare

What's Changed

  • docs: changelog and blog post for v0.8.1 by @nicoloboschi in #2080
  • chore(integrations): apply CI ruff formatting to haystack + roo-code tests by @nicoloboschi in #2082
  • blog: Cline persistent memory (lifecycle hooks, no MCP) by @benfrank241 in #2085
  • docs(icons): use real Cline brand mark in place of placeholder by @benfrank241 in #2086
  • feat(cursor-cli): ship as pip-installable hindsight-cursor-cli package by @benfrank241 in #2083
  • feat(cline): ship as pip-installable hindsight-cline package by @benfrank241 in #2088
  • feat(api): support gemini-embedding-2 family (per-input embedding) by @nicoloboschi in #2087
  • feat(cursor): add Hindsight memory plugin for Cursor by @DK09876 in #866
  • fix(obsidian): mirror plugin to a dedicated repo instead of releasing in the monorepo by @benfrank241 in #2078
  • fix(ci): authenticate the obsidian mirror push with OBSIDIAN_DIST_TOKEN by @benfrank241 in #2091
  • fix(ci): override git auth with OBSIDIAN_DIST_TOKEN for obsidian mirror push by @benfrank241 in #2093
  • blog: Hindsight is the fastest-growing open-source AI memory project ever by @cdbartholomew in #2092
  • chore(cursor): fix ruff-format drift in cursor integration tests by @benfrank241 in #2095
  • docs(integrations): add Gemini Spark integration page + grid entry (#1779) by @r266-tech in #1943
  • fix(ci): npm provenance 409 guard + add Obsidian MIT LICENSE by @benfrank241 in #2094
  • feat(ui): export constellation as a shareable SVG poster by @nicoloboschi in #2099
  • feat(api): add Gemini Batch API support for retain fact extraction by @nicoloboschi in #2089
  • Support service_tier selection for Amazon Bedrock by @mobilinkd in #2098
  • fix(reflect): carry directives + language rule into final synthesis prompt by @nicoloboschi in #2100
  • feat(api): per-bank LLM connectivity probe (#2034) by @nicoloboschi in #2084
  • docs(models): add Gemini Embedding 2 to Google models by @r266-tech in #2090
  • blog: add truncate markers to oh-my-pi and 10k-stars posts by @benfrank241 in #2065
  • refactor(memory-defense): per-bank regex defense, webhooks, drop dead surface by @nicoloboschi in #2077
  • feat(providers): add native Nous Portal provider (Codex-style OAuth, no hermes_cli dep) by @nicoloboschi in #2102
  • feat(api): per-bank provider cost attribution via OpenAI user field by @sireika in #1965
  • feat(obsidian): grounded-note citations, collapsed-by-default, persisted layout, inline depth by @benfrank241 in #2104
  • feat(embed): seed .env configs from bundled .env.example template by @nicoloboschi in #2105
  • fix(obsidian): clear community-store review for 0.1.2 + asset attestations by @benfrank241 in #2107
  • feat(memory): reversible curation — edit / invalidate memory units by @nicoloboschi in #1976
  • fix(cli): parse get-memory response correctly by @nicoloboschi in #2111
  • fix(api): widen history bank_id to TEXT on PostgreSQL (#2106) by @nicoloboschi in #2110
  • blog: Flowise persistent memory (three Tool nodes for any chatflow) by @benfrank241 in #2108
  • fix(docs): read observation history before curating facts in memories.py by @DK09876 in #2120
  • refactor(haystack): rename HindsightToolset -> HindsightMemoryWrapper by @DK09876 in #2118
  • fix(migrations): catch CommandError-wrapped ResolutionError in rolling-deployment skip by @bionicbutterfly13 in #2117
  • fix(api): cancel abandoned recall & reflect via cooperative cancellation token by @nicoloboschi in #2127
  • docs: flag Intel (x86_64) macOS as slim-only in supported-platforms grid (#2115) by @nicoloboschi in #2129
  • feat(retain): chunk JSONL at line boundaries by @nicoloboschi in #2126
  • chore(embed): drop unused HINDSIGHT_EMBED_BANK_ID + fix HINDSIGHT_EMBED_LLM_* docs by @nicoloboschi in #2130
  • fix(api): make recall/reflect disconnect cancellation actually work (behind BaseHTTPMiddleware) by @nicoloboschi in #2131
  • fix(docs): credit Cursor CLI integration to its community author (@Korayem) by @benfrank241 in #2109
  • docs: remove broken gitcgr code-graph badge from README by @benfrank241 in #2133
  • feat(embed): local control center web app by @nicoloboschi in #2132
  • chore: remove dead code and stale config by @Sanderhoff-alt in #2135
  • feat(consolidation): per-scope observation limits by @nicoloboschi in #2140
  • feat(observations): enumerate + filter + visualize observation scopes by @nicoloboschi in #2149
  • blog: 763,365 downloads in 30 days: Hindsight crosses 1M by @benfrank241 in #2134
  • docs(superagent): add prerequisites to integration quick start by @benfrank241 in #2137
  • docs(integrations): use the Gemini logo for Gemini Spark by @benfrank241 in #2146
  • feat(agent-framework): Hindsight memory for Microsoft Agent Framework (no MCP) by @benfrank241 in #1989
  • blog: Haystack persistent memory (drop-in tools + auto-recall wrapper) by @benfrank241 in #2147
  • feat(memory-defense): accept full 7-detector vocabulary in parser by @chrislatimer in #2142
  • fix(test): bump hierarchical-config count for observation_scope_limits (unblocks test-api) by @DK09876 in #2156
  • fix(webhook) missing fields in payload by @chrislatimer in #2164
  • chore(ci): enforce unused imports/vars + advisory dead-code scan by @nicoloboschi in #2144
  • fix(api): normalize torch default dtype after concurrent model init (#2162) by @nicoloboschi in #2167
  • docs(api): list all three supported webhook event types by @benfrank241 in #2155
  • fix(consolidation): honor an observation scope limit of 0 (no new observations) by @r266-tech in #2163
  • fix(control-plane): stop double-fetching graph data on bank view by @nicoloboschi in #2168

New Contributors

Full Changelog: v0.8.1...v0.8.2

v0.8.1

09 Jun 13:17

Choose a tag to compare

What's Changed

New Contributors

Full Changelog: v0.8.0...v0.8.1

v0.8.0

08 Jun 14:01

Choose a tag to compare

What's Changed

  • docs(guides): add Hermes memory guide batch by @benfrank241 in #1932
  • docs: changelog and blog post for v0.7.2 by @nicoloboschi in #1933
  • feat: upgrade MiniMax default model to M3 by @octo-patch in #1914
  • chore(control-plane): bump next back to ^16.2.6 (undo 16.2.5 pin) by @nicoloboschi in #1934
  • fix(retain): pre-extraction freshness recheck + serialize concurrent same-doc writers by @nicoloboschi in #1930
  • blog: Using Entity Labels to Automatically Tag Memories in Hindsight by @benfrank241 in #1935
  • feat(api): per-bank LLM request tracing via OTel GenAI recorder by @nicoloboschi in #1922
  • fix(recall): gate VectorChord BM25 + add per-source candidate cap (#1707) by @nicoloboschi in #1947
  • fix(config): persist bank config PATCH for never-retained banks (#1940) by @nicoloboschi in #1945
  • fix(control-plane): localize operations and graph legends by @MapleEve in #1946
  • fix(retain): stop bank_id routing key polluting fact attribution (#1680) by @nicoloboschi in #1948
  • feat(transfer): export/import documents between banks without re-running the LLM by @nicoloboschi in #1909
  • blog: Voice Agents That Remember — Adding Memory to Vapi with Hindsight by @benfrank241 in #1949
  • feat(control-plane): "not enabled" splash for disabled audit logs & LLM requests (+ bank name fix) by @nicoloboschi in #1950
  • fix(consolidation): eliminate duplicate observations (interleave dedup recall + tool & benchmark) by @nicoloboschi in #1907
  • fix(retain): make document lock/upsert dialect-aware for Oracle (#1944) by @nicoloboschi in #1952
  • fix(test): use current default model in Vertex AI integration test by @nicoloboschi in #1972
  • feat(transfer): whole-bank export/import for cross-instance migration (#1884) by @nicoloboschi in #1953
  • fix(search): escape pgroonga BM25 query text by @xmh1011 in #1966
  • feat(recall): per-strategy retrieval boost via env config by @nicoloboschi in #1974
  • feat(llm): provider prompt-prefix caching — retain + consolidation + reflect (bank-agnostic, default-on) by @cdbartholomew in #1936
  • fix(autogen): default to Cloud + gated E2E + bucketing + ADD missing CI job by @DK09876 in #1868
  • refactor(engine): cheaper bank stats — drop unused join, add freshness helper, result cache by @cdbartholomew in #1859
  • blog: Long-Term Memory for Google ADK Agents with Hindsight by @benfrank241 in #1979
  • blog(google-adk): update cover image by @benfrank241 in #1985
  • fix(llamaindex): default to Cloud + replace dead manual test with gated E2E + requires_real_llm bucketing by @DK09876 in #1867
  • feat(consolidation): semantic dedup of near-duplicate observations (create + update) by @nicoloboschi in #1977
  • fix(clients): expose reflect tool_calls/llm_calls trace in python + typescript wrappers by @nicoloboschi in #1997
  • fix(claude-code): default enableKnowledgeTools to true; keep MCP server alive when disabled by @nicoloboschi in #1999
  • feat(api): enable LLM request tracing by default with 1-day retention by @nicoloboschi in #1996
  • docs(configuration): document HINDSIGHT_API_BANK_STATS_CACHE_TTL_SECONDS + _MAX_ENTRIES from #1859 by @r266-tech in #1993
  • fix: raise _check_health default timeout 2s→10s to stop busy-daemon kill loop by @21Felix04 in #1992
  • docs(retrieval): correct "no per-strategy weight multipliers" after RECALL_STRATEGY_BOOSTS (#1974) by @r266-tech in #1991
  • docs(configuration): document HINDSIGHT_API_LLM_PROMPT_CACHE_ENABLED in the LLM Provider table by @r266-tech in #1990
  • docs(models): vertexai default model gemini-2.0-flash-001 is retired — sync to gemini-2.5-flash-lite by @r266-tech in #2001
  • docs(api/bank-templates): fix entity_labels manifest example — label-group objects, not string[] by @r266-tech in #1984
  • chore(deps): bump the uv group across 18 directories with 2 updates by @dependabot[bot] in #1982
  • fix(mental-models): create bank before insert by @oldschoola in #1994
  • docs(configuration): document HINDSIGHT_API_WORKER_IMPORT_DOCUMENTS_MAX_SLOTS worker slot reservation by @r266-tech in #1978
  • docs(admin-cli): document decommission-worker --yes/-y confirmation-skip flag by @r266-tech in #1957
  • fix(recall): bound temporal entry-point scan to top-50-per-fact_type (alternative to #1958) by @nicoloboschi in #1983
  • feat(consolidation): enable observation dedup by default (0.97), skip on Oracle by @nicoloboschi in #2000
  • fix: validate embedding dimensions before pgvector writes by @ai-ag2026 in #1670
  • chore: update gemini embedding model from preview to GA by @dcbouius in #1780
  • chore: update Gemini model recommendations to 3.x series by @dcbouius in #1787
  • hindsight-docs: Added OutSystems community integration by @stefan-d-p in #1873
  • docs(models): register fireworks so the Models grid + default-models table list it (#1860) by @r266-tech in #1911
  • docs(cli): replace removed opinion fact-type with observation in recall example by @r266-tech in #1917
  • docs(admin-cli): document full backup table coverage from #1903 by @r266-tech in #1929
  • chore(deps): bump the npm_and_yarn group across 1 directory with 2 updates by @dependabot[bot] in #1938
  • feat(embeddings): add ONNX local provider by @shoveller in #1970
  • fix(oracle): make recall and mental-model history work on the Oracle backend by @DK09876 in #1980
  • docs(performance): expand local-LLM concurrency guidance into a Local & Small Environments tuning section by @nicoloboschi in #2002
  • feat(llm): apply HINDSIGHT_API_LLM_EXTRA_BODY across all API providers by @nicoloboschi in #2006
  • feat(llm): opt-in strict json_schema across json_schema-capable providers (not just OpenAI) by @nicoloboschi in #2003
  • fix(api): add vchord catalogs to search_path for external Postgres (#1351) by @nicoloboschi in #2008
  • refactor(api): unify lazy bank-create into _ensure_bank_exists, couple to caller txn by @nicoloboschi in #2004
  • fix(ci): repair zeroentropy embedding tests and regenerate drifted clients by @nicoloboschi in #2009
  • fix(docker): clear diagnostic for pg0 bind-mount permission failure (#1483) by @nicoloboschi in #2010
  • feat(history): move mental-model & observation history into dedicated tables by @nicoloboschi in #2007
  • fix(reflect): let a fresh mental model short-circuit forced retrieval (no extra LLM call) by @nicoloboschi in #2011
  • docs(models): note Groq free tier (8k TPM) is unsuitable for Hindsight by @nicoloboschi in #2015
  • fix(init): fail fast when model init blocks instead of hanging forever by @nicoloboschi in #2014
  • fix(llm): downgrade tool_choice="required" for servers that silently drop it (vLLM/LM Studio/Ollama) by @nicoloboschi in #2016
  • feat(operations): durable progress snapshot for consolidation and batch retain by @nicoloboschi in #2013
  • blog: How Hindsight Learns — A Deep Dive Into Mental Models by @benfrank241 in #2021
  • LangGraph: add memory_instructions, fix nodes, remove BaseStore by @DK09876 in #1673
  • feat(claude-agent-sdk): add Claude Agent...
Read more

v0.7.2

02 Jun 13:41

Choose a tag to compare

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/agent fact_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 opinion fact_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

28 May 13:05

Choose a tag to compare

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

Full Changelog: v0.7.0...v0.7.1

v0.7.0

27 May 14:32

Choose a tag to compare

What's Changed

Read more

v0.6.2

14 May 20:27

Choose a tag to compare

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

Full Changelog: v0.6.1...v0.6.2

v0.6.1

08 May 13:24

Choose a tag to compare

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

Full Changelog: v0.6.0...v0.6.1

v0.6.0

05 May 16:36

Choose a tag to compare

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...
Read more