What's new in Hindsight 0.8.2
Hindsight 0.8.2 builds on 0.8.1 with a much bigger release: you can now keep secrets and PII out of memory with Memory Defense, edit, invalidate, and revert individual memories, organize and cap memories with observation scopes, and run a local Control Center alongside an embedded deployment. It also adds new LLM providers and embedding models, and ships several operational and data-integrity fixes. Anyone self-managing Hindsight should upgrade — this release includes concurrency and data-storage fixes that affect long-running deployments.
- Memory Defense: Scrub secrets and PII out of retained memory, per bank.
- Reversible Memory Curation: Edit, invalidate, and revert memory units without losing history.
- Observation Scopes: List, filter, visualize, and cap memories per scope.
- Local Control Center: A built-in web app for embedded deployments.
- More Providers and Models: Native Nous Portal, Gemini Batch retain, Gemini embedding-2, per-bank cost attribution, and a connectivity probe.
- Operational and Data-Integrity Fixes: Why you should upgrade.
Memory Defense
Agents routinely see API keys, tokens, and personal data — and without guardrails, any of it can get written straight into long-term memory. Memory Defense is a new, open-source layer that scrubs sensitive data out of retained content before it's ever stored.
When enabled on a bank, every memory the agent writes is scanned against a 44-pattern set covering provider API keys (Anthropic, OpenAI, Google, and more), generic secrets, database connection strings, and common PII. Each match is replaced with a [REDACTED:type] marker before the content reaches memory units or the document body, so recall, exports, and reflect never see the original secret. You choose the action per rule:
redact— replace each match with a[REDACTED:type]marker and store the scrubbed memory.block— drop any item that contains a match; if every item in a retain request is blocked, the call returns422.
Memory Defense is per bank and off by default. Turn it on with a policy on the bank's config:
{
"memory_defense": {
"enabled": true,
"rules": [{ "on": "sensitive_data", "action": "redact" }]
}
}
A policy only affects future retain calls on that bank — existing memories aren't retroactively scanned.
Every redact or block decision can also notify your security tooling: when a bank has a webhook subscribed to memory_defense.triggered, Hindsight fires an event reporting the action, the document ID, and which patterns matched. These payloads now carry SIEM-friendly enrichment fields, so alerts route cleanly into a SIEM or Slack without extra glue. See the Memory Defense guide for the full pattern list and policy options.
Reversible Memory Curation
Memories are no longer write-only. 0.8.2 lets you correct what an agent has learned and undo mistakes:
- Edit a memory's text, dates, fact type, or context.
- Invalidate a memory so it stops surfacing in recall, without deleting it.
- Revert an edit or an invalidation to restore the previous state.
Invalidated memories are moved aside rather than purged, so the recall hot path stays clean while nothing is permanently lost. Edited memories are marked so you can see at a glance what's been changed. This makes it practical to keep a bank accurate over time — fixing a wrong fact or retiring a stale one is now a reversible action instead of a destructive one.
Observation Scopes
As banks grow, observations accumulate across many contexts. 0.8.2 makes them manageable:
- Enumerate and filter observations by scope to see what's been learned where.
- Visualize scopes in the Control Plane.
- Set per-scope limits to cap how many observations a scope keeps — including a limit of
0to stop new observations in a scope entirely.
This gives you direct control over how much memory each context retains, instead of a single global setting.
Local Control Center
Embedded deployments now ship with a local Control Center web app. It gives you a UI to manage and inspect an embedded Hindsight instance without standing up the full control plane separately — useful for local and single-node setups.
More Providers and Models
0.8.2 expands provider and model coverage:
- Native Nous Portal provider with built-in OAuth authentication — no external CLI dependency required.
- Gemini Batch API for retain, so fact extraction can run through Gemini's batch path.
- Gemini embedding-2 model family support, with per-input embeddings.
- Per-bank provider cost attribution. Set
HINDSIGHT_API_LLM_SEND_BANK_AS_USER=trueto tag outbound OpenAI-compatible LLM and embedding calls with the bank ID in theuserfield, so cost gateways (OpenRouter, LiteLLM, Helicone) can key provider spend per bank. Off by default. - Per-bank LLM connectivity probe to verify a bank's provider configuration before relying on it.
- Amazon Bedrock service-tier selection for tuning Bedrock request handling.
Operational and Data-Integrity Fixes
Several fixes make self-managed and long-running deployments more robust — the reason to upgrade:
- Torch dtype under concurrency. Concurrent model initialization could change the global Torch default dtype; it's now normalized back to
float32so behavior stays consistent. - Recall/reflect cancellation. Abandoned recall and reflect operations are now reliably cancelled when the client disconnects, instead of running to completion and wasting work.
- Wider history IDs on PostgreSQL. The history
bank_idcolumn is widened toTEXT, preventing failures with longer bank identifiers. - Reflect synthesis fidelity. Final reflect output now respects directives and language rules more consistently.
- JSONL retain chunking. JSONL files are chunked on line boundaries so records are never split mid-line during ingestion.
- Control Plane graph view. The bank graph view no longer double-loads its data, cutting redundant requests.
- Rolling-deployment migrations. Already-applied migrations are skipped more reliably during rolling deploys, including when the resolution error is wrapped in a
CommandError. - Webhook payloads. Event payloads now include fields that were previously missing.
- CLI
get-memory. The CLI parsesget-memoryresponses correctly.
And More
- Export a constellation as a poster. The Control Plane can now export a bank's memory constellation as a shareable SVG poster.
