v0.10.1
kaifcodec/user-scannerv0.10.1Sep 21, 2026by github-actions[bot]
Upgrading?
AI Summary
A patch release emphasizing security and API stability. It adds a unified bank transfer API for export/import, improves attachment handling for store-owned banks, and refactors the retain language rule. OAuth and storage handling were also improved.
Key Highlights
- Unified bank transfer API (export/import) with documented scope
- Attachment filename support for store-owned banks
- Security improvements including API key redaction in memory defense
- Refactored retain language rule as a mapping
New Features
- Unified bank transfer API
- Task-local retain suspension
- Configurable default trigger for new knowledge pages
- Admin tool to rename banks in place
Full Release Notes
## What's Changed * docs(skill): sync the docs skill's openapi.json to v0.10.0 by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4362 * feat(api): attachment filenames for store-owned banks by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4360 * fix(attachments): never reclaim attachments for a store-owned bank by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4363 * fix(retain): guard concise prompt examples by @koriyoshi2041 in https://github.com/vectorize-io/hindsight/pull/4284 * fix(memory-defense): redact Hindsight Cloud API keys by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4276 * fix(oauth): do not fail the store lock when the store cannot be written by @LoneExile in https://github.com/vectorize-io/hindsight/pull/4286 * blog: Onboarding an Engineer vs. Onboarding an Agent by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/4100 * fix(coding-agents): take Codex user turns from UserMessage events by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4377 * fix(reranker): release the MLX buffer cache after each jina-mlx batch by @w-seok in https://github.com/vectorize-io/hindsight/pull/4305 * fix(coding-agents): read transcripts whole so append survives past 32MB by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4388 * chore(skills): add ship-it skill by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4390 * fix(api): report `deleted_count` from the bulk memories delete by @1jeffchristensen in https://github.com/vectorize-io/hindsight/pull/4312 * fix(api): keep a converted file's reference on a store-owned bank's document by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4367 * fix(reflect): honour configured recall budgets and bound tool token asks (#4239) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4290 * fix(storage): delete a bank's stored files with it, and scope file keys to the tenant by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4376 * fix(embed): pin the probe's decode instead of taking the locale's by @L4XB in https://github.com/vectorize-io/hindsight/pull/4347 * fix(memory-defense): avoid redacting technical numbers as credit cards by @kyletser in https://github.com/vectorize-io/hindsight/pull/4333 * feat(python-client): add task-local retain suspension by @roli-lpci in https://github.com/vectorize-io/hindsight/pull/4285 * fix(api): fail fast when the listen port is unavailable, before engine init by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4386 * fix(api): async-submit RetainContext parity — document_id and attachments (#4373) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4394 * feat: configurable default trigger for new knowledge pages by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4393 * fix(engine): serialize same-bank cleanup before document locks by @r266-tech in https://github.com/vectorize-io/hindsight/pull/4339 * feat(control-plane): lighter recall and reflect option forms, with help on every option by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4397 * feat(admin): hindsight-admin rename-bank — change a bank's id in place by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4392 * fix(banks): cap new bank ids at 192 bytes and refuse control characters by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4395 * fix(coding-agents): capture background git stderr by @kyletser in https://github.com/vectorize-io/hindsight/pull/4334 * chore(coding-agents): track stable OpenCode 2 packages by @oliver-mee in https://github.com/vectorize-io/hindsight/pull/4351 * test(client): exempt suspend_retains from the async-twin contract by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4402 * docs(embeddings): the input cap is counted in Hindsight's tokens, not the provider's by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4399 * fix(coding-agents): preserve distinct non-ASCII document titles by @Shy7777 in https://github.com/vectorize-io/hindsight/pull/4330 * fix(coding-agents): drop the hardcoded 20s cap on the automatic reflect by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4401 * fix(extensions): drop per-request tenant state from the shared ExtensionContext by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4400 * fix(coding-agents): resolve the auto-update version check through npm by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/4385 * fix(recall): search pg_search queries as pruned word terms, not the raw sentence (#4313) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4403 * fix(recall): anchor the default temporal window on UTC, not the server clock by @ebarkhordar in https://github.com/vectorize-io/hindsight/pull/4356 * fix(engine): lock the observation sweep's rows in id order so re-ingest cannot deadlock a delete by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4407 * test(recall): give the hub-traversal test random-prefixed unit ids by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4405 * docs(claude): refine architecture inventory, test setup, and providers by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/4383 * fix(retain): state the language rule as a mapping, not a detection step; add a retain-language eval by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4410 * fix(coding-agents): tell dsh users to start new sessions after install by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4413 * fix(control-plane): serve the UI when bound to a loopback address by @snevesgraca-nwmo in https://github.com/vectorize-io/hindsight/pull/4379 * fix(engine): close the remaining delete/re-ingest deadlocks from #4251 by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4414 * fix(recall): cache and reuse observation source memory IDs across pipeline by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/4370 * fix(mental-models): keep a page's current state when a refresh brings older events by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4427 * fix(retain): keep non-English facts in their own script by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4432 * fix(extensions): give the operation validator the engine's ExtensionContext by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4433 * fix(coding-agents): pre-create host-owned harness diagnostics by @heyallencao in https://github.com/vectorize-io/hindsight/pull/4430 * feat(coding-agents): autoInject — choose reflect, pages or recall for the first-prompt injection by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4415 * feat(system-evals): replace the in-repo LoComo/LongMemEval runners with AMB by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4429 * fix(coding-agents): deliver the companion skill on the plugin-manager route by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4439 * fix(codex): preserve rollout event timestamps by @carlosrve in https://github.com/vectorize-io/hindsight/pull/4425 * fix(openclaw): read the transcript session_end does not carry by @L4XB in https://github.com/vectorize-io/hindsight/pull/4348 * fix(openclaw): expose knowledge tool payloads as details for Code Mode by @L4XB in https://github.com/vectorize-io/hindsight/pull/4310 * fix(codex): support current custom tool calls by @carlosrve in https://github.com/vectorize-io/hindsight/pull/4426 * blog: Stop Growing Your System Prompt by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/4099 * feat(transfer): unified bank transfer API (export/import) with a documented scope by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4431 * fix(anthropic): stop the uncapped-caller default truncating long output (#4437) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4440 * blog: What It Takes to Put a Screenshot in an Agent's Memory by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/4454 * test(multilingual): give the language-preservation retries a budget that matches the model by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4447 * feat(openclaw): per-agent bank mapping (agentBankMap) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4446 * fix(client): cancel capacity-retry backoff on abort by @Tosko4 in https://github.com/vectorize-io/hindsight/pull/4448 * fix(openclaw): forward recall deadlines to the client transport by @Tosko4 in https://github.com/vectorize-io/hindsight/pull/4449 * fix(openclaw): invalidate recall work across service generations by @Tosko4 in https://github.com/vectorize-io/hindsight/pull/4450 * feat(transfer): clone a bank in one API call by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4444 * fix(api): 404 recall for a bank that was never created (#4442) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4465 * fix(api): 0 disables the recall query token cap by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4475 * fix(migrations): scope the vector-index lookup to one relation by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4472 * fix(transfer): build the bank archive off the event loop and outside the read transaction by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4474 * feat(coding-agents): per-page knowledge-page config (pages) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4467 * ci(core-llm): run the quality job on gemini-2.5-flash by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4473 * fix(api): repair two crossed merges on main by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4480 * feat(attachments): an attachment belongs to its document by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4471 * fix(transfer): import and clone into a bank whose memories live in the memories store by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4479 * feat(api): separate LLM config for the automatic mental-model refresh (#4463) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4477 * fix(embed): launch the base pythonw for uv venv trampolines on Windows (#4466) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4478 * fix(reflect): spell out what a disposition level means in the tools prompt by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4435 * perf(banks): stop aggregating all of memory_units to list banks by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4486 * blog: See the Exact Prompt Before You Spend a Token by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/4482 * fix(api): refuse recall before answering 404 for a missing bank by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4487 * test(transfer): read an archived fact's document through the memories store by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4484 * fix(attachments): keep a store-owned bank's attachments and uploaded originals in step with its documents by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4504 * feat(hermes): bring the Hermes Agent memory plugin into this repo by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4505 * fix(local-models): stop using Apple Silicon MPS entirely by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4508 * feat(coding-agents): improve how often the agent reads memory by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4510 * feat(control-plane): advanced knowledge-page search dialog by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4511 * fix(reflect): reject a blank query instead of burning 8 LLM calls (#4416) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4507 * fix(knowledge): normalize knowledge-page search scores onto 0..1 by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4512 * fix(retain): opt-in flag to let a fact leave when/where/who/why unset (#4457) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4506 * feat(api): server-side time filtering and sorting on GET /memories/list and GET /documents by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4509 * fix(retain): opt-in server flag to let a fact leave when/where/who/why unset (#4457) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4513 * feat(control-plane): filter the documents list by time, with presets and a custom range by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4515 * chore(deps): bump soupsieve to 2.9.2 in root uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4517 * fix(retain): retry the FK violation from the delete race instead of dropping the retain (#4453) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4516 * fix(packaging): install mlx only on Apple Silicon by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4520 * feat(llm): Cursor's agent CLI as an LLM provider (#4501) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4519 * feat(reflect): make the search_observations budget and its entities configurable (#4483) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4521 * blog: What Hindsight Learned This Summer by @benfrank241 in https://github.com/vectorize-io/hindsight/pull/4518 * fix(storage): object-store backends must return native bytes from retrieve() by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4524 * chore(deps): bump anyio to 4.15.1 in hindsight-integration-tests/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4539 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/composio/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4540 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/haystack/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4541 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/superagent/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4542 * chore(deps): bump anyio to 4.15.1 in hindsight-integrations/claude-agent-sdk/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4543 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/google-adk/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4544 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/litellm/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4546 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/pydantic-ai/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4547 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/crewai/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4548 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/langgraph/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4550 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/pipecat/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4552 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/openai-agents/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4553 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/llamaindex/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4554 * chore(deps): bump anyio to 4.15.1 in hindsight-integrations/ag2/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4555 * chore(deps): bump anyio to 4.14.2 in uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4538 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/dify/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4551 * fix(admin): move a renamed bank's stored files to its new prefix (#4502) by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4573 * feat(llm): inject x-opencode-session for any provider targeting opencode.ai by @davidneyra2804 in https://github.com/vectorize-io/hindsight/pull/4489 * fix(llm): read a numeric retry_after from the rate-limit body by @i-Hun in https://github.com/vectorize-io/hindsight/pull/4481 * perf(retain): hoist prompt and schema generation outside chunk loop by @Sanderhoff-alt in https://github.com/vectorize-io/hindsight/pull/4382 * fix(entities): apply the word-level agreement check to in-batch clustering too by @ebarkhordar in https://github.com/vectorize-io/hindsight/pull/4441 * fix(recall): order the temporal arm by temporal_score before fusion by @rocke2020 in https://github.com/vectorize-io/hindsight/pull/4494 * feat(reranker): TypeSafe provider (Jev) that can prune irrelevant candidates by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4522 * fix(embed): stop the HTTP probe clearing its caller's event loop, and make the Hermes gate test our plugin by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4575 * fix(http): honour proxy env vars on outbound aiohttp calls by @nicoloboschi in https://github.com/vectorize-io/hindsight/pull/4574 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/strands/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4545 * chore(deps): bump anyio to 4.14.2 in hindsight-integrations/agno/uv.lock by @cdbartholomew in https://github.com/vectorize-io/hindsight/pull/4549 ## New Contributors * @LoneExile made their first contribution in https://github.com/vectorize-io/hindsight/pull/4286 * @w-seok made their first contribution in https://github.com/vectorize-io/hindsight/pull/4305 * @1jeffchristensen made their first contribution in https://github.com/vectorize-io/hindsight/pull/4312 * @L4XB made their first contribution in https://github.com/vectorize-io/hindsight/pull/4347 * @roli-lpci made their first contribution in https://github.com/vectorize-io/hindsight/pull/4285 * @oliver-mee made their first contribution in https://github.com/vectorize-io/hindsight/pull/4351 * @Shy7777 made their first contribution in https://github.com/vectorize-io/hindsight/pull/4330 * @snevesgraca-nwmo made their first contribution in https://github.com/vectorize-io/hindsight/pull/4379 * @heyallencao made their first contribution in https://github.com/vectorize-io/hindsight/pull/4430 * @carlosrve made their first contribution in https://github.com/vectorize-io/hindsight/pull/4425 * @davidneyra2804 made their first contribution in https://github.com/vectorize-io/hindsight/pull/4489 * @i-Hun made their first contribution in https://github.com/vectorize-io/hindsight/pull/4481 * @rocke2020 made their first contribution in https://github.com/vectorize-io/hindsight/pull/4494 **Full Changelog**: https://github.com/vectorize-io/hindsight/compare/v0.10.0...v0.10.1
Related Repositories
public-apis/public-apis★ 491,124
A collective list of free APIs
NousResearch/hermes-agent★ 255,892
The agent that grows with you
yt-dlp/yt-dlp★ 199,987
A feature-rich command-line audio/video downloader
microsoft/markitdown★ 191,477
Python tool for converting files and office documents to Markdown.
Significant-Gravitas/AutoGPT★ 187,699
AutoGPT is the vision of accessible AI for everyone, to use and to build on. Our mission is to provide the tools, so that you can focus on what matters.