---
title: "What's new in Hindsight 0.5.2"
description: New features and improvements in Hindsight 0.5.2
authors: [nicoloboschi]
date: 2026-04-15
hide_table_of_contents: true
---

Hindsight 0.5.2 lands a new entity co-occurrence graph in the control plane, gives operators more control over mental model refresh, exposes richer metadata on async operations, and delivers a handful of reliability fixes across retain, consolidation, and the embedded daemon.

<!-- truncate -->

- [**Entity Co-occurrence Graph**](#entity-co-occurrence-graph): Visualize how entities connect inside a bank.
- [**Recall Controls for Mental Models**](#recall-controls-for-mental-models): Tune the recall step that feeds mental model refresh.
- [**Async Operation Observability**](#async-operation-observability): Task payloads and document IDs are now surfaced on async operations.
- [**Revamped Bank Statistics**](#revamped-bank-statistics): Clearer insights in the control plane bank view.
- [**Identifying User-Agent**](#identifying-user-agent): All Hindsight SDK clients now send a recognizable User-Agent.
- [**Reliability Fixes**](#reliability-fixes): Retain, consolidation, embedded daemon, and bank templates.

## Entity Co-occurrence Graph

The control plane now includes a co-occurrence graph view that shows which entities appear together across the memories in a bank. It makes it easy to spot clusters — people, projects, tools — that tend to co-occur, and to navigate from a node into the memories that connect them. This is a natural companion to entity resolution and graph retrieval, and gives operators a visual way to inspect the shape of a bank's knowledge graph without writing queries.

![Entity co-occurrence graph in the Hindsight control plane](/img/blog/hindsight-0-5-2-entity-graph.png)

## Recall Controls for Mental Models

Mental models are consolidated knowledge synthesized from a bank's underlying facts. Until now, the recall step that feeds mental model refresh used fixed defaults. In 0.5.2 the mental model trigger API accepts recall controls — so you can tune how much and what kind of context gets pulled into each refresh. This is useful when you want tighter, topic-focused mental models, or conversely when you want to widen the net on a specific refresh.

## Async Operation Observability

Async operations (retain, consolidation, reflect) now expose the underlying task payload and the document IDs they touch. Previously you could see the operation state but not what it was actually working on. With this change you can correlate an async operation back to the documents it ingested or the task it was scheduled with — useful for dashboards, debugging stuck operations, and auditing worker behavior.

## Revamped Bank Statistics

The control plane bank stats view has been rebuilt on top of a modernized set of shared UI primitives. The information density is higher, the charts are easier to read at a glance, and the same primitives are now reused across other control plane views for a more consistent look and feel.

![Revamped bank statistics view in the Hindsight control plane](/img/blog/hindsight-0-5-2-bank-stats.png)

## Identifying User-Agent

All official Hindsight clients — Python, TypeScript, Rust/Go — now send an identifying `User-Agent` header on every HTTP request. This makes server-side logs, proxy logs, and observability dashboards much easier to read: you can tell at a glance which SDK version is driving traffic, spot outdated clients in the wild, and filter traffic by client when debugging.

## Reliability Fixes

A cluster of fixes addresses edge cases spotted in production and in longer-running benchmarks:

- **Consolidation retry budget.** The retry budget is now correctly applied at the LLM call site, so consolidation actually respects the configured retry limits instead of silently over- or under-retrying.
- **Retain length-mismatch crash.** Retain no longer raises `IndexError` when the number of generated embeddings doesn't match the number of extracted facts — the mismatch is detected and handled.
- **Embedded daemon cleanup.** The embedded mode cleanup path now uses a timeout when acquiring its lock, preventing a class of hangs on shutdown under contention.
- **OpenClaw agent hook registration.** The OpenClaw plugin reliably registers its agent hooks on every entry invocation, fixing a regression where auto-recall/auto-retain could silently stop firing across repeated plugin loads.
- **Bank template configuration.** `BankTemplateConfig` validation is now aligned with the `_CONFIGURABLE_FIELDS` set, so invalid or previously-ignored settings are caught at template application time.
- **TypeScript SDK type exports.** `BankTemplate` types are re-exported from the package root, so consumers no longer need to reach into subpaths to import them.

## Changelog tooling

0.5.2 is also the first release cut with a small change to our changelog generator: commits that only touch `hindsight-integrations/` are now excluded from the main changelog. Integrations have moved onto their own release cadence (each with its own tag and per-integration changelog), so keeping them out of the core changelog makes the core release notes focused on the API, control plane, clients, and benchmarks.

## Feedback and Community

Hindsight 0.5.2 is a drop-in replacement for 0.5.1 with no breaking changes to the core API.

Share your feedback:

- [GitHub Discussions](https://github.com/vectorize-io/hindsight/discussions)
- [GitHub Issues](https://github.com/vectorize-io/hindsight/issues)

For detailed changes, see the [full changelog](/changelog).
