v0.10.1

nilbuild/developer-roadmapv0.10.1Sep 21, 2026by github-actions[bot]

Upgrading?

AI Summary

Hindsight v0.10.1 is a maintenance release focusing on fixes for attachment handling, memory defense redaction, coding agent stability, and engine deadlock prevention.

Key Highlights

  • Fixes for attachment filenames and store-owned banks
  • Redaction of Hindsight Cloud API keys in memory defense
  • Stabilization of coding agents and transcript handling
  • Fix for engine deadlocks in observation sweeps
  • New admin tool to rename banks

New Features

  • Attachment filename fixes
  • API key redaction in logs
  • Coding agent transcript improvements
  • Engine deadlock resolution
  • Bank rename admin tool
  • New 'ship-it' skill

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