> ## Documentation Index
> Fetch the complete documentation index at: https://docs.linksee.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Changelog

> Version history and release notes

## v0.16.1

**The triage actually runs** — 2026-09-07

* The 0.16.0 distill triage was gated behind the weekly consolidation sweep and never ran. It now runs on every start, before the first request. On the author's machine: 88 noise + 51 stale archived, 250 left for judgement.
* `recall({ dream: true })` reports the real remainder as `distill_total`; `distill: N` is honoured.

## v0.16.0

**A queue you can actually drain** — 2026-09-07

* Rule-based triage of raw auto-captured memories: acknowledgements, bare paths and 90-day-old never-recalled items get a `distill_verdict` and leave the queue (never deleted; `needs_distill` stays true because no agent rewrote them).
* The distill queue is value-ordered; `recall({ dream: true, distill: N })` drains up to 25.

## v0.15.2

**Say what it's for** — 2026-09-07

* npm description, keywords, registry manifests and the README hero now lead with handover; drift detection is the second pillar. README gains "Questions this answers" — the twelve questions people actually type, verbatim.

## v0.15.1

* `resolve_drift({ action: "dismiss", gate: false })` — close the edges as false positives but keep the gate watching.

## v0.15.0

**Six tools** — 2026-09-07

* `recall` · `remember` · `read_smart` · `drift_status` · `declare_anchor` · `resolve_drift`. `where_am_i`, `check_decision`, `flag_proposals`, `dream`, `resolve_proposal` are folded in and hidden from `tools/list` but still answer. See [Legacy names](/tools/legacy).
* `recall()` with no arguments is the **session brief**.

## v0.14.0

**Remember and enforce; verified and unverified** — 2026-09-07

* `remember`: `content` is the only required field; `anchor: {}` records a decision and enforces it in one call.
* A fifth state, ⚫ `unverified`: an anchor with no evidence is no longer painted 🔵.
* Fixed: workspace roots were never read (the reply was validated against the request schema).

## v0.13.1

**Fewer false alarms** — 2026-09-07

* A dismissal now changes the next detection (`hit_term` silences one match term). Scope decides when the action names files; a signal alone counts only on Bash.

## v0.13.0

**On by default** — 2026-09-07

* `setup` wires the re-injection guard into `~/.claude/settings.json` — every repo, not one. `--project-guard` / `--no-guard`.
* Fixed: a path-scoped anchor could never fire on `Bash`; setup duplicated the Stop hook.

## v0.12.0

**Trust** — 2026-09-05

* The gate honours `supersede`; the truth view reads `drift_edges`; `aligned` no longer claims a convergence it did not check.
* `drift_status` compact by default (`verbose`); `recall` omits ranking internals unless `explain`.
* Releases are published from GitHub Actions via npm trusted publishing (OIDC) with provenance.

## v0.11.3

**Robustness + MCP hygiene** — 2026-06-16

* **Corrupt-DB recovery:** an unreadable memory DB is preserved as `memory.db.corrupt-<timestamp>` and a fresh one is created, instead of crashing with a raw SQLite error.
* **`recall`** tool description no longer nudges editing the system prompt.

## v0.11.2

**More cold-start hardening** — 2026-06-16

* **`stats`** works on a fresh database instead of crashing with `no such table` (it ensures the schema exists first).
* **`map --help`** prints usage instead of importing a map.

## v0.11.1

**Cold-start fixes** — 2026-06-16

* **Run any CLI through the package name:** `npx -y linksee-memory setup` (and `map`, `sync`, `guard`, `stats`, `import`, `install-skill`). A fresh user couldn't reach the standalone bins (`linksee-memory-setup`, …) with `npx` — npx resolves package names, not sibling bin names. The main bin now dispatches subcommands; the standalone bins remain as aliases.
* **`map` exits gracefully** with a next-step message when no `map.yaml` exists yet (was a raw stack trace).
* **serverInfo** reports the real package version (was pinned to an old string).

## v0.11.0

**The Map: `where_am_i` + `linksee-memory map`** — 2026-06-15

Memory is the entry point; the product map is the new surface.

* **`where_am_i`** (11th MCP tool) — locate the current file/topic on the Current Truth Map and get its blast radius (no args → infer from your recent edits).
* **`linksee-memory map`** CLI — `where` · `affects` · `explain` · `status` · `next` · `reconcile` · `inspect --json` · `blueprint`. A git-tracked `map.yaml` checked against your code with file:line evidence. Bilingual (`--lang ja`).
* Graded blast radius (`must fix together` / `should align` / `fyi`), declared-vs-reality verdicts, anti-graveyard expiry for accounted-for drift, and per-project keys for juggling many projects. See [Product map & drift](/concepts/product-map).

## v0.8.0

**Drift Detection MCP Tools** — 2026-06-08

`drift_status`, `check_decision`, `declare_anchor`, `resolve_drift` — agents can detect, query, and resolve intent ↔ reality drift, with a 4-species truth map.

## v0.7.1

**Review Fixes** — 2026-05-29

Based on Opus 4.7 design review of v0.7.0:

* **Required params guidance**: `remember` tool description now includes "REQUIRED PARAMS BY MODE" section so LLMs know exactly which fields are needed for create vs update vs delete
* **Migration guidance**: Deprecated tool names (`forget`, `recall_file`, etc.) return specific migration examples instead of generic errors
* **recall path+query merge**: When both `path` and `query` are provided to `recall`, results from file history and memory search are merged
* **Auto-consolidate safety**: Table existence check via `sqlite_master` before querying `consolidations` table, preventing errors on fresh databases

## v0.7.0

**3-Tool Unified Surface** — 2026-05-29

8 tools unified into 3 for cross-LLM consistency, following Context7's proven pattern.

**Breaking change**: The following tools are removed from the MCP surface:

| Old tool        | New equivalent                                  |
| --------------- | ----------------------------------------------- |
| `forget`        | `remember({ forget: true, memory_id: <id> })`   |
| `update_memory` | `remember({ memory_id: <id>, content: "..." })` |
| `recall_file`   | `recall({ path: "server.ts" })`                 |
| `list_entities` | `recall({})` (no params = entity overview)      |
| `consolidate`   | Auto-runs on server startup (7-day threshold)   |

**New unified tools:**

* **`remember`** — create + update + delete in one tool. Mode inferred from params
* **`recall`** — search + file history + overview in one tool. Mode inferred from params
* **`read_smart`** — unchanged

**Other changes:**

* Auto-consolidate on server startup (non-blocking, 7-day threshold)
* Claude Code Plugin bundle (`claude plugin add -- linksee-memory`)
* Deprecated tool names return migration guidance with examples

## v0.6.0

**3-Axis Memory** — 2026-05

* **3-axis classification**: Every memory auto-classified by altitude (mission/strategy/architecture/implementation), type (question/decision/work/outcome/...), and state (open/decided/in\_progress/done/stalled/...)
* **Virtual generated columns**: `altitude`, `mem_type`, `mem_state` are SQL-queryable without JSON parsing
* **Recall filters**: Filter by `altitude`, `mem_type`, `mem_state`, `thread_id`, and `band` in recall queries
* **Stalled detection**: `consolidate` auto-marks `in_progress` memories untouched for 30+ days as `stalled`
* **Thread support**: Group related memories via `thread_id` for decision chain tracing
* **Quality check**: `remember` rejects pasted CI logs and assistant output (bypass with `force: true`)
* **LLM-assisted consolidation**: `consolidate` with `use_llm: true` uses MCP Sampling for better summaries
* **Interactive forget**: `forget` with `interactive: true` uses MCP Elicitation for user confirmation
* **Roots-scoped recall\_file**: `scope_to_roots: true` filters to the client's working directories

## v0.5.0

**Token-Saving Engine** — 2026-04

* **read\_smart**: AST-aware file diff caching with 4 response statuses
* **AST chunking**: TS/JS/Python files split by function/class, Markdown by headings
* **Chunk identity**: Stable across reads — adding a function doesn't invalidate other chunks
* **file\_facts**: Extracted facts per file chunk

## v0.4.2

**Precision Memory** — 2026-04

* **Ebbinghaus forgetting curve**: Heat-based memory decay with altitude multipliers
* **Momentum scoring**: Entity activity frequency drives ranking
* **Consolidation**: Sleep-mode compression of cold memories into learning summaries
* **recall\_file**: File edit history with user-intent context
* **session\_file\_edits**: Every physical edit linked to conversation context

## v0.3.0

**Cross-Agent Foundation** — 2026-03

* **6-layer memory structure**: goal / context / emotion / implementation / caveat / learning
* **FTS5 trigram search**: Full-text search supporting English and Japanese
* **Entity dedup**: 3-tier matching (canonical\_key / normalized\_name / case-insensitive)
* **Caveat protection**: Caveat-layer memories permanently preserved
* **Pinning**: importance >= 0.9 protects from auto-forgetting

## v0.2.0

**Initial Release** — 2026-02

* Basic remember/recall with SQLite storage
* Entity-based memory organization
* MCP stdio transport
