github vectorize-io/hindsight v0.8.4

3 hours ago

What's Changed

  • docs: changelog and blog post for v0.8.3 by @nicoloboschi in #2290
  • test(retain): serialize multichunk sub-batch coverage test on worker_tests xdist group by @nicoloboschi in #2272
  • fix(docs): correct agrasandhany integration icon and ownership by @benfrank241 in #2294
  • blog(agent-framework): Total Recall — persistent memory for Microsoft Agent Framework by @benfrank241 in #2293
  • feat(aider): add Aider integration (session-bracketing memory wrapper) by @DK09876 in #2297
  • fix(retain): make chunk_text idempotent so raised structured chunk size doesn't fail retains (#2301) by @nicoloboschi in #2308
  • chore(deps): resolve high/medium/low Dependabot alerts by @dcbouius in #2303
  • docs: drop removed 'opinion' fact type from MCP tool docstrings and quickstart by @r266-tech in #2302
  • docs(monitoring): document worker operation metrics by @r266-tech in #2296
  • fix(tests): eliminate test-api shard cross-test contamination (vchord cache, tenant schemas, maintenance routine TOCTOU) by @nicoloboschi in #2310
  • perf(migrations): skippable extension reconcile + drop unused global vector index by @nicoloboschi in #2309
  • fix(cache): prevent stale bank stats after concurrent invalidation by @zupengwang in #2315
  • blog(openhands): OpenHands persistent memory via native MCP by @benfrank241 in #2316
  • deps(security): bump langsmith floor to >=0.8.18 (GHSA-f4xh-w4cj-qxq8 HIGH) by @r266-tech in #2341
  • chore(deps): bump dify-plugin to 0.9.1 to fix requests alert by @dcbouius in #2320
  • docs(hermes): add standalone Hermes Desktop integration page + gallery card by @benfrank241 in #2351
  • blog(hermes): Hindsight as one-click desktop memory provider by @benfrank241 in #2350
  • fix(control-plane): make max upload size configurable (#2313) by @nicoloboschi in #2319
  • docs(admin-cli): document run-db-migration --skip-extension-reconcile and --embedding-dimension by @r266-tech in #2327
  • feat(reranker): detect Intel XPU for local cross-encoder acceleration by @r266-tech in #2328
  • docs(models): sync anthropic default model to claude-haiku-4-5 alias by @r266-tech in #2326
  • chore(deps): drop diskcache from crewai via instructor 1.15.3 by @dcbouius in #2325
  • fix(release): build Linux CLI on ubuntu-22.04 (glibc 2.35) so binaries run on older distros by @r266-tech in #2330
  • docs(integrations): drop removed 'opinion' fact type from recall_types/fact_types across SDK wrappers by @r266-tech in #2335
  • feat(recall): configurable recency decay function (linear/exponential/none) by @nicoloboschi in #2318
  • docs(python-client): drop removed 'opinion' fact type from recall()/arecall() docstrings by @r266-tech in #2323
  • fix(claude-code): use realpath for directoryBankMap symlink resolution by @365diascollaboration-prog in #2324
  • fix(stats): invalidate bank stats cache on unit/document deletes and observation clears by @r266-tech in #2337
  • docs(api): correct ReflectResult.based_on key names (mental-models hyphen + add observation) by @r266-tech in #2338
  • fix(mcp): omit reflect directives_applied alongside tool_trace/llm_trace by default by @r266-tech in #2342
  • fix(anthropic): route strict structured output through forced tool_use instead of prompt-injection (#1002) by @eldar702 in #2339
  • fix(config): validate disposition_* range on bank-config write so one malformed bank can't 500 the whole bank list (#2348) by @r266-tech in #2349
  • [opencode] Add suport for HINDSIGHT_RETAIN_TAGS by @mdbenito in #2306
  • fix(async-op): return 404 when bank doesn't exist instead of raw FK 500 by @cdbartholomew in #2352
  • fix(recall): allow exact filtering of untagged/global observations (#2295) by @nicoloboschi in #2364
  • feat(recall): prefer_observations — dedupe raw facts superseded by observations by @nicoloboschi in #2311
  • fix(graph-maintenance): sort unit_ids to eliminate concurrent-insert deadlock by @cdbartholomew in #2353
  • fix(http): reject negative limit/offset on list endpoints with 422 instead of raw Postgres 500 by @r266-tech in #2357
  • feat: add Atlas Cloud as an OpenAI-compatible LLM provider by @lucaszhu-hue in #2362
  • feat(tokens): propagate cached + thoughts tokens through return contexts by @cdbartholomew in #2356
  • fix(gemini): avoid duplicate structured schema prompt by @r266-tech in #2277
  • chore(entity-resolver): remove dead resolve_entity/_create_entity/link_unit_to_entity by @nicoloboschi in #2367
  • test(graph-maintenance): reproduce concurrent-insert deadlock on the queue by @nicoloboschi in #2368
  • chore(docs-skill): regenerate references for Atlas Cloud provider by @nicoloboschi in #2372
  • fix(cli): pass u64 limit/offset to regenerated client by @nicoloboschi in #2370
  • chore(embed): sync bundled env.example with repo-root .env.example by @nicoloboschi in #2373
  • feat(llm): multi-LLM failover & round-robin via indexed config by @nicoloboschi in #2365
  • fix(memory-defense): correct displayed pattern count by @Sanderhoff-alt in #2369
  • Instrument recall trace so phase metrics account for total duration (#2361) by @nicoloboschi in #2371
  • fix(worker): warn when worker_id unset inside a container (#2359) by @nicoloboschi in #2366
  • blog: Persistent Memory for the Vercel AI SDK in Five Tools by @benfrank241 in #2374
  • feat(github-copilot): add GitHub Copilot (VS Code) integration via MCP by @DK09876 in #2299
  • fix(worker): warn for unstable standalone worker ids by @koriyoshi2041 in #2383
  • fix(deps): raise hindsight-litellm LiteLLM floor by @r266-tech in #2382
  • blog(retain): structuring chat logs for optimal ingestion by @dcbouius in #2375
  • feat(windsurf): add Windsurf (Codeium) integration via MCP by @DK09876 in #2358
  • feat(eve): add Eve agent-framework MCP connection helper by @benfrank241 in #2280
  • test: eagerly import torch in conftest to fix test-api shard flake by @nicoloboschi in #2376
  • fix(openai): propagate reasoning_tokens into TokenUsage for OpenAI-compatible providers by @r266-tech in #2378
  • fix(hooks): keep uv lockfile frozen during lint by @Sanderhoff-alt in #2397
  • fix(api): keep dry-run extract from creating banks by @Sanderhoff-alt in #2394
  • fix(api): prevent PATCH bank from creating banks by @Sanderhoff-alt in #2391
  • feat(config): let indexed multi-LLM members configure Vertex AI project/region by @cdbartholomew in #2384
  • fix(release): bump marketplace version on claude-code release (#2386) by @nicoloboschi in #2398
  • test(openai): fix tool-call mocks crashing reasoning-token accounting (#2378) by @nicoloboschi in #2400
  • fix(llm-trace): keep provider token usage on parse/validation failures (#2387) by @nicoloboschi in #2396
  • feat(config): multi-LLM members can configure litellmrouter config + Vertex SA key by @nicoloboschi in #2401
  • refactor(llm): make LLMProvider constructor config-free by @nicoloboschi in #2405
  • feat(mental-models): cron-scheduled refresh via the maintenance loop by @nicoloboschi in #2377
  • Blog: Zapier persistent memory by @benfrank241 in #2408
  • test(worker): cover retry-capped retain extraction failures by @koriyoshi2041 in #2418
  • fix(control-plane): show pending uploaded documents (server-driven) by @nicoloboschi in #2420
  • docs(mental-models): document scheduled refresh triggers by @r266-tech in #2421
  • docs: add Epimetheus - pi community integration by @noctuid in #2414
  • fix(retain): merge JSON arrays in append mode to preserve conversation-aware chunking by @qxxaa in #2412
  • feat(recall): structured per-stage scores and two-level min_scores filtering by @nicoloboschi in #2422
  • feat(devin-desktop): rename Windsurf→Devin Desktop + fix(continue) thread-safe adapter by @DK09876 in #2410
  • fix(aider,openhands): close client on exit + OpenHands Docker MCP docs by @DK09876 in #2417
  • fix(embed): find pythonw beside the installed API script on Windows by @r266-tech in #2411
  • docs(recall): align min_scores score field names by @r266-tech in #2432
  • fix(reflect): cap structured output retry budget by @koriyoshi2041 in #2433
  • feat: add Requesty as an OpenAI-compatible provider by @Thibaultjaigu in #2399
  • fix(cli): show filenames in operation list by @r266-tech in #2435
  • Blog: Entity resolution in agent memory by @benfrank241 in #2424
  • Fix(consolidation): populate search_vector on observation INSERT/UPDATE in consolidator by @qxxaa in #2425
  • fix(migrations): honor configured vector extension before pgvector bootstrap by @r266-tech in #2426
  • docs: fix operation image alt text by @koriyoshi2041 in #2436
  • docs(api): drop removed 'opinion' fact_type from MemoryFact schema description by @r266-tech in #2439
  • fix(retain): clarify fact type boundary for user rules by @koriyoshi2041 in #2440
  • docs(api): correct stale memory-type taxonomy in published READMEs by @r266-tech in #2447
  • fix(parsers): handle UTF-8 text files with ASCII prefix in markitdown by @nicoloboschi in #2456
  • fix(config): thread groq/openai service_tier into constructed LLM providers by @r266-tech in #2438
  • chore(repo): remove playwright debug artifacts by @Sanderhoff-alt in #2460
  • refactor(extensions): centralize validator operation names by @Sanderhoff-alt in #2419
  • chore(docs): sync hindsight docs skill references by @Sanderhoff-alt in #2461
  • fix(consolidation): default missing dedup action to keep by @koriyoshi2041 in #2454
  • fix(clients): thread recall min_scores through the maintained Python SDK wrapper by @r266-tech in #2446
  • fix(langgraph): resolve tool bank IDs from config by @koriyoshi2041 in #2443
  • fix(clients): thread recall min_scores through the maintained TypeScript SDK wrapper by @nicoloboschi in #2467
  • fix(llm-trace): stash litellm tool-call usage so token cost survives arg-parse failures by @r266-tech in #2444
  • fix(retain): preserve exception message in fact_extraction error summary by @nicoloboschi in #2468
  • docs: document SDK version and MCP metadata helpers by @r266-tech in #2291
  • fix(llm): wire default_headers into LiteLLM-backed providers (#2458) by @r266-tech in #2466
  • feat(claude-code): Add recall tag filters to memory hook by @koriyoshi2041 in #2331
  • fix(reflect): unwrap JSON answer envelopes by @xmh1011 in #2345
  • feat(opencode): add env var overrides for retain and recall options by @ibousfiha in #2336
  • fix(openclaw): apply configured defaults to dynamic banks by @devinkuhn in #2441
  • fix(cursor-cli): parse Cursor 3.x role-nested agent transcripts by @bjornmp in #2465
  • fix(hindsight-openclaw): skip synthetic tool_result user messages in sliceLastTurnsByUserBoundary by @kumaxs in #2307
  • fix(llm): propagate per-scope LLM timeout + retry policy to the provider (#2452) by @nicoloboschi in #2470
  • fix(llm): make per-operation temperature configurable (#2459) by @nicoloboschi in #2469
  • Fix(cli): explore detail selection with table headers by @koriyoshi2041 in #2489
  • fix(retain): honor configured LLM temperature in the batch fact-extraction path (#2469 follow-up) by @r266-tech in #2485
  • chore(search): remove HINDSIGHT_API_LAZY_RERANKER flag (eager reranker init) by @nicoloboschi in #2478
  • docs: document CODEX_HOME isolation for long-running Codex services by @nicoloboschi in #2496
  • test: fix CI regressions (Vertex/litellmrouter construction, dedup config, trace recorder leak) by @nicoloboschi in #2491
  • feat(stats): distributed bank_stats cache + ?refresh param + stats perf suite by @nicoloboschi in #2495
  • Show full memory details in explore by @koriyoshi2041 in #2490

New Contributors

Full Changelog: v0.8.3...v0.8.4

Don't miss a new hindsight release

NewReleases is sending notifications on new releases.