Releases: kinqsradiollc/BrainRouter
Release list
0.4.17
0.4.17 — 2026-07-30
0.4.17 completes project-aware onboarding and source-grounded Project
knowledge across the shared runtime, CLI, Desktop, Dashboard, and brain.
Added
- Conversational workspace setup. Users can describe a project or start
from a preset, review the proposed agent, capabilities, skills, tools, memory
posture, and optional instruction change, then explicitly confirm every
write. Bounded repository scanning provides an offline fallback. - Two ordered onboarding flows. Provider, model, MCP, and preference setup
remains global; project setup runs once per workspace, can be skipped without
writing, and can be reopened from the CLI or Desktop settings. - Typed workspace profiles. A committable, secret-free
.brainrouter/workspace.jsoncarries reviewed project intent while preserving
safe forward-compatible fields and exact no-manifest behavior. - Project knowledge. Organization- and Project-scoped knowledge bases now
support bounded text, Markdown, HTML, PDF, and DOCX ingestion; asynchronous
parsing and optional embeddings; status and scoped retry; hybrid retrieval;
and source citations. - Knowledge clients. The Dashboard Knowledge Library and Desktop Project
knowledge panel support base creation, local upload, document status/retry,
and citation-backed search with stale-request cancellation. - Profile capability packs. Research, data science, study, and writing
profiles can activate their own reviewed specialist definitions. Frontend
remains an engineering capability and contributes design-system,
accessibility, responsive-layout, and visual-verification skills. - Mid-turn Queue and Steer. Desktop and CLI can visibly queue a follow-up
behind the active turn or steer it at the next safe model boundary. Both
delivery modes share one protocol and preserve model tool-call pairing. - Background pull-request observation. Engineering workspaces can start a
bounded, non-blocking watcher for checks, reviews, and comments. Material
changes steer the originating CLI or Desktop session, allowing the active
agent to diagnose failed CI without pausing the conversation or goal. - Stable agent work identity. Durable plans now carry schema revisions and
host-owned task IDs that survive rewording and reordering. - Profile planning schemas. Engineering, research, data science, study,
writing, and custom workspaces resolve separate validated planning artifacts,
gates, and workflow-skill requirements. Known catalog selections are
overridable; unknown selections fail back to the profile default. - Reference-only Work Contracts. A revisioned session contract links plan
tasks to requirements and future evidence/review records without copying
their authoritative content. Existing plans migrate conservatively on read. - Durable steering intake. When a Steer reaches the model-safe boundary,
core records one pending Work Contract receipt with its source, prior
revision, timestamp, and bounded summary. Delivery no longer disappears into
prompt history before semantic reconciliation can be audited. A typed
reconciliation step now distinguishes clarification, plan change, evidence,
and goal conflict; extension observations remain evidence-only, and other
tools fail closed until classification or the matching plan revision is
stored. CLI notices and Desktop message badges expose the receipt status,
classification, user-input requirement, and resulting plan revision through
one shared host protocol.
Changed
- One engineering identity.
engineeris the only engineering persona.
Frontend support activates from the current task and file signals, including
independently delegated work, without creating a second agent identity. - Capability-aware runtime. Root and delegated agents resolve domain
identity, capabilities, skills, tool profiles, briefing hints, and memory
tags per task. Required profile stages now activate their declared skills in
order, narrow the live tool surface, launch the plan-owned delegated role,
validate its selected output sections, and unlock dependencies only after
accepted results. Existing access mode, role, allowlist, and deny rules
remain authoritative. CLI and Desktop now show the selected profile,
strategy, selection source, stage owner/state, and active stage skill from
one typed runtime event. - Complete profile tool contracts. Research workspaces can inspect project
folders, use Project Knowledge and Memory Context, write source-backed notes
and artifacts, and navigate dynamic sources through a bounded interactive
browser. Reviewed optional capabilities now activate their task-specific tool
groups in explicit-catalog workspaces without accepting arbitrary,
incompatible, or disabled additions. - Profile-aware project initialization. Asking to set up a project or
workspace now activates the selected profile's planning contract before the
first write. Research setup language remains with the primary researcher
instead of being misclassified as evidence collection. - Consistent setup recommendations. Desktop source development and the
packaged host now derive capability and tool-group choices from the same Core
catalog. Desktop can apply all selectable recommended additions in one
action, while CLI pickers distinguish recommended additions from selections
already present in the workspace draft. When editing an existing workspace,
Desktop now labels repository detection as a folder suggestion and states the
selected profile explicitly, so an empty configured folder cannot appear to
have silently changed profiles. - Inspectable personality inheritance. Desktop and CLI now label the
workspace choice as Automatic and show whether its effective communication
style came from a global default, profile recommendation, or fallback. - Safer contributor loop. Small PRs use focused local tests, lint, and
typecheck; the complete hosted CI suite remains the required merge gate.
Local full verification is reserved for cross-cutting/high-risk,
release/publish, and CI-parity work. - Profile-selected quality workflows. Contributor guidance now keeps
authority invariants global while Planning, ADR, code review, and boundary
cleanup procedures stay in focused skills. Model-neutral activation fixtures
cover profile, task, goal, security-decision, custom-schema, and no-op paths. - Curated browser-safe Core imports. Desktop renderer consumers now use
focused package exports for pure catalogs, policies, graphs, diffs,
frameworks, and prototype helpers. The compiled-path wildcard and renderer
lint exception are removed, and extension documentation now uses the curated
extension export. - Smaller package boundaries. Runtime-plane configuration contracts and
pure normalizers now live in a focused core module behind the unchanged
configuration exports. - Smaller worktree boundary. Worktree isolation contracts and merge-back
presentation now live in focused Core modules behind the unchanged public
entrypoint. Policy and recovery services now call one privileged Node host
adapter for Git, filesystem, configuration, and state paths without changing
isolation or merge-back behavior. - Typed native-terminal boundary. Desktop terminal shell catalogs, session
snapshots, and incremental reads now cross one bounded host-neutral protocol;
Core owns deterministic geometry and reattachment policy while Electron
retains executable discovery, environment access, native PTY allocation, and
process lifecycle. - Isolated background-shell host. Background command registry, polling, and
cancellation policy now call one private host port; detached process
creation, workspace logs, random identity, clocks, process-tree signals, and
host-exit cleanup remain in the privileged Node adapter. - Isolated durable-task host. Background-task transitions, filtering,
retention, and orphan reconciliation keep their existing workspace-scoped
API while persistence, random identity, clocks, owner PID, and process
liveness move behind one private Node host. - Explicit connector runtime host. Shared checkpoint policy now receives
environment-token and current-directory context through a host-neutral
contract while source network/filesystem clients and workspace persistence
remain explicit adapters. - Port-driven storage service. Workspace-scoped checkpoint and
file-mutation persistence now sit behind an injectable port, while shared
records and deterministic restore planning remain host-independent behind
the existing storage entrypoints. - Injectable execution host. Local, WSL, and SSH command validation and
argv planning remain deterministic, while process creation and environment
access now live behind an injected Node host adapter. - Isolated worktree-awareness host. Passive sibling-worktree parsing and
bounded prompt context now call an injected host; Git process creation and
timeout remain in the private Node adapter. - Smaller agent completion boundary. Model-answer normalization now lives
behind a focused runtime phase while the Agent facade retains turn capture,
hook, telemetry, usage, and transcript ordering. - Focused agent context preparation. Pre-turn compaction, recall, prompt
hooks, planning hints, goal and skill anchors, and child completion feedback
now run behind one typed phase boundary before model invocation. - Paired tool-call repair. Duplicate, truncated, scavenged, and
storm-suppressed model tool calls now pass through a focused repair phase
that records assistant calls and synthetic results in protocol-safe order. - Central tool authorization. Sk...
0.4.16
0.4.16 — The autonomous fleet, the unified desktop, and a Postgres brain
Shipped — 2026-07-01. Tagged
v0.4.16and published to npm.
0.4.16 is the largest release since the memory engine landed. It grows
BrainRouter along four big arcs at once: an autonomous fleet that can drain a
queue of migrations across many repos as isolated, verified PRs; a unified
desktop workspace where Chat · Track · Code become full first-class modes with
a Write workspace, prototype generation, a visual workflow canvas, and a
Memory panel; Track matures into a Jira/Plane-class board with a headline
bidirectional 3-way GitHub Issues sync; and the brain moves onto PostgreSQL +
pgvector behind a fully async engine — with a remote-brain runtime and an
Atlas codebase knowledge graph riding on top. Underneath it all, packages/core
gets a machine-enforced public-API boundary so the CLI, Desktop, brain, and
fleet all consume one curated surface instead of deep-importing build artifacts.
Fleet automation — the Honk program (H0–H4, L1–L7)
BrainRouter can now run one change across a whole fleet of repos unattended, as N
isolated and independently-verified pull requests — and drive weak/local models
reliably enough to do the coding.
- Durable global fleet job queue + runner (H3.1a). A file-backed, retryable
queue of fleet jobs with a single runner loop that drains it — jobs survive
host restarts, so a long multi-repo migration picks up exactly where it left
off instead of starting over. - Single-runner host lock (H3). A host-level lock guards the drain loop so
only one runner processes the queue at a time — two desktops or a desktop + a
cron job pointed at the same brain can't double-run a job or race on a worktree. - Fleet fan-out + PR-emitting build executor + status read-model (H3.2/H4).
The executor fans a job out across its target repos, runs the build loop in
each, and emits the result as a PR; a separate status read-model aggregates
per-repo state (queued · running · passed · failed · PR-opened) so a run is
observable without tailing logs. - Recipe fleet executor — isolated-worktree codemod → PR (H3.2). A "recipe"
applies a codemod inside an isolated worktree per repo, verifies it, and opens a
PR — the mechanism behind applying the same change to many repositories as
clean, reviewable diffs. brainrouter fleetrun / status / drain (H4). The CLI drives live
multi-repo migrations:runenqueues a job across its targets,statusreads
the aggregated read-model, anddrainprocesses the queue to completion.- MCP fleet surface. The agent can start and inspect fleet runs over MCP
(start-a-run + read-status tools), so a supervising agent orchestrates the fleet
the same way it manages the board or the plan. - PR from a successful build loop (H1). Opt-in
cli.buildLoopEmitPr: a
passing/buildis delivered as a draft GitHub PR from an isolated worktree,
with a unique branch name, redaction, a safe base-ref, and no-hang guards baked
in — so a green build becomes a reviewable PR without a manual push. - Requirements-intake agent + self-contained delegation packet (H2.1). A
role that turns a raw request into a structured requirement, then hands each
delegated worker a self-contained packet (everything the child needs, no
back-channel to the parent) so unattended workers don't stall waiting for
context. - Un-opt-out-able sandbox + secret-env scoping for fleet roles (H0). For
unattended roles the sandbox cannot be disabled, and secret environment
variables are scoped to the role that needs them — an autonomous worker can't
turn off its own guardrails or read a secret outside its lane. - Local-model bounded harness (L1–L7). A profile that makes a weak/local
model usable as a coding worker: a bounded-harness profile (L1/L7) caps the
run; a hard tool allowlist (L2) removes tools it would misuse; a
schema-flatten pass (L3) rewrites nested tool schemas into the shallow shapes
local models handle; a drop-and-retry fallback incallOpenAI(L4) sheds
thetoolspayload and retries when a server rejects it; and a verify-loop
nudge + router tier bias (L5/L6) pushes the model back to green and biases the
router toward the right tier. - Fleet console on the dashboard (H3.3). The CLI pushes fleet snapshots to the
brain (store-and-serve API), and the dashboard reads them — a live console for
what the fleet is doing across every repo, from anywhere the brain is reachable. - Dependency-free pre-commit lint hook + installer (R0.3). A zero-dependency
pre-commit hook (plus its installer) keeps fleet-authored and human commits from
landing lint failures.
Desktop unified workspace — Chat · Track · Code become full modes
The three-mode workspace introduced in 0.4.15 grows into a genuine
Chat · Track · Code product: a Markdown/Monaco Write mode, in-app
prototype generation, a visual workflow canvas, a Memory panel, and
system-level polish.
Write mode (W1–W6)
- Markdown writing workspace on Monaco (W1). A real editor surface for prose
and docs — not the chat composer — with a per-workspace writing thread. - Diff-review primitive + selection inline AI (W2/W3). Review a proposed edit
as a diff before accepting; select any span and ask the AI to act on just that
selection. - Ghost-text (W4). Inline, accept-on-tab continuations while you write.
- Workspace-grounded assistant + per-workspace thread (W5). The Write
assistant is grounded in the workspace's files and keeps its own thread, so it
answers about this document set, not a blank chat. - DOC/HTML export + copy-as-rich-text (W6). Export the document to HTML or
DOC, or copy it as rich text to paste elsewhere with formatting intact.
Interactive prototype generation (D2–D4)
- Prototype detection + auth-gate (D2/D3). BrainRouter detects when a turn
produced an interactive HTML prototype and gates it behind an explicit enable
step instead of running arbitrary generated markup silently. - Sandboxed-webview render (D3). Prototypes render in a locked-down webview,
isolated from the app. - Design-context editor + prompt composer (D4). Steer generation with a
design-context block and a dedicated prompt composer so the prototype matches
the intended look and behaviour. - Placeholder resolve-and-swap in Artifacts (D2). Generated placeholders
resolve and swap into the Artifacts preview, so a scaffold fills in with real
content in place.
Visual workflow canvas (L1–L4)
- Workflow graph DSL + execution engine (L2). A visual-workflow graph
language with an execution engine — nodes and edges that actually run. - Canvas UI + advanced nodes (L1/L3). A drag-and-connect canvas with advanced
node types wired to the engine. - Durable canvas persistence +
run_workflow_graph(L4). A workflow graph
store persists a canvas, and a newrun_workflow_graphagent tool makes a
saved graph callable as a tool — so a hand-built visual workflow becomes
something the agent can invoke by name.
Desktop platform & UX
- Memory panel (§5.3). Search the brain's memory engine directly from the
desktop — inspect what the brain knows without dropping to the CLI. - System tray with dynamic session menu (§5.8). A tray icon whose menu lists
live sessions, so you can jump to a running chat from the OS chrome. - Customizable keyboard shortcuts (§5.9). A shortcut registry with template
expansion (core) plus a rebind-and-persist UI (desktop) — remap keys and keep
them across restarts. - @-mention workspace-file picker (§5.7). Type
@in the composer to pick a
workspace file into the prompt; a global code prompt-prefix knob rounds it out. - Settings → Tools — enable/disable built-in & MCP tools (§5.10). A per-tool
enable/disable policy (cli.toolOverrides, core) with a desktop UI, where core
tools stay protected so you can't disable the agent's ability to function. - Per-session model fix. Picking a model in one chat no longer syncs that
pick to every other chat — model choice is per-session. - VS Code-grade Editor fold-in. Docs folded into a full Editor with unified
canvas controls and capped auto-compaction; Monaco is themed from a
hex-normalized palette and Write/Workflows reflow when the window is narrow. - Automated signed-build pipeline (CP-B). A signed macOS build pipeline with
packaged-build verification, backed by the notarization scaffold — so releases
ship as a trusted, verifiable app. - UX hardening. A top-level error boundary, friendly 5-card permission modes
in Settings, hooks-phase parity (glob matchers + post-tool/prompt rewrite),
per-turn git checkpoint + rollback, PM-framework buttons in the Requirements
panel, and a batch of picker/menu/z-index/layout fixes.
Track — a Jira/Plane-class board with bidirectional GitHub sync
Track grows from the 0.4.15 board into a full project-management surface, aligned
to the lifecycle model and finished with a true two-way GitHub Issues sync.
- Work-item model aligned to lifecycle (T-align). Items carry lifecycle
status groups, priority, dates, and an archive state, so the board maps
onto the same lifecycle the rest of BrainRouter uses. - Multiple assignees + a first-class label registry. Items support multiple
assignees, and labels are a managed registry (not free-typed strings) with
stable identity and colour. - Modules + extended issue relations. A Modules model groups work, plus
richer issue relations (blocks/relates/etc.) — surfaced end-to-end through a
Modules tab. - **Calendar / Gantt / spreadsheet la...
v0.4.15
BrainRouter 0.4.15 (2026-06-22).
Highlights
- Requirement-first workflow — requirement → plan → durable task → review/annotation → verification → memory, all provenance-tracked through the existing memory pipeline.
- Unified workspace — Chat · Track · Code modes from a left-sidebar switcher; Track is a code-aware, Jira-class board per workspace (Board/List/Backlog/Sprint/Roadmap/Reports/Automation/Members/Sync · JQL · automation rules · per-project roles · GitHub Issues sync).
- Desktop UI pass — Graphite Mono theme, colour-toned tool rows with clickable paths, end-of-turn changeset card, live Context panel (token + cache/compaction/memory savings).
- Closing UX & reliability program — idle child auto-resume, destructive-command guard, MCP auto-reconnect + brain/tools split, provider gallery with live
/models, cross-session usage heatmap, stop-workflow, rewind, cross-workspace session menu. - Steadier core — bounded reranker/embedding timeouts + circuit breaker, non-blocking capture, strict tool-call pairing fix (the 2013 error), injection-surface + tenancy hardening.
Full notes: brainrouter-changelog/0.4.15.md
What's Changed
- docs: 0.4.15 plan — The Agent Behind the Glass by @kinqsradio in #348
- docs: 0.4.15 plan v2 — full twelve-subsystem blueprint by @kinqsradio in #349
- feat(benchmark): CC-P8.1 agent-behavior metrics + cli:behavior suite by @kinqsradio in #350
- feat(tui): CC-P1.1 line-level virtual scrolling by @kinqsradio in #351
- feat(agent): CC-P6.2 deliverable guardrail — turns end on the result, not a deferral by @kinqsradio in #352
- feat(agent): CC-P6.4 read-before-edit + unique-match edit contract by @kinqsradio in #354
- feat(agent): CC-P6.8 denied-tool semantics — adjust, don't retry by @kinqsradio in #353
- feat(agent): CC-P9.2 task-tracking harness nudge by @kinqsradio in #355
- feat(cli): CC-P1.6 /export-chat — export session transcript (md/json) by @kinqsradio in #356
- feat(agent): CC-P7.3 read_file truncation contract by @kinqsradio in #357
- feat(agent): CC-P6.5 verification-before-done gate by @kinqsradio in #358
- feat(cli): CC-P1.4 /find — transcript search by @kinqsradio in #359
- feat(cli): CC-P4.1 markdown slash commands (.brainrouter/commands) by @kinqsradio in #360
- feat(agent): CC-P3.2 declarative cli.permissions allow/deny rules by @kinqsradio in #361
- feat(cli): CC-P2.4 /recap — instant session summary by @kinqsradio in #362
- feat(cli): CC-P2.1 --continue / --resume launch flags by @kinqsradio in #363
- feat(agent): CC-P11.2 wait_until — block on a workspace file condition by @kinqsradio in #364
- feat(tui): CC-P1.7 Ctrl+R reverse history search by @kinqsradio in #365
- feat(tui): CC-P1.3 Ctrl+O verbose-transcript toggle by @kinqsradio in #366
- feat(cli): CC-P4.4 '#' quick memory-capture prefix by @kinqsradio in #367
- feat(agent): CC-P11.1 background run_command + task_output by @kinqsradio in #368
- feat(cli): CC-P5.2 /usage — per-actor token breakdown by @kinqsradio in #369
- feat(agent): CC-P12.3 session chapters — mark_chapter + /chapters by @kinqsradio in #370
- feat(benchmark): CC-P8.2 decision-trace diff by @kinqsradio in #371
- feat(cli): CC-P13.2 headless flags — --max-tool-loops, --disallowed-tools by @kinqsradio in #372
- feat(agent): CC-P4.2 hook decision contracts + new events by @kinqsradio in #373
- docs: 0.4.15 thread M — BrainRouter Desktop plan by @kinqsradio in #374
- feat(protocol): DESK-0 — typed agent event/command protocol package by @kinqsradio in #375
- feat(desktop): DESK-1 — Electron shell over the unchanged CLI runtime by @kinqsradio in #376
- feat(agent): DESK-2a — cooperative turn interrupt (Stop / CC-P1.5) by @kinqsradio in #377
- feat(desktop): DESK-2b — rich chat surface (markdown, tool cards, plan) by @kinqsradio in #378
- feat(desktop): DESK-3a — InteractionPort + session/model runtime core by @kinqsradio in #379
- feat(desktop): DESK-3b/4a — approvals UI, new chat, resume, settings, workspaces by @kinqsradio in #380
- feat(desktop): DESK-4b — diff review, terminal pane, live tokens by @kinqsradio in #381
- feat(desktop): DESK-4c — workbench redesign: resizable panel columns, full command surface, CC-style settings by @kinqsradio in #382
- feat(desktop): DESK-4d — Claude-desktop visual parity: two themes, home view, sidebar pills + account row by @kinqsradio in #383
- feat(desktop): DESK-4e — live-app behaviors from the deep walkthrough by @kinqsradio in #384
- feat(desktop): DESK-5 — command bridge + provider editor by @kinqsradio in #385
- feat(desktop): DESK-4f — UX wave: streaming scroll, real code view, motion, alignment by @kinqsradio in #386
- fix(desktop): commit root lockfile for react-syntax-highlighter by @kinqsradio in #387
- feat(desktop): DESK-5b — /briefing bridge + terminal history by @kinqsradio in #388
- feat(desktop): DESK-4g — resume renders full history + responsive at every window size by @kinqsradio in #389
- feat(desktop): DESK-4h — inspect-diff with per-hunk cards + responsive repair by @kinqsradio in #390
- feat(desktop): DESK-4i — side-by-side pass: sidebar card + slim composer by @kinqsradio in #391
- feat(desktop): DESK-4j — patterns from the Codex + Antigravity study by @kinqsradio in #392
- feat(desktop): DESK-5c — file tree, real terminal, /models endpoint, accent theming by @kinqsradio in #393
- feat(desktop): DESK-4k — modern skin: SVG icon set, neutral palette, account-row polish by @kinqsradio in #394
- feat(cli): 0.4.15 engine — cooperative interrupt, questions/planning, session meta + reconcile by @kinqsradio in #396
- feat(desktop): 0.4.15 host — interrupt cascade, lazy history + cache, workflow/session queries by @kinqsradio in #397
- feat(desktop): 0.4.15 renderer — Codex-parity shell, message actions, fork lineage, responsiveness by @kinqsradio in #398
- feat(desktop): 0.4.15 chat cleanup — message actions, fork-from-message, sub-agent view by @kinqsradio in #399
- feat(cli+desktop): T4 — shared workspace/git-root resolution helper by @kinqsradio in #400
- fix(desktop): T9 — directory-aware file reads (no raw EISDIR) + diff guard by @kinqsradio in #401
- feat(cli+desktop): T1 — workspace trust in shared store + instant project add by @kinqsradio in #402
- feat(desktop): T8 — route all slash commands through the registry (never to the LLM) by @kinqsradio in #403
- feat(desktop): T3 — atomic workspace identity + stale-workspace event drop by @kinqsradio in #404
- feat(cli): T5 — per-session provider/model/MCP runtime store + layered resolution by @kinqsradio in #405
- feat(desktop): build-on-start + safe clean-reset (npm start always builds; reset:desktop) by @kinqsradio in #406
- fix(desktop): OOM — bounded transcript TAIL reads for UI (no full-file allocation) by @kinqsradio in #407
- fix(desktop): branch/git state no longer disappears on workspace switch by @kinqsradio in #408
- fix(desktop): drop stale que...
v0.4.14
0.4.14
Shipped 2026-06-10 — merged to
main, taggedv0.4.14, all 5 npm packages published.
0.4.14 is two releases in one. The memory engine got a benchmark-driven recall
overhaul (two rounds, gated by the new brainrouter-benchmark suite), and the CLI
got its new grid TUI shell: a context sidebar with a live view of every running
sub-agent, worker, and workflow — plus background workers the agent can spawn
itself and a feedback loop that reports their results back into the conversation.
Memory accuracy (rounds 1 + 2)
- Round 1 — granularity. One-record-per-session wrecked long-session
reranking/judging. Fixed by chunking on import, a length-aware reranker cap, a
judge result-floor, embed-on-import, and a transient-embed retry
(MEM-CHUNK · MEM-RERANK · MEM-JUDGE · MEM-VEC · MEM-EMBED-RETRY · ASYNC-1). - Round 2 — recall quality. The reranker/judge had been replacing the
retriever order, collapsing recall below a plain recency baseline. Every stage
now follows one rule: score → sort → take top-N, never hard-drop
(MEM-JUDGE2 · MEM-BLEND · MEM-RERANK2 · MEM-ROUTE · MEM-EVAL2). - Results (full pipeline): LongMemEval R-any@5 0.63 → 0.87, os-rm
0.73 → 0.87, ps-rm 0.00 → 0.17, LoCoMo 0.83 → 0.90, factual recall
held; reflective-query latency ~9–18s → ~0.06–6.6s. Published under
brainrouter-benchmark/reports/.
The grid TUI (#344)
- Workspace layout. View router (
home/session/workflow/mcp,
Ctrl+Tabto cycle) with a 70/30 split: chat on the left, a context sidebar on
the right (model · session · effort · mode · branch · brain/MCP status · last
memory briefs). Collapses cleanly under 100 columns. - Live fleet, split by kind. The sidebar shows running Sub-agents,
Workers, and Workflows as separate sections — each item with its role
(explorer / reviewer / …), an isolated-worktree marker (⎇), and a live elapsed
timer. Refreshes every second while anything runs. - Scrollback that fits. Markdown-aware height estimation + fill-and-clip
packing fix two long-standing rendering bugs: transcript lines overlapping the
composer/footer, and a tall response vanishing into blank space. - Scroll mode.
Esctoggles scroll mode —w/s,j/k, or arrows to
scroll line-groups,g/Gfor top/bottom,Esc/iback to typing. New
messages stick to the bottom only when you're already there. - Live timers. The thinking spinner counts elapsed seconds (amber past 10s),
and every fleet item ticks while it runs.
Background workers that report back (#344)
- The agent can spawn workers.
spawn_worker_thread(+wait_worker,
read_worker_summary,close_worker) are now model-visible tools — gated so
only a top-level orchestrator sees them (workers can't spawn workers). The
task router's long-running tier recommends them, and the system prompt explains
when a detached worker beats an in-turn sub-agent. - Results come back. A new completion inbox: when a detached worker or
fire-and-forget child finishes after the turn ended, its result is injected
into the agent's next turn — the same way an in-turn wait would have delivered
it. Explicit waits acknowledge the inbox so nothing is reported twice.
Also in 0.4.14
v0.4.13
v0.4.13
Sub-agent results that come back — completed agents now deliver their findings to the main agent automatically.
Highlights
- Background agents finish the job. When you spawn a sub-agent (or a workflow) and it completes, the main agent now picks the result back up and answers automatically — no more "✓ completed" followed by silence, and no manual
/continue. Delivery happens both by polling and the moment the agent finishes. - No more "I'll summarize later". If a sub-agent returns its findings but the model tries to defer instead of using them, a guardrail makes it synthesize the answer now.
- "Is it done?" just works. Asking about a running agent resolves the exact agent you spawned instead of guessing from a long list.
Improvements
- Parallel tool calls with the same name (e.g. two file reads at once) now show each result under its own header.
file:linecitations garbled by some smaller models are repaired automatically in the answer.- The pre-turn next-action planner runs at low effort, cutting the wait before a turn starts on slower models — still fully skippable via
cli.nextActionPlanner.
Also Included
- All five
@kinqs/*packages published at 0.4.13.
v0.4.12
v0.4.12
The Build Loop, and multi-agent runs that keep going instead of timing out.
Highlights
-
The Build Loop. A new opt-in workflow runs a task through plan → implement → verify → review → merge, with the verifier checking the worker's actual edits in an isolated worktree and a merge gate that only lands changes when verification is green and review is clean:
/build add rate limiting to the API
-
It can escalate on its own. A multi-step request can enter the loop automatically; tune it with
cli.buildLoop(off/escalate/always, defaultescalate). -
Runs reconnect instead of timing out. Model calls and the memory connection now reconnect with backoff (honoring
Retry-After) rather than failing at a hard deadline, so slow models, large reviews, and brief network blips no longer kill a run. -
The session keeps going after spawning agents. When a turn ends with background agents still working, BrainRouter waits for them and continues automatically — no more manual
/continue. -
Type while it's busy. Messages entered mid-turn are queued and run one at a time after the current turn finishes:
/queue /queue remove 2 /queue clear
Improvements
- Child and worker timeouts wait instead of killing. A timeout now only bounds how long the parent waits; the child runs to completion. Use
timeoutMs: 0to wait until done. - Fan-out builds. A build split into multiple slices runs each in its own held worktree and merges them with overlap detection; review-gate ad-hoc workers with
cli.worktreeMergeReview. - Optional loop-until-green self-repair. When
cli.buildLoopMaxRepairsis greater than 0, a failed build retries implement → verify → review until it passes (default off). - Active phase, surfaced.
/ps,/agents, and an optional statusline segment now show the running phase (e.g.Implement (2/4)). - Search actually searches.
grep_searchnow does real regular-expression matching and accepts a single file or a directory. - Accurate costs.
/tokensnow includes tokens spent by child and sub-agents.
Also Included
- Worktree garbage collection no longer removes a running child's worktree.
- Worker-thread state moved under your BrainRouter home directory.
- Workflow agents with custom role names map to the closest built-in role instead of failing.
v0.4.11
v0.4.11
Safer multi-agent workflows, self-documenting configuration, and improved memory accuracy.
Highlights
-
Worktree isolation now merges back automatically. Child agents work in isolated Git worktrees and, on successful completion, merge changes back into your working tree by default.
-
Recovery patches. Conflicting or failed child changes are preserved and can be reviewed, applied, or discarded with:
/agents diff <id>
-
Worktrees moved out of
$TMPDIR. Child workspaces now live under~/.brainrouter/worktrees/and can be relocated withcli.worktreeRoot. -
Self-documenting config. Safe
cli.*defaults automatically appear inconfig.json, making available settings visible and editable. -
Memory verification. New
/memory verifycommand andmemory_verifyMCP tool detect stale, re-anchorable, and removable code-linked memories. -
Churn-aware memory decay. Memories tied to frequently changing files now naturally decay faster than those linked to stable code.
Improvements
-
Child completion messages now clearly report merge results.
-
Added automatic cleanup for stale recovery patches.
-
Added
cli.worktreeRootconfiguration. -
Auto-chain review remains opt-in via:
/auto-chain review /auto-chain both
Also Included
-
Design specifications for:
- Per-session workspace isolation
- Build-loop workflows (plan → implement → verify → review)
v0.4.10
v0.4.10
Memory-home hardening, a fully mobile dashboard, and Cloudflare Worker deployment support.
Highlights
BRAINROUTER_HOMEsupport — relocate all BrainRouter state with a single environment variable.- Memory consolidation moved out of repos — generated memory files now live under
~/.brainrouter/workspaces/...instead of polluting project directories. - Neural Spark opt-out — disable spreading activation with
BRAINROUTER_NEURAL_SPARK_ENABLED=false. - Fully mobile-responsive dashboard — improved tables, code blocks, session views, and brain-agent panels on small screens.
- Cloudflare Worker deployment via OpenNext — full Next.js runtime support with SSR, bindings, secrets, and observability.
- Favicon + PWA assets — favicon, Apple touch icons, web manifest, and branded app icons now included.
- Published
@kinqs/brainrouter-hooks— all dashboard dependencies now resolve directly from npm.
Improvements
- Added validation to prevent memory consolidation against temporary work directories.
- Stable workspace hashing for consolidated memory storage.
- Better Cloudflare deployment workflow with OpenNext and Wrangler integration.
Deployment
- Full Next.js Worker runtime on Cloudflare
- SSR support retained
- Static assets served through Cloudflare Assets
- Updated deployment documentation
Packaging
@kinqs/brainrouter-hooksnow publicly available on npm- React peer dependency expanded to support React 18 and 19
v0.4.9
v0.4.9
A brand-new dashboard, a full Brand Studio, observable brain agents, and Cloudflare deployment support.
Highlights
- Completely redesigned dashboard built around BrainRouter's new "Memory Instrument" design system.
- New app shell with grouped navigation, sticky top bar, search, and ⌘K command palette.
- Animated Home experience explaining BrainRouter's memory architecture and recall pipeline.
- Brand Studio (
/brand) for creating release cards, banners, avatars, logos, and social content with vector-based editing and SVG export. - Brain-agent observability — previously hidden maintenance agents now run, report activity, and appear correctly in the dashboard.
- Refresh-token authentication with silent renewal, cross-tab sessions, and improved security.
- Cloudflare Workers deployment via static export with no SSR runtime required.
- Static presentation mode for marketing/demo deployments without a backend.
Improvements
- Modernized design system across all dashboard routes
- New About page and branding assets
- Platform safe-zone guides for banners and profile images
- Improved API validation, rate limiting, CORS, and JWT handling
- Graceful server shutdown and development restart fixes
Brain Updates
-
Activated:
tree_sealertree_digestsource_chunkerblackboard_reconcilerrelevance_judgebenchmark_eval
-
Added scheduling, observability, and dashboard reporting for maintenance agents.
Deployment
- Static export support for Cloudflare Workers
wranglerconfiguration and deployment tooling included
Status
- 554 brain unit tests passing
- Dashboard build: 26/26 routes
Full Changelog:
[v0.4.8...v0.4.9](https://github.com/kinqsradiollc/BrainRouter/compare/v0.4.8...v0.4.9
v0.4.8
v0.4.8
Deterministic multi-phase workflow orchestration — the headline feature. 0.4.7 made the agent reason about whether to fan out; 0.4.8 gives that reasoning a runtime to execute. Hand over a declarative plan once and the runtime drives every step — fan out N specialist children per phase, barrier-wait the whole phase, synthesize their outputs, and feed that forward into the next phase — durably persisted and crash-resumable.
Highlights
- PhasePlan + deterministic executor — a declarative plan (ordered phases; each an explicit
agentslist or afanOutover targets;inputFrom/dependsOn/synthesize) executed by a runtime engine: spawn each phase's children, barrier-wait, synthesize, inject as{{input}}downstream. The runtime drives the spawns, not the model. - Durable + crash-resumable runs — a phase-aware ledger survives restarts; a crash flips the in-flight phase to
interrupted, and a run resumes from its failed phase (completed phases skipped, their output fed forward). run_workflowtool + templates — one call runs a plan or a built-incompare/review-wide/researchtemplate; the runtime fans out incli.maxConcurrentChildrenwaves.- The system runs it for you — when the next-action planner picks the
workflowstrategy it emits a validatedPhasePlanand the agent fires a singlerun_workflowcall: it fans out by itself instead of single-threading. - Real review-merge — a
review-mergephase dedupes + confidence-thresholds findings across reviewers. /workflow runlauncher + live phase timeline, and background runs (run_workflow({ background: true })) withphase N/Mprogress in the background panel.
Brain server
PayloadTooLargeErrorfixed — the HTTP server's JSON body limit is now configurable (default 16 MB,BRAINROUTER_MAX_BODY_SIZE) and an oversized body returns a clean 413 instead of an unhandled 500/crash.
Release mechanics
- All workspace packages bumped 0.4.7 → 0.4.8 + cross-package pins (
^0.4.8);package-lock.jsonregenerated;server.json+.claude-plugin/plugin.jsonsynced (DIST-1 guard). - Shipped as 11 PRs (#253–#263), each its own branch → green CI → merge into
release/0.4.8. - Published:
@kinqs/brainrouter-{types,sdk,mcp-server,cli}— all0.4.8.
Status
- Full suite green: 522 brain unit + 150 integration + 1194 CLI.
- Deferred to 0.4.9 (memory-accuracy): churn-weighted decay,
/memory verifysweep, source-side capture compaction.