Changelog

What's new in each release

Version 0.23.2 — Recalled lessons framed as reference, leaner package

September 2026

Injected lesson blocks now carry explicit trust framing, and the npm package ships less development tooling.

  • Trust framing on recalled lessons: the lesson blocks injected at session start (Claude Code hook, OpenClaw, Hermes, Pi, opencode) are now delimited and carry a standing framing line plus a provenance header — marking them as recalled reference data to weigh, not as instructions from the operator or the system.
  • Leaner package: the npm tarball no longer ships development-only eval tooling — a smaller install with the same functionality; npm run eval is unchanged from a source checkout.

Version 0.23.1 — One connect dialog, hardened claude-cli invocation

September 2026

The console's connect flow is unified, and the claude-cli LLM backend invocation is hardened.

  • One Connect dialog for every connect entry: the account menu entry and the agents-detected card both open the same full-cover dialog carrying the CLI command, the MCP configuration, and token-gated copy buttons.
  • claude-cli backend hardening: the backend invokes the claude binary with an argument array (no shell) and delivers the prompt on stdin — long prompts and binary paths containing spaces now work.

Version 0.23.0 — Duplicates retire, junk stops at the door

September 2026

The memory store cleans itself: duplicates merge, volatile noise never gets stored, and the recall pipeline stops reacting to harness plumbing.

  • Cross-agent duplicates merge: near-identical memories (≥92% similar) captured by different agents now merge automatically — previously refused, leaving both copies forever. The newest wording survives.
  • The old supersession stage is retired: its job belongs to the newer unified resolution pass, which does it with confidence gates. Fewer LLM calls per night; mislabeled links stop hiding duplicates from the merger.
  • Volatile content filtered at capture: GitHub ticket statuses, version bumps, and commit-state entries are dropped before they're ever stored — deterministically, with durability escapes (a decision like "switched from X to Y" stays). A sweep-volatile command cleans existing entries.
  • Recall skips harness plumbing: task-notifications and command wrappers no longer trigger recall injections, dedup-turn burns, or decay-clock pollution.

Version 0.22.3 — Sharper recall, honest precision

September 2026

Ranking gets simpler and more honest, and the console can now show exactly how precise your recall is.

  • Simpler ranking: recency is one curve instead of two overlapping mechanisms, project and domain affinity count as one clean term, and connections help on a saturating scale — a heavily connected memory no longer drowns out a better match. Correction links (superseded, corrected) no longer count as popularity.
  • The console's memory graph, finished: the full field renders — every memory as a dot, the newest thousand in detail with live links, topic labels that highlight their memories on click, and a replay that shows the brain forming.
  • Memory Precision: a new console card measures what actually gets injected into your prompts — how many pushed memories were relevant, already known, or off-target — so recall quality is visible, not assumed.
  • Promotion that sticks: memories strengthened by real use keep those gains through later scoring passes.
  • Fixes: the console overview could show 0 memories on servers with active recall traffic (display only — data was never affected).

Version 0.22.0 — Memories earn their strength

September 2026

Memory now behaves more like human memory — use strengthens it, unused memories fade over time, and nothing is immortal.

  • Strength from use: every real fetch of a memory slightly raises its strength in the nightly pass; unused memories keep fading on the same 365-day clock.
  • Decay protections removed: the access- and link-based fade slowdowns are gone, as is the nightly strength bonus for highly connected memories. Existing scores settle to their natural level over the following nights.
  • Console: all views default to the last 30 days, with a 7 / 30 / 90 / 180-day selector; the replay plays once to today, with pause and replay controls and the current date on the timeline.
  • Replay captions: superseded, retracted, and rewritten memories now appear in the replay alongside new, enriched, and merged ones.

Version 0.21.0 — The newest truth always wins

September 2026

The self-correcting memory from 0.20.7 completes its first wave — plus a rebuilt dashboard on live data and honest importance scoring.

  • Corrections found however they’re worded. New memories are checked for what they refer to, so a correction is resolved even when it reads nothing like the memory it corrects.
  • The newest truth wins. Recall follows replacement chains to the end; an outdated memory no longer appears in results — it stays as evidence and remains fetchable.
  • Conflicts kept apart, never blended. Genuinely disagreeing memories are linked and never merged — both stay live as competing positions.
  • Much simpler configuration. Internal tuning knobs ship as release-managed defaults; what remains is your model, budgets, and everyday settings.
  • Dashboard rebuilt on live data. The memory field with replay, a whole-store browser, capture health, and model settings — every number real, every action works.
  • Honest confidence. Importance scoring is re-anchored: scores spread across the scale and weak memories actually fade. Upgraders run npx @gamaze/hicortex rescore-importance --apply once; the maturity view skews until you do.
  • A first install imports a week, not forever. More history is deliberate: hicortex nightly --recapture-window <days>.
  • Confirmed corrections apply immediately — each night’s confirmed work lands that night, and the backlog drains.

Version 0.20.7 — A memory that corrects itself

September 2026

The store now resolves its own corrections overnight, agents use memory unprompted, and an interrupted night keeps its progress.

  • Self-correction, self-cleaning. Corrections rewrite in place (audited, reversible), supersessions demote, redundant triggers fold away; near-duplicates merge automatically, kept as recoverable evidence.
  • Agents reach for memory unprompted. MCP clients get standing instructions — search before assuming — and tool descriptions say when to call.
  • Claude Desktop setup is one yes. init writes its config for you, backup kept.
  • Consolidation resumes where it stopped. Interrupted nights keep their progress — a large store resolves over a few nights, not never — and the work fits the night’s budgets, stopping cleanly at a checkpoint.
  • Under the hood. Merge decisions checkpoint behind themselves so hard stops lose nothing; the pipeline no longer re-verifies its own past links.

Version 0.20.4 — Your token, one click away

September 2026

The console's top-right account is now a menu — and connecting a new agent becomes a copy-paste instead of a treasure hunt.

  • Copy your connection token from the console. The account menu shows your install's token (masked until you reveal it) with a copy button and ready-to-paste setup snippets for both the CLI and MCP clients. Sign-out clears the stored session token.
  • Desktop MCP clients, one command. npx @gamaze/hicortex mcp speaks MCP over stdio for clients that launch local servers (Claude Desktop, Cursor). It bridges to your Hicortex server — starting a local one if none is running, or pointing at a remote server via two environment variables — so the database always has exactly one owner per machine. The package also ships its MCP server description, so installs through the MCP Registry work out of the box.
  • README visibility on npm, kept. Releases now publish in a form that keeps the README rendering on the npm package page, with a release-time check that fails loudly if it doesn't.

Version 0.20.1 — Forgetting that doesn't stall

September 2026

A correctness patch for the overnight consolidation — plus the Hermes setup experience rebuilt from a real install's feedback.

  • Fixed: the forgetting mechanism stalled on quiet nights. A subtle state-reading bug meant a night with no new memories skipped consolidation entirely — so memories that fit no knowledge domain stopped fading, lingering stronger than designed forever. Untagged memories now count as pending work; the quiet night still runs.
  • Fixed: honest state after an endpoint dies mid-run. When the model server vanished during consolidation, the run's stored "last consolidated" timestamp advanced even though the honest status said endpoint_down. The two now agree by construction.
  • Hermes setup is two questions. Server URL and auth token — everything else derives or defaults (the old form asked about privacy filters, recall limits, agent names, and domain lists no new user could answer). The token prompt now says where to find the token, and init pre-fills the server URL and walks the last Hermes-specific step.

Version 0.20.0 — Every agent, one memory

August 2026

Two more harnesses join the fleet — Pi and OpenCode — with the full memory experience: pushed recall on every prompt, identity + lessons at session start, and the nine memory tools. Both were live-validated in their real environments before shipping, and LLM calls are now serialized so local model servers are never hit by two requests at once.

  • Pi, first-class. One bundled, dependency-free extension gives Pi agents pushed recall, the identity layer, Learnings, and all nine tools — no MCP setup, no local database, no local LLM. init auto-installs it; the nightly keeps capturing Pi sessions as before.
  • OpenCode, first-class. The same experience via one bundled plugin: recall injected per prompt (never persisted to OpenCode's session store), identity + Learnings in the system prompt, the nine tools, and a new nightly reader for OpenCode's session database.
  • Serialized LLM calls (default on). One Hicortex server is several callers at once, and local single-user model servers can stall or crash under two concurrent large requests. Calls to the same endpoint now take turns — structurally, across every process. Prefer parallel batches on a beefy multi-tenant endpoint? "llmSingleFlight": false.
  • A tougher LLM connection. One honest timeout ceiling, a per-endpoint circuit breaker, and a readiness probe that catches a gateway answering health checks while generation is dead — a dead endpoint now costs seconds, never hours.
  • Memory cap as an operator parameter. The HICORTEX_MEMORY_CAP environment override wins over config in every mode, nightly eviction converges the corpus to the cap, and the dashboard can never display a cap different from the enforced one.

Version 0.19.5 — The corrected hardening release

August 2026

A distillation-prompt change in 0.19.4 could silently drop entire sessions' worth of memories on certain session shapes. 0.19.4 was never promoted; 0.19.5 reverts the reorder and ships the guard that makes the failure class visible and testable.

  • Zero-memory distillations are now loud. A large session that distills to nothing logs a warning naming the segment — empty stays a legitimate verdict, but it can never be invisible.
  • A release gate for prompt changes. An A/B harness runs canonical session shapes through old and new prompts against the same model; a candidate that zeroes what the baseline extracts fails the release.

Version 0.19.4 — Quieter, safer, sharper

August 2026

A hardening pass over everything 0.19: a full review sweep — correctness, security, performance, and field bugs — with every finding fixed and re-reviewed.

  • Sharper keyword recall. Exact-term lookups — names, error codes, configuration keys — now find their memories reliably, alongside the semantic search that matches by meaning.
  • Backups keep themselves tidy. The backup dir now keeps the newest N archives (default 7) instead of growing forever. Nightly coverage unchanged.
  • Uninstall is now complete. Removing Hicortex removes every hook it installed — previously one hook survived and silently ran on every prompt.
  • Topic switches keep their guarantee. The clean-search floor from the previous release now also fills a thin menu, so a sharp change of subject mid-conversation gets a full set of relevant memories.
  • OpenClaw: calmer failure. The identity-outage banner appears once per outage (not every turn) and is explicitly lifted when identity returns; installs self-harden with a startup guard line and a trust-pin reminder.
  • Faster first prompt. The embedding model warms at server start — the first question after a restart no longer quietly misses recall.

Version 0.19 — Trust, accounting, and safety net

August 2026

This release makes the memories you rely on more trustworthy, your spend more transparent, and your data safer to lose.

  • Backups. Everything irreplaceable — memories, identity, state — packs into one consistent archive: hicortex backup. Runs nightly on its own; point backupCommand at rclone, Backblaze, or anything else to ship copies offsite automatically.
  • Decisions are decisions. The distiller no longer records an AI's suggestion as a decision you made — only choices you actually confirm become decisions. Proposals land as experience ("AI proposed X, you declined"), so recall no longer surfaces contradictions with equal standing.
  • Less junk in memory. Status that expires — merge and release states, test-count deltas, session bookkeeping, transient readings — is no longer recorded at all. If a segment contains nothing durable, the distiller now writes nothing, instead of writing low-value clutter your agents later have to ignore.
  • An agent's own identity. Per-agent identity sections (agent_identity) with a defined order — who the agent is, first — served from the server and injected into every harness that supports them. A failed identity fetch makes the failure visible instead of silent.
  • OpenClaw on par. The OpenClaw plugin now matches the Hermes reference behavior-for-behavior: recall errors are visible (once, not silently), old servers get a working recall fallback, session state resets correctly, identity and lessons are injected once per session instead of every turn, and hot-path timeouts match the reference.
  • Honest token accounting. The usage meter now always reflects true spend (distillation + consolidation), with a usage gauge against your configured monthly cap.
  • Clearer standing instructions. The guidance your agents receive at session start now frames Hicortex as your agents' persistent identity and memory — what they learn, decide, and correct survives every session and model switch.
  • Better console. Your account identity appears across every console page, the cold-memory stat is labelled honestly as "never recalled", and remote dashboard access got simpler and safer.
  • Reliability. Scheduled capture hardened again (path resolution on more install types).

Version 0.18.3 — Capture reliability fix

August 2026

A critical fix for a silent capture failure that could affect global installs made with bun, pnpm, or yarn.

  • Fixed: scheduled capture could die silently. On some installs the scheduled nightly/capture agent couldn't find node and failed at startup with no visible error — memory stopped being captured without any signal in hicortex status (the shell PATH masked it). The supervisor now resolves node correctly (including Apple Silicon Homebrew and bun/pnpm/yarn globals), and init now warns at install time if the scheduled agent can't run. If you installed with bun, pnpm, or yarn, re-run npx @gamaze/hicortex init to regenerate the schedule.

Version 0.18.2 — Unified Terminology

August 2026

A vocabulary refresh to match what Hicortex actually does: give agents a persistent identity, not just a memory store.

  • Context Layer → Agent Identity. The hand-edited "who you are + how to work" layer is now called the identity layer. Same mechanism, sharper name. The CLI is hicortex identity show|edit; the endpoint is /identity (with /context kept as a backcompat alias); files live at ~/.hicortex/identity/; config keys are identityClients and identityAgents (old keys still accepted).
  • Human type names. The four memory types are now shown as Knowledge, Experience, Decisions, and Learnings across docs and UI. The internal memory_type enum is unchanged — only the labels you see changed.
  • Auto-migration. Existing installs: your ~/.hicortex/context/ directory is automatically renamed to ~/.hicortex/identity/ on the next server boot or nightly run. If both exist, they merge additively (identity wins per-section, legacy-only sections preserved). No data is lost. Old config keys (contextClients/contextAgents) and the /context endpoint continue to work as aliases.
  • Security hardening. Secrets are scrubbed server-side on /distill (not just client-side). The public /health endpoint returns only {status:"ok"} — diagnostics moved to an authed /health/detail. Token comparison is constant-time; a second token (authTokenPrevious) enables zero-downtime rotation. Consolidation-budget exhaustion surfaces on the dashboard. Nightly self-capture now sends the auth token instead of relying solely on the localhost bypass.

Version 0.17 — Agents that dream

August 2026

The biggest release since launch. Your agents now capture what they experience during the day, distill and consolidate it overnight, and wake up wiser — without you babysitting the schedule.

  • Capture that heals itself. A new capture watchdog checks every ~20 minutes whether there’s anything new to capture and whether the server is reachable, then runs only when it makes sense (throttled to ~4 runs per day by default). The practical effect: if a laptop wakes and its network takes a moment to reconnect, capture retries in minutes instead of silently skipping a whole day.
  • One model, simpler setup. The whole pipeline — distilling sessions, scoring importance, classifying domains, and extracting lessons — now runs on a single model you pick at install time. No more per-stage model configuration to maintain. Upgraders from 0.16.7 or earlier see a one-time warning naming any obsolete keys.
  • Hermes conversations captured. Interactive Discord threads on Hermes were previously invisible to capture (they never formally “ended”). Those live conversations — the ones with the actual back-and-forth — are now captured and distilled like everything else.
  • Memory analytics dashboard. A new view-only /dashboard page shows the health of your agents’ memory: growth over time, domain composition, how often surfaced memories are actually used. The headline metric is uses-per-showing — are the memories we surface the ones the agent reaches for?
  • Sharper lessons, leaner prompts. Lesson generation now demands a transferable principle (not a one-off incident), and the lesson cap dropped to 10 by default — a focused, session-relevant digest instead of a generic dump.
  • Memories that know what they are. Distilled memories are now classified as episodes, facts, or decisions at extraction time — not lumped together as “episodes.” Facts (durable truths) score higher and persist; one-off events fade. A one-time classify-types command reclassifies existing memories.
  • Your brain has a capacity. A configurable soft cap (default 10,000 memories) bounds the corpus: when full, the least-useful memories make room for new ones. Shown on the dashboard as a capacity gauge.
  • Token usage visibility. Every LLM call now reports real token counts (not estimates). The dashboard shows per-stage token consumption per month; an optional fair-use cap throttles consolidation when exceeded.
  • One console, all the tools. The server’s pages (dashboard, knowledge graph, context editor) now share a navigation bar with a consistent dark design. http://your-server:8787/ takes you straight to the dashboard.
  • Fix. The classify-types --all command no longer reclassifies lesson memories — lessons are owned by the reflection stage and are now excluded from its scope.

Version 0.16.2 — Simpler privacy, agent provenance

August 2026

  • Privacy is about where, not code. Sensitive agents should run against their own Hicortex server (a separate database) instead of sharing one store with privacy enforced in software. We removed the experimental in-app filtering — it was fragile, because every read path had to remember to enforce it, and a separate server is both simpler and more trustworthy. Point a private agent at its own server with init --server <url>.
  • Every memory now carries its origin agent. Each client gets a stable ID at init, and captured memories record which agent made them — so attribution survives renames and stays honest.
  • Agents can declare their topic. A client can set a sourceDomain in its config and every memory it captures is stamped with it — useful provenance alongside the content-based classification.
  • Cleanup. Removed a dead privacy tag the distiller used to emit (it was never read) and a "compartment" override that forced a domain to be primary regardless of relevance — primaries are now pure relevance-ranked. The privacy filter is gone too (it could only ever match one value and silently returned nothing otherwise); for keeping areas apart, run a separate server.

Recall tuning — leaner, more precise memory blocks

Recall index lines are shorter (100 chars) and blocks carry fewer entries (5, down from 6), so you see less noise per prompt. A higher similarity floor means a prompt with nothing genuinely relevant now more often gets no memory block — by design (noise is worse than silence); the memories that do surface are higher-precision. New memories are also captured topic-first (the subject leads the line), so they're findable by topic instead of by tone. Driven by the full-corpus relevance eval.

Version 0.16 — Recall scoping & honest citations

August 2026

  • Recall respects your scope. Working in one project, recall now boosts that project's and domain's memories instead of flooding you with same-word hits from unrelated projects (boat-electrics no longer surface when you ask about your MacBook battery). Nothing is excluded — it just ranks right. Coding agents derive the scope from the working directory; Hermes agents declare their domain.
  • Smarter keyword matching. The search index now knows which project and domain each memory belongs to, so a match on the project or domain field outranks a body-only keyword hit. Cross-scope noise on exact shared words drops to near zero.
  • Honest citations. A cited memory is now marked FETCHED (the agent read it in full) or SNIPPET (it only saw the one-line index entry) — so evidence was actually read, and one that wasn't is clearly labelled.
  • Provenance on every entry. Each recall line shows its origin agent and project, so it's clear whether a memory is from your session or another agent's before you act on it.
  • Cleanup & fixes. Removed two retired install commands (/learn, /hicortex-activate); init now clears stale copies. Fixed a broken plugin-manifest reference and brought the citation marker to the Claude Code fetch path it had missed.
  • Security: cross-origin lockout. The server no longer lets arbitrary web pages read or change your memory store through its localhost port — only origins you explicitly allow. Closes a real data-exposure path on self-hosted setups.
  • Reversed facts retire. When a plain fact is updated (not just decisions), the old value is now demoted in recall — it ranks below its replacement instead of competing with it.

Version 0.15.3 — Session-aware recall

July 2026

  • Recall follows the session. The per-prompt recall index now blends your current prompt with a rolling sense of what the conversation is about, so rephrasing stops pulling in off-topic memories. Tunable via sessionIntentWeight (set 0 to disable).
  • Gentler fetch nudge. The index now suggests fetching a memory's full content when it could change your action — less conservative, so fewer relevant memories go unread.

Version 0.15 — Dedup, supersession & ranking

July 2026

  • Duplicate detection. A nightly pass finds and merges near-duplicate memories, so your memory bank tightens over time instead of fragmenting.
  • Reversed decisions stop ranking. When a newer memory supersedes an older one, the old one is demoted in recall but never deleted — searchable, no longer outranking what replaced it.
  • Smarter ranking, all tunable. Similarity, strength, connections, and recency are config keys. A new fresh-memory window briefly boosts recently captured content so yesterday's work surfaces today, then decays into long-term ranking.
  • Transparent telemetry. An anonymous nightly ping reports aggregate usage; a new hicortex telemetry command shows exactly what is sent. Opt out anytime.

Version 0.14 — Per-prompt recall & provenance

July 2026

  • Per-prompt memory recall. Every prompt gets a compact index of relevant memories — one line each — and the agent loads full content only when one matters. Works across Claude Code, Hermes, and OpenClaw.
  • Exposure vs use. Appearing in the index marks a memory shown; fetching it marks it used. Importance follows what agents actually use.
  • Built-in provenance. Memories that shape an answer carry their origin (id, date), so influence is visible in the transcript.
  • Gentler decay. Default half-life about one year (was ~4 months), tunable.
  • All tuning is config — recall breadth, floors, timing, decay. No release needed to calibrate.

Version 0.13.0 — Per-agent context

July 2026

  • Per-agent standing context. Agents on the same server can each have their own context alongside the shared global one. Drop Markdown into ~/.hicortex/context/agents/<id>/ to override an agent.
  • Hermes and OpenClaw receive the context layer, scoped per profile/agent.
  • Claude Code stays global by default — opt a machine into its own identity with hicortex init --agent-name <name>.

Version 0.12.1 — Install fix

  • Fixed: npx client installs no longer break silently. Re-run init (or upgrade) if you installed 0.12.0 as a client.

Version 0.12.0 — Context layer

July 2026

  • Context layer. A hand-edited "who you are + how to work" layer alongside auto-distilled memories — Markdown injected every session, never distilled or decayed.
  • Breaking rename: the recall tool hicortex_context is now hicortex_recent. Upgrade the server before its clients.

Version 0.11.0 — Memory visualization & self-organizing domains

July 2026

  • Memory graph at /viz — domains as clusters, relationships as edges, hubs highlighted. Filter, search, click any node. Served by your own server.
  • Multi-tag domains. Define your knowledge spheres; every memory files into all that apply, weighted from your data, one primary. No "Unsorted" pile.
  • Self-tuning classification — domain profiles recompute nightly from your data.
  • Smarter links across the bank, plus hicortex relink to back-fill.

Version 0.10.0 — License change, all features free

July 2026

  • PolyForm Noncommercial license — personal and noncommercial use free with the full feature set; commercial use is per-seat.
  • All tiers and gates removed — no memory cap, no feature differences.
  • Per-install auth token generated at init.
  • User-chosen LLM — init lists detected options, you pick.

Version 0.9.0 — Thin-client capture

June 2026

  • New capture model. Clients no longer run local LLM distillation — the nightly denoises locally (no LLM) and sends to the server, which does all the LLM work. Raw content never leaves the machine.
  • Strict by default — if the server is unreachable, the nightly retries rather than silently degrading.
  • Hermes sessions captured alongside Claude Code.

Version 0.8.0 — Hermes support

  • Hermes recall plugin — lessons at session start, search and recent-memory tools in-process. hermes memory setup hicortex.
  • Multi-machine deployment validated (one server, networked thin clients).

Version 0.7.0 — Graph Intelligence

April 2026

  • Community detection finds knowledge domains from the memory graph automatically.
  • Hub detection boosts highly-connected memories.
  • New hicortex_graph tool — connected memories, hubs, shortest paths.

Version 0.6.0 — Knowledge Domain Routing

April 2026

  • Memories auto-group into knowledge domains; agents see a structured domain index, not a flat project list.
  • Same-domain lessons boosted during injection.
  • New hicortex_index tool to query domains.

Version 0.5.3 — Security & Quality

April 2026

  • Pre-ingestion redaction scrubs keys, tokens, paths, and secrets before storage.
  • Contradiction detection suppresses new lessons that conflict with existing ones.
  • Anonymous usage telemetry (opt-out).

Version 0.5.0 — Pi Agent Support

April 2026

  • Pi coding agent support — nightly distillation reads Pi sessions alongside Claude Code.
  • MCP tools via pi-mcp-adapter.

Version 0.4.6 — Nightly Data-Loss Fix

April 2026

  • Fixed: the nightly silently lost sessions when the distillation LLM was unreachable. Now retries cleanly and advances only when every session is processed.

Version 0.4.5 — Public Release

April 2026

Version 0.4 — Multi-Client Support

March 2026

  • Connect multiple clients to one shared memory server.
  • Split LLM config (scoring / distillation / reflection).
  • New hicortex_update and hicortex_delete tools.

Version 0.3 — Claude Code Support

March 2026

  • Same package works with Claude Code and OpenClaw.
  • One-command install, persistent MCP server, automatic daemon.
  • Nightly pipeline: capture → distill → consolidate → inject.

Version 0.2 — OpenClaw Plugin

February 2026

  • Initial release as an OpenClaw lifecycle plugin.
  • Semantic search (BM25 + vector + RRF), knowledge graph, decay/strengthening.
  • Multi-provider LLM support.