Skip to content

v2.8.0 — 16 brain subsystems + v2 MCP tool surface

Latest

Choose a tag to compare

@TSchonleber TSchonleber released this 20 May 20:35
· 9 commits to main since this release
789b473

This release lands the issue #116 brain-architecture work and consolidates the MCP tool surface to fit harness caps. Supersedes overnight PRs #120#137 as a single artifact (PR #138).

Added — 16 brain-region / nucleus subsystems (Phase 1)

Migrations 067–082 introduce schemas + dispatch for:

  • 067 locus coeruleus — phasic NE surprise gain (Aston-Jones–Cohen)
  • 068 nucleus basalis — phasic ACh attention gating; adds bg_modulators.acetylcholine
  • 069 ARAS — arousal / sleep-wake transitions
  • 070 habenula — negative-prediction "no-go" signal
  • 071 hippocampus CA1 + subiculum — mismatch detection / output
  • 072 workspace bandwidth — global-workspace throttling
  • 073 connectome — explicit inter-region graph
  • 074 sleep architecture — REM / NREM cycle tracking
  • 075 VTA / SNc — dopamine pathway log
  • 076 septum theta — hippocampal theta pacing
  • 077 raphe — serotonin
  • 078 memory aging — synaptic tagging-and-capture (Frey & Morris)
  • 079 claustrum — multimodal binding
  • 080 colliculi — orienting response
  • 081 mammillary — Papez-circuit transit log
  • 082 olfactory — single-trial valence imprinting

Each subsystem ships an mcp_tools_*.py module, design proposal in docs/proposals/, and matching pytest module.

Changed — MCP tool surface v2 (hard cutover, 370 → 100 visible)

Consolidated the public MCP tool surface from 370 named tools to 100 visible via 35 action-discriminated dispatchers. v1 tool names remain callable internally; rollback is a one-line filter removal. Full v1→v2 mapping in docs/TOOL_MIGRATION_V2.md.

Call pattern:

subsystem_list()                                    // discover
subsystem_list_actions(name="lc")                   // discover actions for LC
subsystem_emit(name="lc", action="fire",
               payload={"trigger_name":"x", "surprise_magnitude":0.7})
belief(action="collapse", payload={...})
trust(action="show", payload={"agent_id":"me"})

Why: many MCP harnesses cap at ~100 visible tools, and ~370 tool descriptions in every system prompt was burning ~50k tokens before any agent work began. v2 cuts that to ~12k tokens.

Added — Windows CI smoke

test-windows (3.12) job verifies brainctl init + core test subset on windows-latest. Currently continue-on-error: true; promotion to required after 2–3 green PRs.

Fixed — UTF-8 read for SQL files (Windows hardening)

Path.read_text(encoding="utf-8") explicit on every SQL-ingest site (_impl.py, brain.py, migrate.py ×3). Previously the system locale encoding was used, which crashed on em-dashes / arrows / γ in init_schema.sql on Windows cp1252 locales.

Fixed — fresh brainctl init includes every migration

init_schema.sql now contains migrations 067–082 inlined, and cmd_init calls migrate.run() after executescript() as defense in depth. acetylcholine is declared inline in the bg_modulators CREATE TABLE to avoid a SQLite-version-dependent backfill quirk that left the column NULL on CI Linux SQLite 3.31.

Install

pip install brainctl==2.8.0
pip install brainctl[mcp]==2.8.0      # MCP server (stdio + HTTP)
pip install brainctl[all]==2.8.0      # everything

Bundle credit

This release supersedes 17 overnight PRs: #120 through #137 plus #138. PRs #139 onward continue against main.