Changelog
Notable changes to the control plane, grouped by version.
All notable changes to this project are documented here.
The format follows Keep a Changelog, and this project adheres to Semantic Versioning.
Unreleased
Fixed
- Raised the Next.js middleware request-body cap (
proxyClientMaxBodySize) to 100MB. Agent chat-completion requests replay full session histories with base64 screenshots and exceed the 10MB default, which silently truncated bodies and surfaced asInvalid JSON body400s on/api/projects/{id}/chat/completions. - vLLM router load-balancing now falls back to SGLang Prometheus names
(
sglang:num_running_reqs,sglang:num_queue_reqs) when the vLLM running/waiting gauges are missing, so SGLang backends are scored by real queue depth instead of always looking idle.
0.4.0 - 2026-09-10
Added
- Daily usage log purge cron (
scripts/cron/purge-old-usage.ts, 01:00): deletestoken_usage_logandprojects_llm_usage_logrows older than 31 days in batches. Manual trigger:GET /api/cron/purge-old-usage. - Copy as curl on
/admin/vllm-backends: icon button builds a hello-worldPOST {apiBase}/chat/completionscommand with the live API key from the backend's env var so admins can paste it into a shell. The button spinner paints immediately while the key is fetched. - Red bell on Skills / Agents in the top nav when a repository you added failed its last sync or needs a new token. Same cue on project Skills and Agent packs in the sidebar when a linked repo needs attention, and on the Skills Repositories tab (banner plus the affected cards).
- Pie chart on a selected run in
/projects/{id}/tracesshowing where LLM and tool time went (grouped by model / tool name; nested wrappers omitted). - Selected-run timeline shows LLM and tool avg / p95 call durations.
- Ready-made frontend UIs you can download from the dashboard
(
/api/download-frontend-boilerplate): the web chat app (github.ibm.com/copilot/local-agent-frontend) and the Electron desktop app (github.ibm.com/copilot/Bot-Platform-Desktop). Docs cover.env, which bot-agent features each UI supports, and the Launch-an-agent guide ends with connecting that runtime to a UI. - Common-flows guide for inviting a teammate to a project (project admin only, pick an email and role).
- Common-flows guide for adding a project secret (project admin only).
- Common-flows guide for installing a skill: registry or bring-your-own GitHub repo, then catalog-only / all-agents / specific-agent delivery.
- Common-flows guide for adding a custom LLM (Bob or your endpoint; prefer a project secret — see Add a project secret).
- Test Connection on add/edit MCP dialogs (HTTP Streamable only) lists tools from the remote server before saving.
Changed
- Tracing and metrics on project settings, traces, and metrics pages share one
enable toggle. Flipping it writes both
tracingEnabledandmetricsEnabled. Traces and metrics pages show that toggle only while collection is off; turn it off again from project settings. - Run timeline span inspector sits under Conversations (the leftover left-column space). Tool calls show parsed arguments — bash command, browser URL, cron schedule, delegate task — instead of a raw attributes JSON blob.
- Common flows moved from the top-nav ? icon to a labeled Help Flows item in the main nav (and the mobile menu).
Fixed
- Project pages no longer grow a blank outer scrollbar under nested lists
(traces conversations/runs). Padding lives inside the content column so
min-h-fullcannot add empty scroll. - Traces uses a single page scroller like metrics and skills: conversation,
run, waterfall, and span-inspector lists no longer nest their own
vertical scrollbars. Selecting a run scrolls only the project
mainpane, soscrollIntoViewcannot open a second document scrollbar. - ETI Vault app token 403 after ~32 days idle: periodic token renew cron plus
deploy-eti/vault-rotate-app-token.sh. Deploy env-drift no longer treats colocated*.test.tsenv refs or optionalFRONTEND_BOILERPLATE_DISTas required.
0.3.0 - 2026-09-03
Added
- Run waterfall on
/projects/{id}/traces: selecting a run shows every LLM and tool span on one timeline (nested subagent traces included). Toggle “All Spans” for agent/subagent rows; click a bar for attributes. Drag a time window on the overview strip to zoom a long run. Corner timestamps, run start/end guides, and elapsed-time summary sit on the selected run. - Agent tracing & metrics:
traces/spans/metrics/metrics_latestschema, a batched non-blocking trace writer, span recording in/api/runtime/chat(grouped byx-conversation-id/x-run-id/x-trace-id),POST /api/runtime/tracesso bot-agent can report agent/tool/subagent run structure, and new dashboards at/projects/{id}/traces(summary, conversation picker, run timeline, span waterfall) and/projects/{id}/metrics(latest metrics + trends), all URL-deep-linkable. - Per-project tracing/metrics flags (
project.tracing_enabled,project.metrics_enabled), default off for new and existing projects. Toggles live in project settings and on the traces/metrics pages. When off,/api/runtime/tracesand the chat proxy skip the write buffer (cached viaTimedCacheMap) so disabled projects create no database write load. - Common-flows guide for adding a stdio or HTTP MCP server to a project.
Changed
- Bot-agent dashboard downloads now serve the latest GitHub Release from
github.ibm.com/copilot/bot-agent(viaGITHUB_IBM_ACCESS_TOKEN) instead of a manually managedBOT_AGENT_DISTfolder, and show that version in the UI. - Changelog now lives at
content/docs/changelog.mdxand is published under Getting Started at/docs/changelog. - Schema workflow docs now require
npm run db:generatethennpm run db:migrate; do not usedrizzle-kit push.
Removed
- Legacy observability system:
chat_call_capture, daily usage rollups and their crons, consolidation/aggregation library, observability/stats dashboards, and the mirrored/api/cliusage endpoints. Token-usage logging, rate limits, and LLM failover are retained.
Fixed
- Project list/table three-dot action menu is no longer clipped by the overflow container; the dropdown now portals above the list.
- IaaS Vault app token 403 after ~32 days idle: periodic token renew cron plus
deploy-iaas/vault-rotate-app-token.shso deploys do not need a full Vault re-bootstrap. - Production builds no longer fetch Geist, JetBrains Mono, or Material Symbols
from Google Fonts. Fonts are self-hosted with
next/font/localso firewalled hosts can build without reachingfonts.googleapis.com. - IaaS production type-check no longer fails on traces Recharts
labelFormatter(it now returns a string). - Deep-linked conversation/run filters on traces apply on first load (React Strict Mode was cancelling the deferred load).
0.2.0 - 2026-08-31
Added
- Project MCP servers UI, shared service, and
/api/cli/projects/{id}/mcproutes for managing workspace*.mcp.config.jsonfiles (notlocal.mcp.config.json). Docs:content/docs/mcp.mdx.
Fixed
- Blue-green deploy no longer dies at
npm installwhenregistry.npmjs.orgis firewalled. If the registry is unreachable, deploy keeps the existingnode_modulesinstead of failing withETARGETon versions not in the local npm cache (for exampleadm-zip@0.6.0).
0.1.0 - 2026-08-31
First tagged release of the bot-admin-server control plane. Version 0.1.0
matches package.json and is the starting point for GitHub Releases.
Added
- IBM W3 ID OIDC sign-in via Better Auth, with
new_user,whitelisted_user, andadminroles, pre-approved emails, and an append-only admin audit log. - Project dashboard: members, invitations, agents, files/workspaces, skills, secrets, vault config, custom LLM backends, API keys, and settings.
- Shared service layer used by both the web app and the Go CLI (
/api/cli/**). - Device OAuth (RFC 8628) for CLI login and live-DB role checks on every CLI request.
- Runtime API for bot-agent: session exchange/refresh, LLM chat proxy (SSE), model catalog, and workspace zip delivery.
- IBM-wide skills registry with GitHub sync, project install, and agent deployment.
- Agents marketplace for pre-built subagent packages and project install.
- Platform Vault plus per-project Bring-Your-Own HashiCorp Vault secrets.
- BYO LLM API key overrides keyed by project, conversation, and model.
- Sticky per-conversation failover onto a cheaper model after a dropped stream.
- Observability dashboards, usage tracking, health endpoints, and Slack alerts.
- Blue-green deploy kits for the ETI and IaaS hosts.
- Interactive common-flows guide for launching an agent.
- SemVer in
package.json, this changelog, andnpm run releaseto publish source archives to GitHub Releases.
Security
- Dependabot upgrades for Next.js 16.3.1 and adm-zip 0.6.x.