Changelog

Every release, newest first — auto-summarized from CHANGELOG.md at build time. You can also browse the GitHub Releases page or the raw commit history.

v0.1.0-beta.35

The CLI harvests; the agent distills. Extracting meaning is a semantic judgement, and making it in the CLI would mean shipping an embedding model or calling an LLM — the two things Brain exists to avoid. So the harvester reports facts and never infers, and distilled memories go through the ordinary brain memorize path as agent-inferred: an import inherits the existing provenance ceilings for free and can never pin, entrench, or outrank something the user said directly. Import is incremental — a cursor at ~/.brain/.import/state.json records which sessions have been read so re-runs offer only new ones (--all overrides). --mark validates ids against the source's real sessions and exits non-zero on any that match nothing: silently accepting a truncated or mistyped id would report a session as retired while the cursor never matches it, re-offering that session forever. Scope with --project, --since 30d|6m|2026-01-01, --limit. brain import --sources lists detected history stores. brain import only ever reads and prints; no memory is written without the agent. Claude Code is the first source adapter; the registry in src/harvest.js takes additional agents without changes downstream.

Added
  • /brain:import — cold-start a brain from transcripts your agents already wrote. A new brain is empty, and an empty brain is worth nothing until something fills it; meanwhile every coding agent has been keeping months of local history. brain import harvests it: session titles, user prompts, projects, branches and edited files, with harness wrappers (<system-reminder>, slash-command tags, command output), subagent sidechain traffic, and bare acknowledgements filtered out. The digest is bounded on three axes (sessions, prompts per session, total characters) and round-robins across projects, so one busy repo cannot consume the whole budget — on a real 261-session history that lifted project coverage from 5 to 13 within the same ~15k tokens.
v0.1.0-beta.34
Added
  • Memory provenance — every write is now labelled by origin. Each memory carries an origin (user, agent-inferred, tool-output, external) recording *where the content came from*, which is a different question from how much the agent believes it. Origin decides what a memory may claim: non-user origins are capped below the 0.7 prune-exempt salience threshold, capped on confidence so they stay flagged as uncertain at recall, may not raise their own base strength, and decay faster — so a fact absorbed from untrusted content fades and loses to a genuine one over time. Defaults to agent-inferred when absent (the safe direction). Downgrades are never silent: brain memorize reports every value it lowered under provenance_clamps. Mitigates OWASP ASI06 (memory poisoning); see MemGhost, arXiv:2607.05189.
  • Append-only provenance log at ~/.brain/audit.log — one JSON object per write, recorded before the caller sees success, so a fact that later proves to be planted can be traced to the write that introduced it even if the memory was since edited, consolidated, or deleted.
Changed
  • Breaking (CLI): born-pinning through brain memorize now requires origin: "user". Entrenchment — pinned (loaded into every session) and stable (exempt from decay) — is a capability rather than a magnitude, so a request from any other origin is refused with a non-zero exit rather than quietly capped. Pin deliberately afterwards with brain pin <id> instead. Only affects callers that drive the CLI directly; /brain:memorize already proposed rather than assumed pinning.
Fixed
  • Cache-honest token accounting in the benchmark harness. normalizeUsage now folds cache_read/cache_creation input tokens back into the input count — the cached prefix was being undercounted, which deflated tokens-per-successful-task on the DeepSeek endpoint. Cached tokens are accumulated, logged, and persisted separately so the two can be compared. Also: model-aware judge dispatch, runs_per_scenario raised to 10, tighter needle-fact rubrics on scenarios A/B/C, and three amendment rows recording all of it in PREREGISTRATION.md.
v0.1.0-beta.33

_Covers everything since v0.1.0-beta.31, including the changes first shipped in the changelog-less 0.1.0-beta.32._

Added
  • Recall receipts — memory that visibly fires. Every memory returned by brain recall and brain session-start now carries an engine-minted receipt line (◉ memory: "<title>" (<type>, <age>)). Hosts end a response with the receipts of the memories that actually shaped it — max 3, copied verbatim, pinned facts only when decisive, none when none were used. A receipt can only exist if the engine returned that memory, so receipts cannot be hallucinated.
  • Four new agent hosts. Native integrations under integrations/ for OpenClaw / NVIDIA NemoClaw (memory-slot plugin openclaw-brain-memory replacing memory-core, slot-neutral hook pack, ClawHub skill, NemoClaw egress-policy preset — all live-verified), Hermes Agent (full MemoryProvider plugin, shipped standalone as the hermes-brain-memory pip package per upstream policy), GitHub Copilot CLI (plugin with sessionStart context injection + skills; the repo is now a Copilot plugin marketplace via .github/plugin/marketplace.json — install with copilot plugin install brain-memory@brain), and Kilo (runtime plugin with chat-message injection, session tracking, and BRAIN_AGENT labeling).
  • Two new installer runtimes. brain --copilot (global prompt at ~/.copilot/copilot-instructions.md, skills in the cross-tool ~/.agents/skills/) and brain --kilo (prompt registered in the kilo.jsonc instructions array via a safe strict-JSON editor; repo-local AGENTS.md shared with Codex/OpenCode).
Fixed
  • Kilo plugin derives the project label from input.project as well, so a plugin host running with cwd / no longer records sessions as project "unknown".
  • Hermes cli.py is a standalone diagnostics tool (python3 cli.py status|recall) — Hermes exposes no CLI hook to user-installed memory providers, so the previously documented hermes memory recall never existed.
  • Every npm publish now runs the full test suite via prepublishOnly — the old prerelease script was a no-op vestige no release path invoked.
v0.1.0-beta.31
Fixed
  • Recall relevance is now calibrated in absolute terms. BM25 relevance was normalized per-query by the top score, so the best match for *any* query scored relevance 1.0 — a nonsense query's one weak term-match produced ten confident-looking results (top composite 0.679). Three coordinated changes fix the calibration: relevance is scaled by IDF-weighted query coverage (a memory matching one term of a four-term query can no longer score 1.0); explicit-query recall applies a relevance floor so zero-relevance memories can't pad the top-N on strength alone; and spreading-activation sources are relevance-gated in query mode, so a strong-but-irrelevant clique can't rescue itself past the floor (associates of genuinely relevant memories still surface — that's the feature). Context mode (--context, session-start) is exempt: topical padding is intended there. On a real 177-memory brain the same nonsense query now returns one result with honest relevance (0.213), and a 20-query retrieval probe improved from hit@1 90% / MRR 0.950 to hit@1 100% / MRR 1.000 — coverage scaling also demotes partial-match distractors below full-coverage targets.
v0.1.0-beta.30
Security
  • Connector purges plaintext working copies. The hosted MCP connector already kept per-user working copies in RAM only (tmpfs, never on disk); it now also wipes them proactively — on an idle TTL, at session end, and via a dedicated ephemeral working path — so a decrypted brain never lingers in memory longer than an active session needs it. Local-only and Git/export use are unaffected. See SECURITY.md.
Added
  • memorize tags each memory with its origin agent. New memories record encoding_context.agent — the detected host (claude-code, gemini-cli, codex, opencode), a BRAIN_AGENT override, or unknown — in both frontmatter and the index. This powers the Brain Cloud dashboard's "where your brain is used" attribution. Existing memories are unaffected; the field is additive.
Fixed
  • forget now actually clears a memory from recall. forget sourced its search index differently from recall, so a forgotten memory could keep surfacing until the index was rebuilt out-of-band; it now sources the index via the same TF-IDF path as recall, so forgetting takes effect immediately. Added CLI test coverage for recall and forget, and de-flaked the stress-test performance gate.
Changed
  • Website NL/EU compliance pass. Privacy and Terms were revised for NL/EU law — sub-processor list and EU data location, a cookies/browser-storage section, retention periods, KMS-accurate at-rest-encryption language, the Omelas controller identity, a VAT (EU OSS) clause, and the 14-day consumer right of withdrawal — plus a site-wide transparency notice (not a consent CMP; the site sets no tracking cookies).
  • Brand asset set. Added assets/brand/ — light + dark firing-neuron tiles and marks (SVG + PNG 64–1024), transparent marks, icon-centered LinkedIn covers (6336×1584, no text), and a usage README — with a dependency-free regeneration script. No behavior change.
v0.1.0-beta.29

Version marker only — no functional changes since beta.28.

v0.1.0-beta.28
Fixed
  • Recall relevance after out-of-band memory changes. session-start now rebuilds its search index when it has drifted out of sync with index.json (after a sync pull, sleep/consolidate, forget, or a manual edit), not only when the index is missing — matching recall's behavior. A stale index silently scored every memory's relevance as 0, so newly-synced or changed memories were surfaced by strength/context only, never by relevance.
v0.1.0-beta.27
Security
  • Hosted-service hardening (Brain Cloud + connector). Memories synced to Brain Cloud are now encrypted at rest (AES-256-GCM, per-user key, with keys managed in a cloud KMS — the key never sits on the server); the connector keeps per-user working copies in RAM only (tmpfs), never on disk. CLI sessions use rotating refresh tokens with automatic reuse detection and real logout (one device or all). The connector now fails closed without an identity provider, runs as an unprivileged sandboxed service, safely handles untrusted brain bundles, and rate-limits its endpoints; OAuth account-linking requires a verified email. None of this changes local-only or Git/export use, which stay passphrase-encrypted and never touch the cloud. See SECURITY.md.
  • The published package now also ships SECURITY.md and CHANGELOG.md.
v0.1.0-beta.25
Changed
  • Brand refresh. Adopted the firing-neuron "activation" glyph in place of the brain emoji across the prompts, command output, CLI help text, and the README, and refreshed the icon set (assets/). No behavior change.
v0.1.0-beta.24
Added
  • BRAIN_DIR environment variable — point your brain at any folder instead of the default ~/.brain. Set it to a folder your existing tools already sync (Google Drive, Dropbox, iCloud Drive, OneDrive, Syncthing, or a git working copy) to get cross-device sync with no account and no extra setup. A leading ~/ is expanded. Honored everywhere the brain is resolved — recall, memorize, init, and Cloud sync.
v0.1.0-beta.23
Changed
  • Command surface collapsed to a six-verb core. The everyday loop is ambient (recall + memorize), with a small manual surface and maintenance demoted to the background. Removed/merged six commands: consolidate and review are now handled by /brain:sleep; unpin is folded into /brain:pin (a toggle — --off unpins); sunshine (forensic erasure) is now /brain:forget --deep; explore is dropped (browse ~/.brain/ directly or use the web dashboard); and init is folded into install + first /brain:sync (which auto-creates the structure if missing). The surviving commands are remember, memorize, status, pin, forget, sync, skills, and sleep. This aligns the plugin with the forthcoming Claude connector, which exposes the same minimal tool set.
Fixed
  • Install detection no longer depends on a specific command. The Codex/OpenAI skills-style detector keyed off brain-init/SKILL.md; it now matches any brain-* skill directory, so detection survives command-set changes.
v0.1.0-beta.21
Changed
  • Primary domain moved to brainmemory.ai. The website, dashboard, and Brain Cloud API now live at brainmemory.ai, app.brainmemory.ai, and api.brainmemory.ai. The plugin's default sync endpoint (DEFAULT_API_URL) is now https://api.brainmemory.ai. The old brainmemory.work hosts remain as redirects — api.brainmemory.work issues a 308 to the new API, so existing installs keep syncing without changes.
v0.1.0-beta.20
Fixed
  • memorize and skill add now read piped stdin portably (fixes CI on Linux & Windows). Both CLIs read input by opening the /dev/stdin *path*, which works on macOS but throws ENXIO on Linux CI runners and doesn't exist on Windows — so the contradiction-surfacing tests failed on every non-macOS job. Switched to reading file descriptor 0 (fs.readFileSync(0, …)), which reads piped stdin correctly across Linux, macOS, and Windows.
Changed
  • Project moved to the Omelas organization. Repository transferred to github.com/omelas-tech/brain (old onurkarali/brain URLs redirect). Updated repository, bugs, and all in-repo/website GitHub references accordingly, and set homepage to https://brainmemory.work/. No code or behavior changes — metadata only. The npm package name stays brain-memory (unscoped); install is unchanged.
v0.1.0-beta.19
Fixed
  • Installer now removes stale command files on update, so the beta.18 /brain:skill/brain:skills rename actually takes effect for existing users. Previously the installer only *copied* the current command set and never deleted renamed/removed files — so an upgrader's old skill.md lingered next to the new skills.md, and on case-insensitive filesystems that leftover skill.md (== SKILL.md) kept the whole commands/brain/ directory shadowed as a single skill, hiding every /brain:* command. installForRuntime now wipes the brain command dir (and stale brain-* skill dirs for the Codex skills layout) before writing the fresh set.
v0.1.0-beta.18
Fixed
  • **/brain:* slash commands now actually register in Claude Code** (completes the beta.17 fix). On case-insensitive filesystems (default on macOS), the skill command file skill.md collides with SKILL.md — Claude Code's skill loader treated the entire commands/brain/ directory as a single skill named brain, shadowing all 14 commands so none appeared in autocomplete. Renamed the command skillskills (commands/brain/skills.md, invoked as /brain:skills) to remove the collision. The CLI subcommand remains brain skill. Updated slash-command references in prompts/{claude,gemini,opencode}.md, CLAUDE.md, and README.md.
v0.1.0-beta.17
Fixed
  • **Claude Code now registers all /brain:* slash commands.** The command files (commands/brain/*.md) shipped without YAML frontmatter; current Claude Code requires a description field to register a .md as a slash command, so all 14 commands were silently skipped (only /brain:skill surfaced, via the separate skills path). Added description + argument-hint frontmatter to every command file — the field Claude Code needs, and tolerated by the Gemini / Codex / OpenCode install targets too.
v0.1.0-beta.16
Changed
  • Benchmark redesigned around 2025-2026 long-term-memory SOTA. No runtime changes to the brain CLI; this release is a milestone marker for the new evaluation methodology shipped in benchmark/ and documented at /docs/benchmarks/. - New N-arm matrix harness with cross-family LLM judge (Claude judges Gemini and vice-versa) — mitigates preference leakage (arxiv 2502.01534) and position bias (arxiv 2509.20293). - Six pitchable scenarios (A-F) replacing the legacy 5-scenario suite: Noisy Project Folder (LongMemEval-S retrieval-under-distractors), Three Sessions / One Decision (Pinned Tier ablation), The Contradiction Test (decay + recency), Skill Progressive Disclosure (CoALA Phase-2 L0/L1/L2 ablation), Continual Coding (SWE-Bench-CL style with real brain memorize between tasks), Abstention (confabulation resistance). - Deterministic 200-memory distractor haystack; real brain session-start / brain recall integration with Recall@k / NDCG@k scoring against oracle ID sets. - Tokens-per-successful-task adopted as the headline efficiency metric (Mem0/BEAM standard); write-side cost co-reported. - New OpenCode CLI agent adapter (default model deepseek/deepseek-v4-pro), with --opencode-model override for cheaper DeepSeek variants. - Codex CLI dropped from the default benchmark suite (no token reporting); remains a fully supported brain install target. - Legacy scenarios 1-5 stay on disk for reproducing historical reports; invoke explicitly via --scenario scenario-N-….
v0.1.0-beta.15
Changed
  • BREAKING: unified CLI surface — the five separate binaries (brain-memory, brain-recall, brain-reinforce, brain-cloud, brain-memorize) are replaced by a single brain dispatcher with subcommands: brain recall, brain memorize, brain reinforce, brain cloud <…>, and brain install|update|uninstall (bare brain runs the installer). New features ship as subcommands rather than new top-level binaries. Re-run the installer/update to refresh prompts; agents now invoke brain <command>. (bin/brain.js)
Added
  • brain --help / brain --version on the unified dispatcher
  • CoALA Phase 0 — budget-aware working memory. New brain session-start aggregator returns a single deterministic, token-budget-bounded startup payload (memory_count, pinned, skills_index, context_recall, due_for_review, low_confidence_alerts, budget); ~/.brain/config.json holds the working-memory budget (created lazily with safe defaults); each new memory records a token_estimate. Session-start prompts/hook now make one brain session-start call instead of hand-rolled recall + review + low-confidence checks.
  • CoALA Phase 3 — procedural crystallization. New /brain:sleep phase (4b) clusters repeated procedural/experience memories and proposes distilling a recurring task-solving procedure into a SKILL.md (user-confirmed, never silent) — learned skills, not just hand-authored ones.
  • CoALA Phase 4 — host skill export. brain skill export <name> [--target claude|gemini] emits a native .claude/skills/<name>/SKILL.md (or .gemini/...) so distilled skills become directly executable by the host. The new state files (config.json, pinned.json, skills-index.json, _skills/) sync automatically via the existing whole-directory git/export-import engines.
  • Tier B §10.1 — obsolescence / context-shift detection. /brain:sleep Prune phase flags memory clusters whose project/role has been absent from recent sessions (contexts.json) as reversible archive candidates — catching abrupt relevance loss that decay misses. Never flags pinned memories.
  • Tier B §10.2 — contradiction surfacing. brain memorize now reports potential_conflicts when a new memory heavily overlaps a pinned/stable memory; /brain:memorize guidance has the agent adjudicate (supersede / keep-both-scoped / reject) instead of silently keeping both.
  • Tier B §10.4 — primacy/recency ordering. brain session-start orders recalled memories so the highest-ranked land at the edges of the payload, mitigating "lost in the middle."
  • CoALA Phase 2 — procedural skills layer. Skills are stored as ~/.brain/_skills/<name>/SKILL.md and served via three-level progressive disclosure (L0 session-start advertises name + description only; L1 reads the full skill on a matching task; L2 loads resources at execution). brain skill list|show <name>|use <name> [--failed]|add|remove <name> and /brain:skill. Procedural strength rises on successful use and falls on --failed; a skill that fails too often demotes itself out of the advertised L0 index (Tier B §10.3). ~/.brain/skills-index.json holds the L0 list; session-start injects skill summaries budget-capped by skills_index_budget_tokens.
  • CoALA Phase 1 — pinned semantic tier + stable flag. brain pin <id> [--scope global|project:<name>] [--priority N] / brain unpin <id> and the /brain:pin /brain:unpin commands. Pinned memories are injected at every session start regardless of recall score and are decay-exempt; stable: true exempts a memory from decay without forcing it to always load. pinned/stable memories are skipped by sleep-cycle homeostasis and pruning. ~/.brain/pinned.json manifest; /brain:memorize now proposes pinning durable conventions. Fixes the long-standing hole where a stored preference (e.g. "always use tabs") only applied if recall happened to surface it.
v0.1.0-beta.14
Added
  • OpenCode supportbrain --opencode installs Brain Memory for the OpenCode agent (prompts/opencode.md), bringing the supported runtimes to Claude Code, Gemini CLI, OpenAI Codex CLI, and OpenCode.
Fixed
  • Graceful handling of corrupt brain state files — CLI tools now emit a clear, actionable error (naming the offending JSON and suggesting a sync/backup restore) instead of crashing when index.json, associations.json, or the search index is malformed.
Changed
  • Install docs recommend npm install -g over npxnpx discards the temporary install, so the brain CLI never lands in PATH and agents fall back to less reliable manual file operations.
v0.1.0-beta.13
Added
  • brain-memorize CLI — single-command memory storage that handles all plumbing (ID generation, strength/decay computation, directory creation, file writing, index updates, association edges, search index) in one call
  • --sync flag for /brain:memorize — auto-pushes to cloud/git after storing, eliminating the separate /brain:sync push step
  • --confirm flag for /brain:memorize — opt-in confirmation (was previously the default)
  • Install check for brain-cloud CLI in /brain:sync cloud push — shows install instructions if missing
Changed
  • /brain:memorize is now non-interactive by default — stores immediately and shows results after, instead of asking "Store these memories?" before writing. The user said "memorize" — they want it stored.
  • /brain:sync push and cloud push are now non-interactive — execute immediately without confirmation, matching git push behavior. Pull/import still confirm before overwriting.
  • Memorize prompt reduced ~60% — AI classifies memories and pipes JSON to brain-memorize CLI instead of manually writing files. One bash call instead of 6-8 tool calls.
  • Session start behavior made lightweight — recall engine skips if project has no matching memories, output condensed to single status line, removed heavy mandatory phrasing
v0.1.0-beta.12
Added
  • Brain Cloud sync — push/pull ~/.brain/ to Brain Cloud (api.brainmemory.work) via new cloud subcommands
  • brain-cloud CLI (bin/cloud-sync.js) — device code auth, push, pull, status, logout
  • src/cloud-sync.js — zero-dependency cloud sync engine using Node.js built-in https module
  • Device code OAuth flow for CLI authentication (/brain:sync cloud login)
  • Tar.gz archive-based sync protocol for efficient uploads/downloads
  • Token management with automatic refresh
  • Cloud subcommands in /brain:sync: cloud login, cloud push, cloud pull, cloud status, cloud logout
v0.1.0-beta.11
Added
  • Ambient Session Tracking — agent maintains a running mental log of decisions, learnings, insights, experiences, and goals as they happen throughout the session, so nothing is lost by session end
  • Periodic Memory Checkpoint — every ~10 substantive interactions, the agent appends a one-liner nudge to its next response, never interrupting flow
  • notable_unsaved field in session context — preserves what happened even when the user doesn't memorize, so future sessions can reference it
  • update subcommand — auto-detects existing installations and refreshes commands + prompt sections (brain-memory update)
  • uninstall subcommand — removes commands and prompt sections, preserves .brain/ by default (brain-memory uninstall)
  • detectInstallations(), removePromptSection(), removeCommands(), uninstallForRuntime() in src/installer.js
  • Subcommand routing in bin/install.js with parseArgs(), runUpdate(), runUninstall()
  • 20 new tests covering detection, removal, and round-trip install/uninstall
  • Git-based sync — push/pull .brain/ to any private Git remote (GitHub, GitLab, Codeberg, self-hosted) via /brain:sync setup/push/pull
  • Export/Import — single-file encrypted backup for portable transfers via /brain:sync export and /brain:sync import
  • src/crypto.js — standalone AES-256-GCM crypto module extracted from the old sync code
  • src/git-sync.js — Git sync engine using child_process.execFileSync
  • src/export-import.js — single-file export/import with encryption and merge mode
  • 74 new tests: installer unit tests (test/install.test.js) and prompt content validation + integration tests (test/prompts.test.js)
  • Deterministic recall engine with TF-IDF scoring (bin/recall.js, bin/reinforce.js)
  • Benchmark suite with automated multi-agent evaluation
  • Website with full documentation site at brainmemory.work
Changed
  • Session End Behavior — context save to contexts.json is now the first action (was an afterthought), saves unconditionally even for trivial sessions, and proactively detects session endings without waiting for explicit signals
  • /brain:memorize command — restructured prompt for efficiency: batches all file writes into a single parallel call, skips reads when state is already in context, presents proposed memories for user confirmation before writing, targets 3-4 tool call rounds total (was 6+)
  • /brain:sync now uses Git remotes instead of OAuth cloud providers — no more registering OAuth apps
  • Replaced cloud sync dashboard in /brain:status with git sync status (remote URL, ahead/behind counts)
  • Extracted installer logic from bin/install.js into src/installer.js for testability — bin/install.js is now a thin CLI wrapper
  • Hook files (hooks/session-start.md, hooks/session-end.md) now have reference notes clarifying that behavior is delivered through prompt injection, not native hook events
  • Removed dead settingsFile config from runtime definitions — it was never used
  • Removed hooks/ from npm package since they are internal reference docs, not user-facing files
  • Website redesigned with clean light theme and updated icon
Removed
  • Cloud sync module (src/sync/) — OAuth2, Dropbox, Google Drive, and OneDrive providers
  • OAuth token storage (credentials.enc) and three-way diff sync state (sync-state.json)
Fixed
  • Git sync repo isolation — the git() helper in src/git-sync.js only used cwd to scope commands; if .brain/.sync/repo/.git didn't exist yet (first push or failed init), git would walk up the directory tree and commit brain files to the parent project repo. Now uses GIT_DIR + GIT_WORK_TREE env vars to fully isolate the sync repo.
  • Session lifecycle was dead code — session-start/end hook instructions were defined in hooks/ but never installed or referenced anywhere. The prompt injected into CLAUDE.md/GEMINI.md/AGENTS.md only had a weak one-liner about memorization. Now all three prompt files contain full "Session Start Behavior" and "Session End Behavior" sections with automatic brain context loading, review queue alerts, and end-of-session memorization suggestions.
  • release:beta npm script now automatically updates the latest dist-tag after publishing
  • Accurate model names in benchmark results
v0.1.0-beta.4
Added
  • /brain:sync command — cloud sync for pushing/pulling memories to Dropbox, Google Drive, or OneDrive
  • Cloud sync module (src/sync/) with OAuth2 PKCE + Device Code Flow, AES-256-GCM encryption, three-way diff algorithm, and provider-specific implementations (Dropbox API v2, Google Drive API v3, Microsoft Graph API)
  • Zero new dependencies — uses Node.js 18+ built-in fetch, crypto, http
Changed
  • Removed all v1 migration code and references — no v1 users exist
  • Updated documentation to reflect 11 slash commands and cloud sync
v0.1.0-beta.3
Added
  • /brain:sunshine command — deep forensic memory erasure that traces and removes all references across the .brain/ tree (related arrays, content mentions, association edges, context sessions, review queue, archive index, crystallization comments)
  • removeEdgesForMemory() utility in index-manager for removing all association edges involving a memory
  • removeFromReviewQueue() utility in index-manager for removing a memory from the review queue
  • _erased.json audit log schema for tracking erasures without preserving erased content
  • 16 new tests for erasure utilities
  • npm release scripts (release:beta, release:patch, release:minor, release:major)
Fixed
  • Windows CI compatibility: explicit test file listing, bash shell for glob expansion, path.join in tests
  • Relaxed stress test thresholds for CI runners (5x multiplier)
v0.1.0-beta.1
Added
  • 375x faster rankMemories via batch spreading activation
Fixed
  • Clamped recency bonus and optimized spreading activation loop
  • Normalized package.json bin and repository fields for npm
v0.1.0

Initial beta release.

Added
  • 9 slash commands: init, memorize, remember, review, explore, consolidate, forget, sleep, status
  • Neuroscience-inspired scoring with Ebbinghaus exponential decay
  • Associative memory network with spreading activation (BFS, 2-hop, 50% decay per hop)
  • Hebbian learning for co-retrieved memories
  • Context-dependent recall scoring (project, topic Jaccard, task type matching)
  • Spaced reinforcement with logarithmic spacing multiplier and diminishing returns
  • 3 cognitive memory types: episodic, semantic, procedural (each with distinct decay behavior)
  • Salience-based protection preventing auto-pruning of important memories
  • Confidence tracking with contradiction detection
  • 9-phase sleep cycle: replay, synaptic homeostasis, knowledge propagation, semantic crystallization, reorganize, consolidate, prune, REM dreaming, expertise detection
  • SM-2 spaced repetition review scheduler
  • Memory consolidation with salience anchoring
  • Archive system with recoverable memories
  • Multi-factor recall scoring formula (relevance, strength, recency, spreading, context, salience)
  • Multi-runtime installer: Claude Code, Gemini CLI, OpenAI Codex CLI
  • Interactive and non-interactive installation modes
  • Session lifecycle hook definitions (session-start, session-end)
  • 114 tests covering scorer, index-manager, and end-to-end lifecycle
  • Zero external dependencies

Staying Updated

To update Brain Memory to the latest version:

npm install -g brain-memory@beta
brain update

The first command updates the package and CLI tools. The second refreshes slash command prompts for your installed runtimes. Your memories in ~/.brain/ are never modified by updates.

See the Installation page for more details on updating and managing your installation.

info

Brain Memory follows semantic versioning. During the beta period, minor versions may include breaking changes to the command format or memory schema. Major version bumps will be reserved for post-beta releases.