Releases: benediktms/brain
Releases · benediktms/brain
0.4.3 - 2026-05-20
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
Handle RpcError responses in UnixSocketTransport (#181 )
Restore GH_TOKEN that dist plan requires
Address final CodeRabbit review comments
Address CodeRabbit review comments
Address review comments + regenerate release.yml
Handle RpcError responses in UnixSocketTransport
Detect daemon via socket when PID file missing; prevent dual daemon spawn (#180 )
Detect daemon via socket when PID file missing; prevent dual daemon spawn
Resolve brain_id from TOML for daemon's default path; add defensive empty guards (#179 )
Use scoped brain in smoke test to match new guard
Use toml.id for short-circuit brain_id resolution
Remove needless borrow in from_path
Resolve brain_id from TOML for daemon's default path; add defensive empty guards
Use target-agnostic wording for remote provider_remove
Validate provider name before stdin prompt; fix remove message
Redact api_key in Debug impl; allow stdin prompt for remote
Remove needless borrow in provider_set call
Address CodeRabbit review comments on PR #178
Resolve brain_id from DB when TOML lookup fails in from_path_inner (#177 )
Resolve brain_id from DB when TOML lookup fails in from_path_inner
Features
Add missing RPC methods — JobsRetry, JobsGc, ProviderSet, ProviderRemove (#178 )
Add missing RPC methods — JobsRetry, JobsGc, ProviderSet, ProviderRemove
Install brain 0.4.3
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/benediktms/brain/releases/download/v0.4.3/brain-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install benediktms/brain/brain
Download brain 0.4.3
0.4.2 - 2026-05-19
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
Correct default log level in entry.rs comment
Map resolve_task_id errors to appropriate caller-facing variants
Use as_ref().cloned() instead of take() in dispatch
Simplify RpcClient type alias and fix set_client/dispatch
Bind socket before connecting BrainRouter client
Remove duplicated match arm in supervisor IPC startup
Return ShutdownOutcome on BrainRouter connect failure
Make BrainRouter::new fallible
Remove routed arms for tasks.apply_event and tags.recluster
Don't hold std Mutex across blocking I/O in BrainRouter::dispatch
Address CodeRabbit review nitpicks
Keep BRAIN_HOME scoped to full server lifetime
Address two CodeRabbit review comments
Resolve remaining CI failures from brain_mcp extraction
Resolve CI clippy failures from brain_mcp extraction
CodeRabbit auto-fixes for PR #172 (#176 )
Apply CodeRabbit auto-fixes
Apply CodeRabbit auto-fixes
Apply CodeRabbit auto-fixes
Remove needless borrow on db arg in ensure_schema_version
Add &mut to store arg in ensure_schema_version call
Remove needless borrow in handlers.rs
Address CodeRabbit review pass 5
Apply CodeRabbit auto-fixes
Wire records.fetch_content tool into registry
Round_trip BRAIN_HOME guard lifetime + registry_smoke tool list
Address CI failures (batch 3)
Add missing brains + members fields to sample_saga_summary
Address CodeRabbit review follow-ups (batch 2)
Add smoke tests for records.search and records.fetch_content
Assert non-empty content and add missing record tools
Replace fixed sleep with active readiness probe
Move _config_watcher binding to outer scope
Add ENV_LOCK mutex to with_env helper
Delete tests that spawn real brain-daemon subprocess
Delete flaky binary_smoke test + ignore env-leaking entry tests
Make tracing + notify-debouncer-full non-optional deps
Cfg-gate watcher module (single attribute)
Cfg-gate watcher module under embed feature
Remove duplicate cfg-gate on watcher module
Cfg-gate watcher module for embed feature
Address CodeRabbit review (batch 3 + Q1)
Address CodeRabbit review (pass 3)
Address CodeRabbit review (batch 3 + Q1)
Address CodeRabbit review (batch 2 — design responses)
Address CodeRabbit review (batch 1)
Address Phase D batch 1 architect review
Reject negative time_scope durations
Address CodeRabbit review on brain_memory + brain_rpc
Mock emberdder imports for latency benchmarks
Address code-review feedback on bounded capsule + RFC 3339 contract
Log instead of silently swallow invalid epoch timestamps
Make brain_daemon_path return a real file for stat'ing
Address CodeRabbit review findings on watcher migration
Plumb RPC shutdown handle through supervisor
Address CodeRabbit review findings on Stage 3 wire-up
Only auto-resolve --sqlite-db when the file exists
Cover new Request variants in CI build
Brain_daemon + brain_rpc reviewer-audit follow-ups (small subset) (#164 )
Tighten direct-dep gate against renames + sync trait doc
Address reviewer-audit follow-ups (small subset)
Satisfy clippy on spawner.rs
Clippy — drop unused re-exports + collapse nested if
Enforce unique brain prefix via UNIQUE index (#160 )
NULL out test-brain.prefix so get_prefix falls through to brain_meta
Set_prefix should target only the (unscoped) sentinel
Set_prefix helper must also target the (unscoped) sentinel
Apply prefix disambiguation to the init path and target test helper
Auto-disambiguate brain prefix on registration
Enforce unique brain prefix via UNIQUE index
Declare test-utils on brain-lib in dev-deps for sharded CI
Address PR review on cycle-detection move
Compute child_seq in set_parent / create_child_task helpers
Correct entity_links INSERT column name and timestamp format
Documentation
Correct stale crate-level claims post-migration
Document continues parameter and thread-building in mem-write (#150 )
Features
Add brain_id parameter to scope consolidation
Wire records.search + records.fetch_content RPCs (#175 )
Wire records.search + records.fetch_content RPCs (#174 )
Wire records.search + records.fetch_content RPCs
Wire MetricsSnapshot + JobSummary lifecycle fields
Migrate remaining tool clusters (Phase D batches 2-7)
Migrate misc cluster (Phase D batch 1)
Production binary forwarder (Phase F)
Scaffold context/dispatch/server/handle/entry (Phase B/C)
Wire TasksApplyEvent dispatcher arm
Wire TasksDepsBatch dispatcher arm
Wire TasksLabelsBatch dispatcher arm
Wire TagsRecluster dispatcher arm
Wire 10 new dispatcher arms (links / records / brains / labels)
Scaffold new crate for MCP server extraction
Add typed DaemonClient methods + round-trip tests for new wire variants
Add wire variants for links / record mutations / task batch / walk / recluster / brains
Scaffold new crate for episodic memory domain
Move file-watcher supervisor into brain-daemon (#167 )
Spawn watcher supervisor inside brain-daemon
Wire every active CLI family through brain-daemon (Stage 3) (#166 )
Wire tags, jobs, status, provider through DaemonClient
Wire memory family through DaemonClient
Wire sagas family through DaemonClient
Wire records family through DaemonClient
Wire tasks family through DaemonClient with auto-spawn
Typed methods on DaemonClient (#165 )
Typed methods on DaemonClient
Add brain_rpc + brain_daemon (centralized-writer foundation) (#163 )
Route brain tasks list through brain-daemon (--remote)
Add brain_daemon crate + brain-daemon binary
Add brain_rpc contract crate
Typed write API — RecordStore::create_* hides event construction
Introduce Task domain type and thread through cli/MCP
Add records-archive, records-fetch-content, records-get, and records-list skills
Add tasks-transfer, tasks-create-remote, and tasks-labels-summary skills
Cascade flag on add_tasks / remove_tasks for subtree membership (#149 )
Compact saga-<hex> short IDs alongside ULID (#147 )
Refactoring
Extract brain_mcp crate (#172 )
Complete brain_mcp crate extraction
Replace McpContext bootstrap handle with direct search_layer + metrics accessors
Move protocol + saga_validation from brain_lib
Brain_memory crate + brain_rpc wire variants (#171 )
Rewire memory handlers to call brain_memory directly
Relocate memory.retrieve business logic
Relocate memory.reflect business logic + introduce SemanticContext
Relocate memory.write_episode business logic into brain_memory
Relocate memory.consolidate business logic into brain_memory
Relocate memory.summarize_scope + memory.write_procedure business logic
Relocate memory.walk_thread business logic into brain_memory
Extract brain_retrieval domain crate (#170 )
Extract brain_retrieval domain crate
Extract brain_tags domain crate (#169 )
Extract brain_tags domain crate
Take (&Db, &str) on run_recluster (#168 )
Bundle run_inner args into resource/metadata structs
Take (&Db, &str) on run_recluster
Collapse watch + daemon-start to thin RPC clients
Consolidate tasks-family connect_or_spawn onto rpc_client helper
Extract shared test helpers to tests/common/mod.rs
Extract brain_records domain crate (#162 )
Land round-4 review blockers
Seal the domain boundary — typed methods + private queries
Land triangulated review findings
Deslop pass after review
Drop pub mod records from brain_lib; delete duplicate
Switch BrainStores + 8 call sites to brain_records
Typed read API — Store returns Record, not RecordRow
Move records source into brain_records crate
Extract brain_sagas domain crate (#161 )
Tighten domain layer after round-3 review
Expose domain::* layer; eliminate persistence row leaks
Tighten lifecycle encapsulation after round-2 review
Lift lifecycle orchestration into typed helpers
Tighten extraction after adversarial review
Eliminate raw SQL from brain_sagas tests
Extract brain_sagas domain crate
Move dependency cycle detection into brain_tasks (#159 )
Move dependency cycle detection into brain_tasks
Relocate task projection + introduce Task domain type (#158 )
Move event types and projection dispatcher to brain_tasks
Break event-type cycle via direct writer calls
Extract per-event task SQL writers
Drop the brain_lib::tasks alias (#157 )
Drop the pub use brain_tasks as tasks alias
Extract brain_tasks domain crate from brain_lib (#156 )
Wire brain_tasks into workspace + update imports
Extract brain_tasks domain crate from brain_lib
Gate candle behind optional embed feature (#155 )
Extract brain_embedder crate to quarantine candle dependency (#153 )
Extract brain_core crate and split ports/ along driven/driving boundary (#151 )
Bundle SessionStart into Rust subcommand; replace per-turn UserPromptSubmit dump (#152 )
Testing
Add BrainStoresDispatcher round-trip tests to round_trip.rs
Mirror embed feature for 2-arg BrainStoresDispatcher::new
Integration harness + smoke tests (Phase E)
Bump PROTOCOL_VERSION assertion to 2
Install brain 0.4.2
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/benediktms/brain/releases/download/v0.4.2/brain-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install benediktms/brain/brain
Download brain 0.4.2
Read more
0.4.1 - 2026-05-12
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
Place marketplace.json and plugin.json under .claude-plugin/ (#142 )
Documentation
Correct architecture + document brain CLI prerequisite (#144 )
Document skill-naming convention (#143 )
Document unified Claude Code plugin install flow (#140 )
Features
Add the sagas skill set
Add mem-thread skill for continues-edge episode walking
Add typed record creator skills
Print Claude Code plugin install hint after successful init (#139 )
Introduce unified brain plugin with single marketplace.json (#138 )
Install brain 0.4.1
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/benediktms/brain/releases/download/v0.4.1/brain-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install benediktms/brain/brain
Download brain 0.4.1
0.4.0 - 2026-05-07
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
Make force_optimize unconditional and wire startup_compact at boot (#119 )
Prune notify watcher walk to skip node_modules/.git/build
Documentation
Add instructions to set current git user as task assignee
Features
Saga implementation (#123 )
Make notes indexing opt-in by default (#122 )
Honour --older-than on LanceDB side via aggressive version prune (#121 )
Memory.thread — read-side complement to continues (#120 )
Episode threading via continues edge + typed shortcut (#118 )
Add collect_linked_episode_set BFS helper (#117 )
Inline links parameter on memory write tools + docs (#116 )
Expose consecutive_resets accessors on EmbeddingResetter
Replace fixed self-heal backoff with exponential schedule
Install brain 0.4.0
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/benediktms/brain/releases/download/v0.4.0/brain-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install benediktms/brain/brain
Download brain 0.4.0
0.3.9 - 2026-05-02
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
Close out daemon CPU regression (#115 )
Reduce daemon CPU usage (#113 )
Bound git directory cache with LRU eviction (#110 )
Features
Add Codex plugin target (#114 )
Support editing existing task comments (brn-e1d) (#112 )
Polymorphic graph wave 6 — deferred readers + MCP dedup + dual-read comparator (#111 )
Introduce entity_links polymorphic edge table (Wave 1) (#109 )
Bounded log rotation + EnvFilter scoping (#108 )
Install brain 0.3.9
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/benediktms/brain/releases/download/v0.3.9/brain-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install benediktms/brain/brain
Download brain 0.3.9
0.3.8 - 2026-05-01
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
Make BRAIN_HOME authoritative for path resolution (#104 )
Retrieval includes vetted band, not just trusted
Handle nested transcript format and write vetted trust
Emit minimal ack for Stop/PreCompact (no hookSpecificOutput)
Features
Cwd-based brain inference + show unscoped brain in list (#107 )
Cross-brain task transfer (preserve-ID) (#106 )
Auto-attach git worktrees to existing brain (#103 )
Deepen Claude Code hook integration
PreToolUse:Edit|Write injects file-scoped memory (opt-in)
Stop hook captures session episode from transcript
Replace PreCompact stub with edited-files snapshot
Add --output=hook-envelope and --frame=safety output flags
Summarize hooks in dry-run output (#102 )
Hook-injection sanitization (brn-5da.9) (#101 )
Trust/provenance schema for hook-ingested records (brn-5da.8) (#100 )
Canonicalize plugin templates (brn-5da.6) (#99 )
Refactoring
Remove legacy CLI surface and clean up dead code (#98 )
Remove legacy search_minimal and expand tools (#97 )
Install brain 0.3.8
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/benediktms/brain/releases/download/v0.3.8/brain-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install benediktms/brain/brain
Download brain 0.3.8
0.3.7 - 2026-04-29
Compare
Sorry, something went wrong.
No results found
Release Notes
Features
Cross-brain deps + first-class external blockers gate readiness (#96 )
CLI plumbing for memory.retrieve (brn-83a.6.4) (#95 )
Explainability fields + deterministic packing (brn-83a.6.3) (#94 )
Install brain 0.3.7
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/benediktms/brain/releases/download/v0.3.7/brain-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install benediktms/brain/brain
Download brain 0.3.7
0.3.6 - 2026-04-29
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
Hardening from review of brn-83a.7.2.5/.8
Brain-scoping helpers + federated reads (brn-a3e) (#93 )
Address code review — :0 suffix, dedup helpers, pub(crate) visibility
Address code review findings for federated LOD (brn-83a.5.4)
Address code review findings for explainability and frontmatter
Address code review findings for frontmatter signals
Wire search layer into daemon McpContext for IPC dispatch (brn-3d9)
Harden test_auto_index_on_optimize for CI
Harden flaky perf tests for CI reliability
Prevent dotfile directory names from becoming brain names
Resolve clippy warnings and doctest failure on master
Documentation
Clarify ordering invariant test bound (brn-83a.7.2.4.4)
Update AGENTS.md and init.rs MCP docs
Update README and RECORDS.md for typed taxonomy
Update SKILL.md templates for typed tools
Features
MCP + CLI surface for manual recluster and alias inspection (brn-83a.7.2.5)
Observability instrumentation + end-to-end integration test (brn-83a.7.2.6)
Case-insensitive tag_match_score (brn-83a.7.2.4.6)
Alias-aware tag_match_score + alias_discount (brn-83a.7.2.4.4)
Expand_tags_via_aliases + filter rewiring (brn-83a.7.2.4.3)
FederatedPipeline brain_id plumbing (brn-83a.7.2.4.2)
A
TagAliasReader::alias_lookup_for_brain + MockTagAliasReader (brn-83a.7.2.4.1)
Alias_lookup_for_brain reader + seed_tag_aliases fixture (brn-83a.7.2.4.1)
Include summarizable records in tag-scope summaries
Per-kind embedding policy in create tools
[breaking ] Replace 'artifacts create' with typed CLI subcommands
[breaking ] Remove records.create_artifact tool
Scaffold documents/analyses/plans subcommands
Add records.create_plan tool
Add records.create_analysis tool
Add records.create_document tool
Migration v41->v42 normalize free-form kinds
Add LinkWriter, EmbeddingOps, BrainManager port traits
Use content-aware L0 abstract for immediate record creation path
Unify record L0 generation for immediate and poll paths
L0 generation and lod_chunks for reflections
L0 generation + lod_chunks for episodes
Wire record capsules into lod_chunks as L0 entries (brn-83a.5.5.2)
Wire task capsules into lod_chunks as L0 entries (brn-83a.5.5.1)
Cross-brain LOD resolution in federated retrieve (brn-83a.5.4)
Frontmatter signals & retrieve explainability (brn-83a.6.3)
Wire explain through federated search and expose fusion_confidence (brn-83a.6.3.2)
Extract YAML frontmatter tags/importance for independent ranking signals (brn-83a.6.3.1)
Implement Retrieve+ LOD storage and unified retrieve tool (#92 )
Refactoring
Lift EMBEDDER_VERSION onto Embed trait (brn-83a.7.2.8)
Derive searchable flag from KindPolicy in projections
Redesign RecordKind enum with KindPolicy
Address branch review feedback
Remove public db() from RecordStore and TaskStore
Remove public db() accessor from IndexPipeline
Remove public db() accessor from BrainStores
Parameterize upsert_domain_lod_l0 over LodChunkStore
Pass &ctx.stores to enqueue_cluster_summarization
Impl JobQueue and DerivedSummaryStore for BrainStores
Add query_pipeline helper to BrainStores
Add resolve_brain delegation and BrainRegistry impl
Parameterize IndexPipeline over port traits
Fix boundary violations — use BrainStores delegation
Testing
Pin federated exclude isolation + empty brain_id (brn-83a.7.2.4.7)
Strengthen audit invariant from count to content (brn-83a.7.2.4.5)
Regression suite — audit invariant + federated isolation (brn-83a.7.2.4.5)
Migration v41->v42 fixture DB tests
Integration tests for typed creation + policy
Install brain 0.3.6
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/benediktms/brain/releases/download/v0.3.6/brain-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install benediktms/brain/brain
Download brain 0.3.6
0.3.5 - 2026-03-31
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
Prevent daemon restart race from deleting new daemon's socket
Fall back to BRAIN_HOME when MCP server can't resolve brain from cwd or registry
Resolve brain name from registry for MCP server
Raise optimize threshold to 5k rows / 10min — prevent OOM during bulk re-index
Raise MIN_ROWS_FOR_INDEX to 100k — prevent OOM during auto-index
Disable startup compaction — too memory-heavy for 28 brains
Defer LanceDB cleanup to vacuum, avoid memory spike during scan
Scope full_scan deletion by brain_id + batch LanceDB deletes
Full_scan now soft-deletes files absent from scan results
Add startup compaction to reduce LanceDB fragment memory bloat
Scope embed_poll_sweep by brain_id + cap concurrent jobs
Remediate reflection_sources FK references pointing to stale summaries_v27
Address clippy warnings from just lint (-D warnings)
Address code review findings from brain_id scoping
Remove module aliases and rusqlite params from production code
Remove invalid disallowed-methods entry
Remove needless borrows flagged by clippy
Replace silent error swallowing with explicit handling across MCP tools
Versioned hooks/ dir with core.hooksPath for worktree support
Handle custom merge format without 'branch' keyword
Documentation
Update search_minimal docs with new filter params and result kinds
Update scoping model and workspace layout for brain_id on files/chunks
Rewrite README and ARCHITECTURE for task-management-first framing
Features
Canonical metadata facets & time-scope filters (brn-83a.7.1)
Unified LanceDB vector store — single store with brain_id scoping
Thread brain_id through indexing pipeline + fix CLI boundary imports
Add brain_id filtering to FTS search queries
Add brain_id to files/chunks tables (v36→v37)
Refactoring
Enforce port-trait boundary in MCP handlers
Remove direct db access, add clippy.toml enforcement
Extract SQL helpers, add test harness, audit unwraps
Wire ranking signals, async summary embedding, scoping docs, port traits
Delete dead inline consolidation scheduler
Testing
Add handler tests and remove all unwraps
Install brain 0.3.5
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/benediktms/brain/releases/download/v0.3.5/brain-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install benediktms/brain/brain
Download brain 0.3.5
0.3.4 - 2026-03-28
Compare
Sorry, something went wrong.
No results found
Release Notes
Bug Fixes
Use per-marketplace layout for Claude Code discovery
DB is source of truth, rename config.toml → state_projection.toml (#brn-990)
Features
Domain-scoped Claude Code plugins with skills format (#91 )
Install brain 0.3.4
Install prebuilt binaries via shell script
curl --proto ' =https' --tlsv1.2 -LsSf https://github.com/benediktms/brain/releases/download/v0.3.4/brain-installer.sh | sh
Install prebuilt binaries via Homebrew
brew install benediktms/brain/brain
Download brain 0.3.4