v0.9.1
evcc-io/evccv0.9.1Aug 14, 2026by github-actions[bot]
Upgrading?
AI Summary
Enhances bank templates with full export/import round-trip and introduces OpenAI prompt caching. Fixes critical concurrency issues and adds async document export.
Key Highlights
- Bank template round-trip export/import
- OpenAI prompt caching on load-balanced backends
- Async document export
- Coding agents retainTags and retainMetadata
New Features
- Bank template export/import
- Reflect entity names on sub-recalls
- Coding agents retainTags/Metadata
- OpenAI prompt caching
- Async document export
- Coding agents auto-update version check
Full Release Notes
## What's Changed
* docs: 0.9.0 changelog + blog posts by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3189
* fix(coding-agents): seed the actual harness, not the "opencode" default (#3247, #3248) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3266
* fix(docker): repair PGroonga Compose image by @JiehoonKwak in https://github.com/vectorize-io/hindsight/pull/3316
* fix(engine): stop concurrent bank deletes from deadlocking on vector-index DDL by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3245
* fix(coding-agents): fall back from filesystem-root worktrees by @koriyoshi2041 in https://github.com/vectorize-io/hindsight/pull/3286
* fix(worker): serialise graph_maintenance per bank at claim time by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3235
* fix(llm): forward extra body to Codex requests by @koriyoshi2041 in https://github.com/vectorize-io/hindsight/pull/3305
* fix(api): knowledge-base search 500s on non-native text-search backends (#3268) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3318
* test(ci): gate every build on hermes-agent@main co-installability by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3265
* fix(config): validate bank config value types and stop them wedging tasks (#3218) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3319
* test(bank-template): round-trip every exportable field through export+import by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3324
* perf(reflect): drop retrieval plumbing from reflect tool results by @JoshFunnell in https://github.com/vectorize-io/hindsight/pull/3310
* feat(bank-template): make every bank config field export+importable by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3332
* fix(structured-doc): add TableBlock to fix markdown table rendering by @dragonkid in https://github.com/vectorize-io/hindsight/pull/3289
* feat(reflect): resolve entity names on reflect sub-recalls by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3334
* fix(api): gate knowledge-base routes through the operation validator (#3312) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3331
* fix(coding-agents): write back only the new turns (append + idempotent retain) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3336
* Pin embed to the metapackage release by @koriyoshi2041 in https://github.com/vectorize-io/hindsight/pull/3261
* feat(transfer): carry Knowledge Pages tree + regenerate mental-model search state on import (#3308, #3323) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3330
* fix(api): return 400 for malformed UUID on GET /entities/{id} and /memories/{id}/history by @Alan5168 in https://github.com/vectorize-io/hindsight/pull/3260
* fix(control-plane): surface direct request failures by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/3333
* fix(api): add a DB-free liveness probe so a slow database stops restarting pods by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3337
* fix(coding-agents,ci): drop the periodic re-sync; stop running doc examples for integration changes by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3341
* fix(coding-agents): bound transcript reads so an oversized session still retains (#3292) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3345
* fix(ollama): make native think configurable via extra_body by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3344
* feat(llm): xai-oauth provider — run the engine's LLM lanes on a flat-rate SuperGrok subscription (device-code OAuth, no API key), production-hardened by @JoshFunnell in https://github.com/vectorize-io/hindsight/pull/3272
* fix(reflect): provide the current date for temporal reasoning by @koriyoshi2041 in https://github.com/vectorize-io/hindsight/pull/3287
* fix(transfer): reject a wrong import zip with a 400 that names the fix by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3339
* blog: guest post — writenode, continuity over retrieval (Josh Groves) by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3243
* docs(config): name LM Studio/Ollama/Volcano for LLM_STRICT_SCHEMA by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3348
* fix(search): use PGroonga for Knowledge Pages by @JiehoonKwak in https://github.com/vectorize-io/hindsight/pull/3335
* fix(engine): normalize whitespace in candidate entity names at resolution intake by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3338
* fix(gemini): fail fast on deterministic 400 INVALID_ARGUMENT (#3256) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3347
* fix(ci): compare OpenAPI against the merge-base; build benchmark role configs whole by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3349
* feat(coding-agents): retainTags / retainMetadata, with HINDSIGHT_RETAIN_TAGS (#3269, #2896) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3346
* fix(coding-agents): seed bank missions once, then leave them to the user (#2492) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3352
* fix(coding-agents): report configured MCP harness by @TheAngryPit in https://github.com/vectorize-io/hindsight/pull/3342
* feat(llm): restore server-side prompt caching on load-balanced OpenAI-compatible backends — measured 0.085% aggregate hit rate without affinity vs 99.4% with, same backend by @JoshFunnell in https://github.com/vectorize-io/hindsight/pull/3271
* fix(retain): cut oversized sub-batches on native chunk boundaries (#3282) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3351
* perf(docs): switch the Docusaurus build to Rspack + SWC by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3357
* feat(transfer): async document export (#3321) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3340
* fix(obsidian): scope sync index to bank and API target (#3257) by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3354
* fix(coding-agents): drop harness transport wrappers from retained turns (#3023) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3378
* docs(coding-agents): say which harnesses retainEveryTurns applies to by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3380
* fix(transfer): mint a fresh internal_id on whole-bank import (#3270) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3353
* fix(coding-agents): drop Claude Code's compaction summary from retained turns (#3379) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3383
* fix deletion of failed document uploads by @koriyoshi2041 in https://github.com/vectorize-io/hindsight/pull/3366
* fix(retain): sweep observations when delta retain deletes chunks by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3384
* docs: correct the Azure OpenAI base URL by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3385
* feat(llm): opt-in forced-tool structured output for LiteLLM providers (#3300) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3382
* feat(memories): per-bank store capabilities on main (writes_memory_rows_in_sql_for / owns_document_store_for) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3388
* fix(retain): fold shared document_id items on the sync path (#3363) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3386
* fix(reflect): decouple page max_tokens from the provider output cap (#3365) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3389
* fix(retain): match chunk-delete link endpoints through indexable joins (#3387) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3393
* feat(agent-plugin): portable Hindsight plugin for the Agent Plugins standard by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3394
* fix(retain): stop concurrent appends to one document from losing turns by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3395
* fix(stats): drop permanently failed memories from pending_consolidation by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3397
* blog: Best Open-Source Agent Memory Systems (Self-Hosted, 2026) by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3192
* blog: update Best Open-Source Agent Memory Systems date to 2026-08-11 by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3399
* fix(reflect): split synthesis — parallel claim extraction + reduce instead of dropping over-budget evidence by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3392
* fix(coding-agents): bound automatic reflect budget by @TheAngryPit in https://github.com/vectorize-io/hindsight/pull/3364
* feat(coding-agents): add Prime Agent as a supported harness by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3240
* fix(compose): use HINDSIGHT_API_LLM_API_KEY env var by @ishfuseini in https://github.com/vectorize-io/hindsight/pull/3398
* fix(coding-agents): resolve the project when the working directory is gone (supersedes #3110) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3410
* fix(retain): globalise memory_links lock order on the insert path (#3396) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3406
* perf(graph): decouple stale-cooccurrence prune from hub-entity degree (#3367) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3408
* docs(reflect): clarify tag-scoped directive behavior by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/3038
* fix(coding-agents): stop the prompt hook wiping the retain cursor; write state atomically (supersedes #3136) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3412
* fix(knowledge): sync backing mental_model name on page rename (#3307) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3407
* fix(search): stop extreme relative date offsets from crashing recall (#3217) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3413
* feat(coding-agents)!: drop retainEveryTurns — batching belongs on the server by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3415
* fix(consolidation): cancel sibling tag groups when a batch fails by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3417
* feat(coding-agents): apply retain attribution to all ingestion paths by @voarsh2 in https://github.com/vectorize-io/hindsight/pull/3418
* fix(recall): fill the source_facts budget in rank order and flag truncation (#3221) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3419
* fix: untrack the coding-agents node_modules symlink by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3422
* fix(embed): define daemon stop() success by port occupancy, not the health probe by @Alan5168 in https://github.com/vectorize-io/hindsight/pull/3171
* feat(coding-agents): handle 429 on both the request and the poll path by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3423
* fix(consolidation): refresh mental models every round, not just the final one (#3411) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3416
* feat(coding-agents): optInOnly — run memory only in projects that were opted in by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3433
* fix(mental-models): trace delta-ops call and decouple its completion cap (#3421) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3424
* fix(graph-maintenance): drive the entity prune off a queue, not a bank-wide sweep (#3222) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3409
* fix(engine): scope document statements by bank_id (#3429) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3435
* retain: don't hold the data-plane connection across a separate-store write by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3414
* fix(coding-agents): bound the 429 retry by the caller's clock, not a constant by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3425
* retrieval: one unified store call for all arms + all fact types by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3434
* fix(files): give each batched file a unique storage key (#3226) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3437
* fix(llm): preserve inline <think> literals in _strip_reasoning_tags by @hundunweimi in https://github.com/vectorize-io/hindsight/pull/3426
* blog: Give Any Agent Plugins Client Long-Term Memory by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3440
* fix(reranker): batch FlashRank passages instead of one unbounded forward pass (#3355) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3441
* fix(release): ship Rust CLI license notices by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/3447
* fix(api): correct stale OpenAPI examples by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/3436
* fix(llamacpp): pass extra_body through factory to LlamaCppLLM by @handnewb in https://github.com/vectorize-io/hindsight/pull/3431
* docs(config): clarify that zeroing maintenance intervals stops scheduling, not execution by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3454
* fix(coding-agents): say when a turn is running without memory by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3455
* perf(recall): score observation expansion set-wise, not per candidate row (#3085) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3451
* fix(ci): fetch crates for all targets before the offline license scan by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3457
* perf(recall): make temporal extraction ~9x faster without changing behaviour by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3452
* fix(release): keep package-lock.json's version in step with the release by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3456
* refactor(kb): create pages and mental models atomically by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/3369
* fix(coding-agents): run the opencode survey under our own agent, not plan mode by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3460
* feat(api): forward allowlisted request headers to extensions by @rares-mollie in https://github.com/vectorize-io/hindsight/pull/3428
* feat(docs): blog list infinite scroll, search, category badges, mobile polish by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3463
* recall: carry entity_ids on results, skip redundant re-fetch in entity_build by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3461
* feat(eliza): Hindsight long-term memory integration for elizaOS by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/2385
* fix(llm): send an explicitly configured reasoning_effort (#3449) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3459
* docs(examples): add TEI embeddings + reranker docker-compose example by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3465
* Dedupe graph maintenance submits against running jobs, not just pending ones by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/3444
* blog: Claude Code Now Builds and Reads Its Own Knowledge Base by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3464
* docs: link Hindsight Academy from the docs navbar and footer by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/3473
* feat(memories): assert_writable — let a store close a bank to writes by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/3489
## New Contributors
* @JoshFunnell made their first contribution in https://github.com/vectorize-io/hindsight/pull/3310
* @dragonkid made their first contribution in https://github.com/vectorize-io/hindsight/pull/3289
* @Alan5168 made their first contribution in https://github.com/vectorize-io/hindsight/pull/3260
* @TheAngryPit made their first contribution in https://github.com/vectorize-io/hindsight/pull/3342
* @ishfuseini made their first contribution in https://github.com/vectorize-io/hindsight/pull/3398
* @hundunweimi made their first contribution in https://github.com/vectorize-io/hindsight/pull/3426
* @rares-mollie made their first contribution in https://github.com/vectorize-io/hindsight/pull/3428
**Full Changelog**: https://github.com/vectorize-io/hindsight/compare/v0.9.0...v0.9.1Related Repositories
ollama/ollama★ 184,205
Get up and running with Kimi, GLM, MiniMax, DeepSeek, gpt-oss, Qwen, Gemma and other models.
fatedier/frp★ 110,051
A fast reverse proxy to help you expose a local server behind a NAT or firewall to the internet.
asheshgoplani/agent-deck★ 102,148
Terminal session manager for AI coding agents. One TUI for Claude, Gemini, OpenCode, Codex, and more.
infiniflow/ragflow★ 92,612
RAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMs
gohugoio/hugo★ 90,198
The world’s fastest framework for building websites.