# Investibook v0.3

> Released: 2026-03-18
> Tag: `investibook/v0.3`

## Overview

Investibook v0.3 is a broad feature release centered on 5 themes:
- **Skills management revolution** — hot reload, custom skill upload, catalog organization, and the new `tidb-clinic-diagnosis` skill (built on `tidb-perf-diagnosis`, enabling structured root-cause analysis in a single conversation); ranking page now driven by live telemetry data.
- **TiDB-X support** — Premium clusters are now fully supported; Essential and Starter support coming soon.
- **Workspace export** — download workspace files and chat history via S3 presigned URL, with CLI support.
- **Expanded Jira source support** — ST issues (`ST-*`), TCID internal comments by default, and a Jira-write safety guardrail.
- **Flexible resizable workspace panels** — drag-to-resize and collapse/expand for all three columns.

---

## New Features

### Skills Management Revolution

- **Skills hot reload without OpenCode restart** — a new Skill Hub (accessible from the Settings modal) lets users enable or disable any skill and apply the change immediately via `OPENCODE_EXPERIMENTAL_HOT_RELOAD`. No OpenCode session restart required. Toggle multiple skills and commit them all with a single "Apply & Reload" click. ([#289])
- **Custom skill upload** — upload a `.zip` containing a `SKILL.md` to install a custom skill into the workspace's `.opencode/skills/custom/` directory. The backend validates zip structure and skill name consistency. ([#289])
- **Skill Hub UI** — skills are organized by category (BUILTIN, NUTSHELL-SKILLS, CUSTOM) with visual indicators for enabled/disabled/pending states. Upload progress, success, and error messages are shown inline. A "Manage →" link in the SourcesPanel opens the Skill Hub directly. ([#289])
- **Nutshell-skills catalog reorganization** — skills under `agentkit/skills/nutshell-skills/` are grouped into category subdirectories (e.g., `diagnosis/`). The Skill Hub UI reflects this hierarchy. ([#293])
- **New skill: `ticdc-health-inspection`** — audits TiCDC new-architecture health from metrics; produces per-changefeed and cluster-level Healthy/Warning/Critical verdicts with evidence from changefeed state, lag decomposition, throughput continuity, backpressure, and error signals. ([#293])
- **New builtin skill: `tidb-clinic-diagnosis`** — built on the `tidb-perf-diagnosis` knowledge base, this skill provides a structured diagnostic workflow that guides the agent to directly locate root causes using Clinic MCP tools, falling back to `clinic-api` for logs and custom queries. Automatically enabled for all new workspaces and recommended by the system prompt as the first choice for performance diagnosis tasks. ([#303])

### Rankings — Live Data

- **Ranking page connected to real statistics** (`/ranking`) — the leaderboard that was mock-data-backed in v0.2 now calls `GET /api/ranking/data` for live skill and tool usage data from `statistics.db` across all workspaces. Features time-range filtering (This Week / This Month / All Time) with daily and weekly granularity, and sparkline trend charts on each row. ([#305])

### TiDB-X Support

- **Premium clusters are now fully supported** — Investibook can now diagnose TiDB Cloud Premium (TiDB-X) clusters. The Grafana panel knowledge base, dashboard routing, and `grafana-panel-finder` skill have been updated to correctly handle the `nextgen-host` profile used by Premium clusters. Essential and Starter cluster support is coming soon. ([#257])

### Workspace Export

- **Export workspace as a ZIP archive** (`GET /api/workspace/{id}/export`) — packages the entire workspace session directory (sources, agent files, screenshots, config) into a `.zip` file.
  - **S3 mode**: archive uploaded to S3 and a 1-hour presigned URL is returned.
- **CLI export command** (`investibook workspace export`) — downloads the archive or prints the presigned URL from the terminal. ([#224], [#290])

### Expanded Jira Source Support

- **ST issues** (`ST-*` prefix) — the source preparer and Jira MCP server now handle `ST-*` Jira issue prefixes alongside the existing `O11Y-*`, `TCOC-*`, and `TCID-*` prefixes. Frontend `AddSourceModal` and workspace type hints updated accordingly. ([#304])
- **TCID internal comments by default** — when the Jira MCP adds a comment to a TCID issue, it now uses the internal (non-customer-visible) comment type by default. The `opencode.json` template is updated to match. ([#291])
- **Jira write guardrail** — the agent system prompt now explicitly prevents proactive Jira comment posting. Analysis is surfaced to the user first; they decide whether to write it back. ([#306])

### Flexible Workspace Panels

- **Drag-to-resize Sources and Studio panels** — two `ResizableGutter` components sit between the three workspace columns; drag to redistribute horizontal space. Layout is persisted to `localStorage` keyed by `workspaceId`. ([#260])
- **Collapse / expand panels** — click the collapse icon in the Sources or Studio panel header to shrink it to a narrow rail; click again to restore. ([#260])
- **Minimum-width clamping** — panels cannot be dragged below their minimum useful width, preserving readability at all sizes. ([#260])

### Analytics & Evaluation

- **Analytics dashboard** (`/admin/analytics`) — a comprehensive admin page visualizing platform usage, user engagement, AI skill invocations, and server performance via charts and metric cards. Backed by mock data in this release; will connect to backend telemetry in a future update. ([#247])
- **Diagnostic evaluation system** — a new backend tracks diagnosis quality metrics per workspace: `accuracy_score`, `first_resolve_score`, `overall_score`, `mtta_minutes`, and `corrections`. REST endpoints: `GET /api/admin/evaluations`, `GET /api/admin/evaluations/summary`, `POST /api/admin/evaluations`. A background scheduler can trigger periodic evaluations. ([#295])

### Authentication & Login UX

- **Preserve redirect destination after Auth0 login** — when an unauthenticated user is redirected to `/login`, the original URL is saved in `sessionStorage`. After a successful login, the user is taken back to that page instead of the home page. ([#267])

### UI & Navigation

- **Auto-rename workspace from first source** — when a user adds the first source to a workspace still named "Untitled Workspace", it is automatically renamed to the source name (e.g., `O11Y-12345`). The header updates in real time without a page reload. ([#301])
- **Mobile-friendly hamburger menu** — the `AppHeader` gains a hamburger menu for mobile viewports, making navigation accessible on small screens. ([#286])
- **UI polish** — fix list markers stripped by uikit global reset; fix file tree hierarchy indentation in Firefox (`paddingInlineStart` instead of `paddingLeft`); chat timestamps now show local time on user messages and are hidden on assistant messages. ([#302])

### Production & Infrastructure

- **Restic backup sidecar** — a Restic backup sidecar is added to the production pod spec, enabling scheduled snapshots of the EBS data volume. Backups run every 15 minutes; 15-minute-granularity snapshots retained for 3 days, daily snapshots retained for 30 days. ([#279])
