Skip to main content

Release v2.10.4

· 11 min read
Kostromin Danil
Bublik UI Maintainer
Rybchenko Natalia
Bublik Backend Maintainer

We're excited to announce Bublik v2.10.4!
This release introduces powerful new AI integration features and an enhanced global search form in History. We also fixed full test path search in History, made VCS tags visible in the revisions list in run details, and improved dashboard navigation.

What's New

MCP Server
In this release, we've added an MCP (Model Context Protocol) server, enabling seamless integration with AI agents and assistants.

Run Filters for Obtained Results
We've enhanced the run page with powerful new filtering capabilities in the results table.

History Global Search Form Improved
The history global search form has been completely revamped for better usability. Filters are now organized into clear sections (TEST, RUN, RESULT, VERDICT), with frequently used fields prominently displayed and advanced options collapsed by default.

Highlights

MCP Server

We're introducing a Model Context Protocol (MCP) server that allows AI agents to interact with Bublik programmatically. This opens up possibilities for:

  • Automated Analysis: Let AI assistants analyze test failures and identify patterns
  • Natural Language Queries: Ask questions about your test data in plain language
  • Workflow Integration: Connect Bublik to your existing AI-powered workflows

Here's an example of naive just for the start conversation

You can connect to it via these configs as an example:

  1. OpenCode:
"bublik-mcp": {
"type": "remote",
"url": "https://<bublik_url>/mcp",
}
  1. Claude:
"bublik-mcp": {
"type": "http",
"url": "https://<bublik_url>/mcp"
}

Run Filters For Obtained Results

Run filters for obtained results

History Global Search Form Improved

The form now shows the most commonly used fields by default, with advanced options available through expandable sections. Long test paths are intelligently truncated to show only the end portion by default, making the interface cleaner.

Updated history global search form

Cleaner Legend — We've also removed unnecessary clutter from the history legend by hiding empty values, giving you a cleaner view of your test data.

Cleaned up history legend

Dashboard Navigation Tooltips Improved

Dashboard tooltips now display the navigation target rather than repeating the value, making navigation easier to understand.

Dashboard

Admin Section

Backend Update

warning

The nginx_conf deploy step requires root rights. If you don't have root, you must manually update the Nginx config using bublik/templates/nginx.bublik.template.

  1. cd bublik
  2. git remote update
  3. git checkout v2.10.4
  4. Set path for user systemd services:
export USER_SERVICES_PATH="${HOME}/.config/systemd/user"
  1. Set full path for the MCP service file:
export MCP_SERVICE_PATH="${USER_SERVICES_PATH}/bublik-mcp.service"
  1. Create the user systemd directory:
mkdir -p $USER_SERVICES_PATH
  1. Run deploy script with steps:
./scripts/deploy --steps pip_requirements django_settings mcp_service nginx_conf run_services
  1. Clear all Redis caches to remove old data due to changing the caching backend:
redis-cli FLUSHALL

Frontend Update

  1. Trigger the workflow in your frontend repository
  2. Synchronize the mirrors
  3. cd bublik-ui
  4. git remote update
  5. git checkout v2.10.4

Documentation Update

  1. Trigger the workflow in your frontend repository
  2. Synchronize the mirrors
  3. cd bublik-docs
  4. git remote update
  5. git checkout v2.10.4

Docker Instance Update

  1. task backup:create
  2. Open your .env file and change IMAGE_TAG to 2.10.0
  3. grep -q "BUBLIK_DOCKER_MCP_HOST" .env || echo "BUBLIK_DOCKER_MCP_HOST=127.0.0.1" >> .env
  4. grep -q "BUBLIK_DOCKER_MCP_PORT" .env || echo "BUBLIK_DOCKER_MCP_PORT=8001" >> .env
  5. task pull
  6. task up
  7. task reset-redis-cache

Changelog

Frontend

🚀 New Feature

  • api: add components for handling API errors in a centralized manner (fba28d8)
  • api: add normalized error handling (c8c5a06)
  • api: create library for centralized display of API errors (0f5c423)
  • run: expose obtained-result facets in result table toolbar (302ee2c)
  • ui: [input] allow input to oprionally show end of value on mount (302c499)
  • ui: add shared primitives for handling API errors in a centralized manner (cfa28df)

💅 Polish

  • dashboard: remove line wrap for run progress nok/ok results (063be18)
  • dashboard: separate refresh button from clock widget (a829cee)
  • dashboard: [header] align header items gap with the rest of the app style (cfdf357)
  • form: change gray color for input placeholders and app labels (e596185)
  • history: capitalize labels for history legend items (eb8978e)
  • history: don't display placeholder for empty legend items (8867bfa)
  • log: [meta] improve structure for log time information (d855ce4)
  • ui: [checkbox] allow passing className for icon as a prop (90e0ddc)
  • ui: [hover-card] fix incorrect arrow position (c983414)

🐛 Bug Fix

  • history: stop prefiltering history shortcuts by classification (a69e212), closes #512
  • log: expand nested ERROR rows in log (be1288a)
  • run: [details] clarify Run ID label (79f7e2f)
  • run: [multiple] preserve runIds query params on columns reset (3f89cee), closes #511
  • run: make filtering exact and prevent accidental dim reference selection (e401ded)
  • runs,history,report: fix memory leak (4527f0a)
  • runs: [charts] align day charts to daily aggregates (55ae3dc)
  • runs: [charts] guard pass rate against zero totals (8d85479)
  • runs: rename metadata filter label from 'Tags' to 'Metas' (8160813), closes #505
  • dashboard: incorrect prefetch without project filters (bc7595a)
  • dashboard: prevent empty-state flicker when changing project filter (15d297e)
  • config: sanitize persisted editor content (9439acf)
  • dashboard: display API errors for implicit-date resolution failures (ebfb411)
  • dashboard: don't show stale data in case of error (0718788)
  • dashboard: validation error when dashboard contains report links (238cfd3)

♻️ Code Refactoring

  • history: revamp global search form interactions (b7c3d91)
  • report: extract hooks for performance from report to reusable library (fc1fb29)
  • run: make dim mode default in result table (5cd151b)
  • ui: [badge-input] improve ergonomics (523907d)
  • use single component for API errors handling and empty states (2e54fda)

📦 Chores

  • dashboard: remove links from subrow and add link hints to tooltips (93d11fa), closes #488
  • history: rename "Test Name" to "Test Path" (6b5ff68)
  • run: [comment] close after succesufull edit/create/update form (7aa905d)
  • run: [result-table] move button and rename to "Filters" for opening toolbar (33de7ff)
  • test: update snapshot tests (da533b7)

⚡ Performance Improvements

  • history: [series] improve performance of series charts (bc58b7a)
  • report: improve performance for report charts (a42f530)

Backend

🐛 Bug Fix

  • metadata: fix false positive LSP error (a063081)
  • history: fix full test path parsing during history search (276d0f2)
  • history: fix test retrieval by full path by removing legacy session traversal (72a79d8), closes #277
  • dashboard: fix formatting validation to ignore default 'progress' (6c32c3b)
  • dashboard: prevent shared state between payload instances (7446414)
  • runs: ensure project parameter is correctly typed (affd42c)
  • dashboard: fix passing ignore parameter for formatting validation (4363497)

🚀 New Feature

  • run data: make VCS tags visible in revisions list in run details (fdf4982)
  • mcp: add pagination helpers for usage in MCP (35b24af)
  • mcp: add MCP server implementation (06d5a1a)
  • log: add json log pydantic models for validation (2810fc8)
  • log: add json log processor for processing log to markdown (533d389)
  • deploy: add MCP service deployment (401ec32)
  • nginx: add Nginx proxy for MCP service (80111cb)

⚡ Performance Improvements

  • dashboard: improve performance when applying payload to rows (b215b01)
  • dashboard: improve performance when building dashboard rows (8c1989d)
  • runs: fix lazy evaluation to prevent extra queries for run IDs (3ee9753)

📦 Chores

  • requirements: update packages versions to pick up bug fixes (76f2d17)
  • requirements: add and upgrade required dependencies for MCP server integration (fe5c982)
  • requirements: update Django version to pick up bug fixes (a262442)

♻️ Code Refactoring

  • auth: ensure consistent error handling (5eccae7)
  • run: extract run related operations for separations of concern (7b92d01)
  • run: adjust run API routes to use service layer (e44416c)
  • result: extract result related operations for separation of concern (397282b)
  • result: adjust result API routes to use service layer (88a01fa)
  • history: extract history related operations for separation of concern (105ffdb)
  • history: adjust history API routes to use service layer (df6d09c)
  • log: extract log related operations for separation of concern (663a63b)
  • log: adjust log API routes to use service layer (0f8e3a8)
  • tree: extract tree related operations for separation of concern (3fde322)
  • tree: adjust tree API routes to use service layer (d0c3781)
  • report: extract report related operations for separation of concern (08ca9b8)
  • report: adjust report API routes to use service layer (540d364)
  • measurements: extract measurements related operations for separation of concern (c67dff7)
  • measurements: adjust measurements API routes to use service layer (4a6db43)
  • dashboard: extract dashboard related operations for separation of concern (bfb046b)
  • dashboard: adjust dashboard API routes to use service layer (39ceab5)
  • project: extract project related operations for separation of concern (7c14e57)
  • project: adjust project API routes to use service layer (2dae29f)
  • server: extract server related operations for separation of concern (d6c5adc)
  • server: adjust server API routes to use service layer (192ce89)
  • dashboard: simplify row preparation method (98ccdad)
  • runs: improve readability of queryset retrieval (92b5a1c)

💅 Polish

  • dashboard: improve navigation tooltip wording for consistency (b45206d)