This changelog highlights user-facing changes in BabeL-O releases.
For full bilingual release notes, see docs/releases.
- Added
bbl go --nexus-port-scan-attempts <n>to bound the local port scan used when the requested Nexus port is occupied (default: 12).
bbl gonow prints a[bbl] ...notice when it switches to a different local port for the Nexus service.
- Fixed
bbl gomisdetecting any local service that answers/healthwith 2xx as a running Nexus (e.g. another dev server on the default port 3000), which causedFailed to allocate Go TUI session ... 404 API not found. The launcher now verifies Nexus identity (runtime: babel-oin the/healthbody) and auto-starts the managed Nexus on the first free neighbouring port when the requested one is occupied by a non-Nexus service.
- Added system keychain support for API key storage (macOS Keychain, Windows
Credential Manager, Linux Secret Service).
bbl config addstores keys in the keychain by default; use--plainfor config file fallback. - Added
bbl config initinteractive wizard for first-time provider setup. - Added
bbl config migrateto migrate plaintext API keys to the keychain. - Added
bbl config auditto inspect credential storage locations. - Added
ConfigManager.resolveSettingsAsync()to resolve settings with keychain-backed API keys (priority: env > keychain > config). - Added
docs/guides/keychain-guide.mdwith credential security best practices. - Added
docs/INSTALLATION.mdwith detailed installation instructions. - Added
ProviderConfig.modelsfield to support custom provider model definitions.
- README now features a "Why BabeL-O?" section with 3 core differentiators, a "Quick Start (5 minutes)" guide, and simplified installation instructions.
- All installation alternatives moved to the dedicated
docs/INSTALLATION.md. - Go TUI watchdog grace increased from 60s to 120s (watchdog 300s) to prevent AskUserQuestion wait starvation during pre-question model latency.
- Fixed AskUserQuestion responses never reaching the model: the runtime now
builds
tool_resultfromfinalOutput(user'sansweredselection) instead ofresult.output(rawpending_questionpayload). - Fixed Go TUI Esc-cancel in the AskUserQuestion overlay discarding the HTTP
tea.Cmd, leavingwaitForQuestionResponseto time out at 180s. - Fixed the question-response Zod schema rejecting Go
nilslices (JSONnull) forselectedIndices/selectedLabels, causing a 400 that prevented the response from being persisted to storage.
- Added runtime authorization and consent gates that separate tool need from user-authorized execution scope.
- Added Go TUI, CLI one-shot, inspect-session, and trace visibility for authorization mismatches.
- Added Everforest Light Soft theme coverage.
- Improved soft-error and soft-timeout continuity so recoverable runtime states preserve clearer in-flight turn context.
- Expanded Skill resource coverage and matcher quality for Agent Skills packages.
- Fixed bash tool startup when the user's login shell is incompatible by
falling back to
/bin/bash. - Reduced unwanted editing or over-confirmation when the user only gives a preference, status question, or meta-behavior question.
- Added Agent Skills package import/export interoperability while preserving
BabeL-O's
NormalizedSkillruntime shape. - Added Go TUI
/skilllist/show/validate workflow coverage and Skill overlays. - Added same-provider automatic retry for transient
provider_unavailableandrate_limitfailures, including retry lifecycle events.
- Expanded Skill validation, resource coverage, conversion diagnostics, and matcher quality.
- Added saved config and environment overrides for provider auto retry policy.
- Moved more user-facing documentation into
docs/guides/.
- Classified MiniMax transient
unknown error, 999 (1000)and timeout2066failures as retryable provider availability errors. - Made provider retry waits stream
provider_retry_scheduledbefore sleeping, so TUI/CLI countdowns appear immediately. - Cancelled provider retry waits now settle as
REQUEST_CANCELLEDwithout starting the next provider attempt.
- Added context-search pushdown and tokenized matching so long sessions can retrieve relevant historical events without overloading prompt assembly.
- Added runtime and Nexus watchdog coverage for silent or aborted provider
streams, including
activeAgeMsdiagnostics. - Added blocking layer-direction and coupling gates to CI.
- Improved adaptive context-window selection and headroom preservation around recovery boundaries.
- Split more Nexus, storage, runtime, and provider-loop responsibilities into smaller modules to reduce coupling.
- Improved progressive streaming so provider text deltas are surfaced as they arrive instead of being buffered to the end of the turn.
- Preserved provider tool-call/tool-result message ordering across runtime replay and context assembly.
- Propagated provider aborts through SSE readers so cancelled or timed-out streams settle cleanly.
- Redacted context-observer payloads more aggressively and excluded internal hook, usage, and thinking events from default context-recent surfaces.
- Moved Go TUI
/modelconfiguration progress messages out of the persistent transcript and into short-lived composer notices. - Generalized current-state verification guidance so provider, model, tool, config, session, workspace, test/build, MCP, and runtime checks stay evidence-backed.
- Clarified WebSearch as an external public-information locator, not a source for private workspace facts or instructions.
- Displayed DeepSeek's declared 1M context window in Go TUI context chrome while still showing the effective runtime ceiling.
- Kept soft-deny provider tool calls visible to the model while preserving the permission gate for write and execute actions.
- Fed permission denials back to the provider as recoverable tool results so it can adjust instead of terminating the turn immediately.
- Reused approved session-scoped provider rules to avoid repeated permission prompts for the same approved action.
- Made
bbl gothe single production interactive TUI entrypoint. - Removed the legacy
bbl chatTypeScript TUI from the release package. - Kept
bbl run "<prompt>"for one-shot automation and scripting. - Updated CI and smoke checks to validate the Go TUI path.
- Preserved Go TUI permission response fields such as
scope,rule, andfeedback. - Applied trusted session approvals consistently within the active runtime session.
- Fixed portable
bbl golaunch on macOS afterbbl go --checkhad passed. - Started bundled TUI binaries from the installed binary directory instead of a source checkout path.
- Improved readiness checks and portable install regression coverage.
- Switched the primary release artifact to a lightweight
bbl-<platform>.tar.gzportable package. - Reused the user's system Node.js >= 22 instead of shipping a large Node SEA executable.
- Kept standalone
go-tui-*assets for debugging and compatibility.
- Restored the explicit API-key step in
/model. - Treated pasted API keys as single-line secrets to avoid duplicated or corrupted input.
- Routed mouse wheel events away from text fields.
- Normalized composer height after returning from
/modeland/context.
- Added the
/memorypanel for MemoryOS status and memory candidate review. - Added stronger context, recovery, and working-set diagnostics.
- Replaced hard-coded natural-language intent guidance with structured
problemTargetand turn-policy metadata. - Improved timeout recovery, compact/restore validation, and provider replay.
- Fixed context, model, session, tool, and memory overlays so they render above the input area.
- Hardened Go TUI layout restoration after panel exits.
- Improved installer self-checks and release asset validation.
- Promoted the Go TUI as the documented production interactive client.
- Added panel-driven
/sessionworkflows for creating, selecting, switching, and copying session IDs. - Added a current product screenshot and product-facing README refresh.
- Refined the header, welcome panel, footer, input box, slash palette, context panel, tool overlays, and runtime activity line.
- Made session-to-session messages typed collaboration context rather than hidden direct instructions.
- Improved model setup guardrails for API-key providers.
- Reduced accidental input pollution from mouse selection and wheel behavior.
- Reworked cancellation and recoverable conflict paths to ask the user instead of hard-cancelling ambiguous work.
- Added first-class SessionChannel collaboration with inbox, typed side-channel messages, channel graph diagnostics, activity overlay, and a Collaborate hub.
- Added CLI commands for session inbox inspection and acknowledgement.
- Made interactive chat fail clearly under non-TTY conditions.
- Kept standalone binary chat sessions alive while idle.
- Tightened path-drift checks for
ListDir,Grep, andRead.
- Fixed standalone binary startup failures caused by duplicate
createRequiredeclarations. - Retained hardened installer behavior so incomplete downloads and HTTP error
bodies cannot be installed as
bbl.
- Added BabeL-O and KezhongKe logo assets to the README.
- Added file attachment references, image metadata handling, symbol mentions, diagnostic mentions, and opt-in vim input mode.
- Added optional bundled ripgrep support through
@vscode/ripgrep.
- Reorganized
docs/nexusinto active, reference, and archive layers. - Hardened installer downloads with retries, temporary files, size checks, and executable validation.
- Added persistent, governable Agent jobs with lifecycle metadata.
- Added richer runtime metrics for provider invocations, AgentLoop steps, and AgentJob aggregation.
- Added benchmark history, retry policy benchmarks, and runner comparison diagnostics.
- Added cache-aware context compaction and long-context utilization diagnostics.
- Added a structured runtime diagnostics envelope.
- Added quality gates including
format:check,lint,coverage,build:smoke,deps:audit, andtest:performance.
- Improved
/context,/status, slash/tool palettes, multiline input, paste state, and agent status rendering.
- Added MiniMax-M3 to the model registry.
- Aligned model list syncing for autocomplete and interactive configuration.
- Updated documentation language around BabeL-O as a generalized agent system.
- Introduced Node.js SEA single-executable distribution.
- Added a decoupled Nexus backend runtime architecture.
- Added multi-agent Git worktree coordination, sandbox controls, path safety, HMAC command validation, and SQLite audit persistence.