What's Changed
- docs: changelog and blog post for v0.8.6 by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3051
- blog: Give GitHub Copilot CLI a memory of your codebase by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3055
- docs: add missing 0.8.6 changelog entries by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3063
- docs: give the documents table its own section in the 0.8.6 blog post by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3064
- feat(engine): pluggable memories storage backend by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/2917
- chore(deps): bump pg0-embedded to >=0.15.0 by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3073
- feat(knowledge-base): client-managed knowledge pages, control-plane UI +
hindsight fsCLI by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/2455 - docs(hermes): deprecate standalone hindsight-hermes plugin (#3057) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3077
- feat(file-parser): support custom OCR headers by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/3065
- feat(control-plane): show the coding agent's logo on documents and memories by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3079
- fix(packaging): bundle licenses in Python distributions by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/3067
- fix(consolidation): trigger mental model refresh on resolved scope, not the tags column (#3053) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3078
- fix(control-plane): knowledge-pages polish by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3080
- fix(copilot-cli): parse Copilot CLI 1.0.76 native message transcript format by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3081
- blog(github-copilot): redate to 2026-07-30 by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3087
- feat(control-plane): a logo for every coding agent, not just five by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3101
- feat(control-plane): badge documents an in-flight retain op is updating by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3102
- fix(openclaw): default recall injection to user context by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/3066
- feat(agent-sdk): let agent_knowledge_recall request source chunks by @chethanuk in https://github.com/vectorize-io/hindsight/pull/2995
- fix(engine): don't hold pooled DB connections across embedder/LLM calls (consolidation + mental model) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3082
- feat(openclaw): add preferObservations recall option (#2977) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3108
- fix(memory-engine): compute update_memory_unit embeddings off the pooled connection by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3083
- fix(api): report the real last-write time on banks and documents by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3109
- blog: How to Actually Evaluate an Agent-Memory System by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3106
- blog(evaluate-agent-memory): more contextual cover by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3117
- hindsight-coding-agents: harness-pluggable long-term memory for coding agents by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/2522
- docs(embed): document uvx cache growth and how to reclaim it (#2915) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3118
- feat(control-plane): refresh the UI design system by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3149
- chore: replace broken star-history chart with self-hosted gh-stars by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3150
- feat(llm): add
openai-responsesprovider (OpenAI Responses API) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3121 - docs(knowledge-pages): document Knowledge Pages and Mental Models, and manage them from the CLI by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3151
- fix(recall): apply the created_after/created_before window to graph expansion by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3153
- fix: render disallowed fields in config permission error message by @kubaodias in https://github.com/vectorize-io/hindsight/pull/3148
- fix(consolidation): apply sanitize_text to the _DedupDecision merge write path by @iRonin in https://github.com/vectorize-io/hindsight/pull/3144
- feat(mental-models): dry-run refresh and keep_trace for troubleshooting by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3119
- feat(reflect,mental-models): surface structured output in the control plane by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3113
- fix: return 422 for invalid recall fact types by @tao943 in https://github.com/vectorize-io/hindsight/pull/3062
- chore(api): drop the never-written memory_units.access_count column by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3157
- docs(retain): deprecate bank name as narrator; steer speaker via context (#3138) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3155
- fix(recall): enforce the query token cap for internal recalls, not just HTTP by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3158
- feat(config): per-operation llm_extra_body overrides by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3159
- feat(embeddings): generic per-input token cap across all providers by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3160
- fix(tei): retry embedding connect timeouts by @jooneyp in https://github.com/vectorize-io/hindsight/pull/3097
- fix(coding-agents): read Devin's transcript with node:sqlite, and refuse to install without it by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3175
- docs(retain): suggest a distinct document_id per source document by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3173
- fix(control-plane): report mental-model freshness from the bank write watermark by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3156
- fix(retain): unify OutputTooLongError so [#2579] output auto-split actually runs by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3174
- chore(db): remove deprecated entity schema from memory_links by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3177
- fix(retain): sync metadata to unchanged memories by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/3011
- fix(recall): retry get_or_create_bank_profile on per-bank index deadlock by @dcbouius in https://github.com/vectorize-io/hindsight/pull/2984
- fix(consolidation): guard observation_history append on 0-row observation UPDATE by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3161
- fix(config): report deleted import banks as conflicts by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/3035
- feat(reranker): failover chain via indexed HINDSIGHT_API_RERANKER_<n>_* members by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3176
- blog: Per-User Memory for AI Products — Multi-Tenant Patterns by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3180
- feat(obsidian): headless CLI vault ingestion (hindsight-obsidian-sync) by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3179
- perf(entity-resolution): skip fuzzy probing for exact-match-only label entities by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3187
- feat(entity-resolution): configurable pg_trgm similarity threshold, applied at connection setup by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3188
- fix(embeddings): honor query and document prompts locally by @jpmf33 in https://github.com/vectorize-io/hindsight/pull/3032
- feat(query-analyzer): configurable dateparser locale detection by @yufanw03 in https://github.com/vectorize-io/hindsight/pull/3154
- fix(mental-models): never overwrite a document with a delta-window candidate by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3182
- fix(consolidation): keep observations in their source facts' language by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3181
- fix(embed): bound daemon log growth by @koriyoshi2041 in https://github.com/vectorize-io/hindsight/pull/3165
- fix(llm): release concurrency permits during retry backoff by @koriyoshi2041 in https://github.com/vectorize-io/hindsight/pull/3145
- feat(recall): per-budget reranker candidate cap via env config (#3107) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3191
- fix(api): publish LabelGroup schema for entity_labels in OpenAPI (#3107) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3190
- fix(delete): sweep orphan entities when no relink victims were enqueued by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3198
- fix(deps): make macOS installs work without a Rust toolchain by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3199
- feat(coding-agents): local daemon mode, and pick the server at install time by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3193
- fix: remove stale global memory_units vector index via migration; make reconcile hands-off by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3204
- feat(templates): Hermes-branded bank templates, grounded in real Hermes user stories by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/2996
- fix(entities): dedup same-batch entity variants via pg_trgm (#3107) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3197
- fix(maintenance): stop the scheduled mental-model refresh from enqueueing duplicates (#3210) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3212
- perf(entity-resolution): exclude label entities from the trigram fuzzy-match index by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3214
- fix(retain): bound entity-resolution candidate scoring (#3211) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3213
- fix(litellm): keep macOS on litellm's last pure-python line (pip install is broken on Mac) by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/3224
- test(vector-index): resolve the repair migration's parent instead of branch@-1 by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3238
- fix(worker): reconcile operations a worker still owns when it stops by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3234
- fix(import): classify label entities when restoring a bank (#3236) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3237
- Harden outbound webhook delivery destinations and response handling by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3239
- feat(coding-agents): carry the Codex plugin's endpoint over too by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3203
- feat(coding-agents): stage the runtime so npx installs work by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3241
- feat(recall): per-bank toggles for the temporal, graph, and rerank stages by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/3223
- feat(coding-agents): styled installer UI, arrow-key server picker, required Cloud token by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3242
- docs(templates): recommend more integrations per template, not just Hermes by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3215
- docs: launch Coding Agents + mark the per-agent plugins superseded by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3162
- Revert "chore(db): remove deprecated entity schema from memory_links" (#3177) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3244
New Contributors
- @tao943 made their first contribution in https://github.com/vectorize-io/hindsight/pull/3062
- @jooneyp made their first contribution in https://github.com/vectorize-io/hindsight/pull/3097
- @jpmf33 made their first contribution in https://github.com/vectorize-io/hindsight/pull/3032
- @yufanw03 made their first contribution in https://github.com/vectorize-io/hindsight/pull/3154
Full Changelog: https://github.com/vectorize-io/hindsight/compare/v0.8.6...v0.9.0