v0.4.7
v0.4.7
The Codex coding-agent parity track — built on the 0.4.6 structural-refactor seams — plus the agentic-autonomy and memory-accuracy work that came out of live-CLI testing. Three themes: close the execution-safety gaps that separated BrainRouter from a hardened coding agent, make the agent actually fan out and follow through instead of stalling, and teach recall to flag a memory whose source code has since changed.
Full notes: brainrouter-changelog/0.4.7.md.
Highlights
- Coding-agent parity — execution safety. Sandbox fails closed when requested-but-unavailable (no silent unsandboxed run);
run_commandapproval is evaluated per shell segment (pipes /&&/;) with an opt-incli.commandAllowlist; over-broad allowlist prefixes (git,npm) are rejected at config load;apply_patchis now atomic (prevalidate every op, then flush); MCP network/egress tools are gated before a server'sreadOnlyHintcan wave them through; per-child git worktree isolation + cleanup with a safeoffdefault. - Agent lifecycle & orchestration. One tool registry — the model-visible tool list, exec policy, and parallel-safe set are all generated from it and drift-guarded; spawn slots cap a parent's concurrent children (
cli.maxConcurrentChildren, default 8). - Agentic autonomy — the agent acts instead of stalling. The headline: a next-action planner that reasons about strategy (
answer-direct/investigate/fan-out/workflow) at turn start instead of keyword-guessing; fan-out now fires on analytical comparisons and follows through (a guard catches "hinted but didn't spawn"); parallel tool calls show they're running; and turn-end guards kill the "promise then stall / promise then ask" pattern. - Memory accuracy — staleness-aware recall. A recalled memory derived from code whose source file has since changed is flagged and down-ranked, with a
⚠ source changed since capture — verify against current codeannotation, so the agent re-verifies instead of trusting a memory the codebase has outgrown.
Release mechanics
- All workspace packages bumped 0.4.6 → 0.4.7 + cross-package pins (
^0.4.7);package-lock.jsonregenerated. server.json+.claude-plugin/plugin.jsonsynced to 0.4.7 (DIST-1 manifest guard).- Shipped as 16 PRs (#236–#251), each its own branch → green CI → merge into
release/0.4.7. - Published:
@kinqs/brainrouter-types,@kinqs/brainrouter-sdk,@kinqs/brainrouter-mcp-server,@kinqs/brainrouter-cli— all0.4.7.
Status
- Full suite green: 512 brain unit + 150 integration + 1120 CLI.
- Deferred to a later release: durable child thread/fork (CODEX-THREAD-FORK), child event-channel transport (CODEX-CHILD-TRANSPORT), typed host/app protocol (HOST-PROTOCOL → 0.5.0).
What's Changed
- fix(cli): read-mode parent can fan out a read-access child (REVIEW-FIX policy) by @kinqsradio in #236
- fix(cli): fail closed when sandbox requested but unavailable (CODEX-SANDBOX-FAILCLOSED) by @kinqsradio in #237
- fix(cli): /review can't collapse or stall — diff-injected, single-path, access-aware (REVIEW-FIX part 2) by @kinqsradio in #238
- feat(cli): command-segment approval precision + opt-in allowlist (CODEX-EXEC-POLICY) by @kinqsradio in #239
- fix(cli): atomic apply_patch — prevalidate all ops, then flush (CODEX-APPLY-PATCH-HARDEN) by @kinqsradio in #240
- feat(cli): reject over-broad command-allowlist prefixes (CODEX-APPROVAL-GUARD) by @kinqsradio in #241
- feat(cli): one tool registry — exposure generated, policy + parallel guarded (CODEX-TOOL-REGISTRY) by @kinqsradio in #242
- feat(cli): spawn slots — cap a parent's concurrent children (CODEX-AGENT-LIFECYCLE) by @kinqsradio in #243
- fix(cli): show parallel tool calls running + stop "promise then ask" stalls by @kinqsradio in #244
- fix(cli): stop "promise then stall" turn-end + 0.4.7 parity WIP checkpoint by @kinqsradio in #245
- fix(cli): worktree cleanup + safe default (CODEX-WORKTREE-CLEANUP) by @kinqsradio in #246
- fix(cli): gate MCP network/egress + close the readOnly-hint bypass (CODEX-MCP-APPROVAL P0) by @kinqsradio in #247
- fix(cli): make broad/comparison tasks actually fan out (trigger + follow-through) by @kinqsradio in #248
- feat(cli): make fan-out fire on analytical comparisons + push harder (reliability) by @kinqsradio in #249
- feat(cli): next-action planner — the system reasons about what to do, not keyword hints by @kinqsradio in #250
- feat(brain): code-staleness-aware recall — flag + down-rank memories whose source changed (MEM-ACCURACY) by @kinqsradio in #251
- Release 0.4.7 — Codex coding-agent parity, agentic autonomy, staleness-aware memory by @kinqsradio in #252
Full Changelog: v0.4.6...v0.4.7