github vectorize-io/hindsight v0.10.1

4 hours ago

What's Changed

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

New Contributors

Full Changelog: v0.10.0...v0.10.1

Don't miss a new hindsight release

NewReleases is sending notifications on new releases.