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
opinionfact-type withobservationby @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(openhands): add OpenHands integration (native MCP config + recall/retain rule) by @DK09876 in #2276
- chore(deps): fix critical/high Dependabot alerts by @dcbouius in #2278
- fix(tests) backsweep migration test pg0 isolation by @Sanderhoff-alt in #2282
- fix(tests) S3 testcontainers port mapping race by @Sanderhoff-alt in #2283
- fix(mcp): restore custom tool instructions by @Sanderhoff-alt in #2288
- feat(metrics): instrument async worker completion path with operation metrics by @kubaodias in #2253
New Contributors
- @mdbenito made their first contribution in #2193
- @kubaodias made their first contribution in #2200
- @koriyoshi2041 made their first contribution in #2207
- @zommiommy made their first contribution in #2223
- @bluecrayon52 made their first contribution in #2215
- @mdenil made their first contribution in #1874
- @eldar702 made their first contribution in #2066
- @eskild-boop made their first contribution in #2183
- @yunanwg made their first contribution in #2243
- @haodonp made their first contribution in #2240
- @MattJackson made their first contribution in #1987
- @PathKnower made their first contribution in #2101
- @yugandhar-maram made their first contribution in #2268
Full Changelog: v0.8.2...v0.8.3