Release v2.9.1
· 9 min read
We're excited to announce Bublik v2.9.1! This release focuses on frontend usability and clarity, with faster run navigation, better chart readability, and clearer time context in the UI. We also unified error handling across the backend to ensure consistent response formats, enabling a uniform error experience in the UI, enhanced the security of user-facing error data, and improved initial load performance.
What's New
Clickable Run ID Copy
Run IDs can now be copied directly from a clickable value, making it faster to grab the ID you need.
Clearer Chart Colors
Improved color contrast makes charts easier to read at a glance.
Highlights
Clickable Run ID Copy

Admin Section
Backend Update
cd bublikgit remote updategit checkout v2.9.1./scripts/deploy --steps pip_requirements django_settings run_services
Frontend Update
- Trigger the workflow in your frontend repository
- Synchronize the mirrors
cd bublik-uigit remote updategit checkout v2.9.1
Documentation Update
- Trigger the workflow in your frontend repository
- Synchronize the mirrors
cd bublik-docsgit remote updategit checkout v2.9.1
Docker Instance Update
task backup:create- Open your
.envfile and changeIMAGE_TAGto2.9.1 task pulltask up
Changelog
Frontend
🚀 New Feature
💅 Polish
- report: improve color contrast for charts (9164a0d)
- run: replace "id" with "ID" in Compare Runs form instruction (f338115), closes #497
🐛 Bug Fix
- log: [preview] fix history link dropdown not visible (847d541)
- run: [details] not showing skeleton while details loading (492e72e)
- run: left-align Notes column header for consistency (0f37864), closes #490
- run: make result table header cells visible when scrolling in safari (61e7c3c), closes #489
- runs: filter runs by clicked conclusion in bar chart modal (489dfb0)
- run: show timezone offset in GMT format for dates column header (80cd576)
- types: update component types for React 19 compatibility and fix lint issues (6429c60)
- result: crash caused by incorrect import from react-router (a9ce75c)
♻ Code Refactoring
- api: add support for backend unified error format (5dbd1a7)
- form: update
setErrorsOnFormto handle new API error format (ae3d6d1) - form: use
setErrorsOnFormin create-config-form (d7b7319) - form: use
setErrorsOnFormin create-project-modal (aa575bb) - form: use
setErrorsOnFormin import-run-form (4165f4b) - form: use
setErrorsOnFormin update-config-form (ed5f1fa) - form: use
setErrorsOnFormin update-project-modal (2cd40cc)
📦 Chores
- add github issue and feature request templates (ebeadd1)
- build: remove deprecated cacheDir from vite configurations (699528f)
- build: rename vite.config.ts to vite.config.mts for ESM compatibility (d6d2d2f)
- deps: upgrade Nx to 20.8.0 and related dependencies (8de3c93)
- lint: update ESLint configurations for Nx 20 compatibility (64fcb2e)
- run: [details] remove unused import (e8c6598)
- storybook: remove storybook configuration and all story files (557ae8a)
⚡ Performance Improvements
- improve initial loading for application (bfdc78f)
✅ Tests
- deps: upgrade tests for compatability with nx 22 (904549f)
- form: add comprehensive tests for setErrorsOnForm (e16c63e)
Backend
🐛 Bug Fix
- auth: ensure consistent error handling and secure system exception logging (68b6e2a)
- log: ensure consistent error handling and secure system exception logging (a3c3fd8)
- event: ensure consistent error handling and secure system exception logging (7eb8fa3)
- results: ensure consistent error handling and secure system exception logging (bcd62c8)
- tasks: make importruns error logs safer (716c5ff)
🚀 New Feature
📦 Chores
- requirements: update
python-dateutilto fix deprecation warnings (133d486) - requirements: update Django version to pick up bug fixes (dd0fd34)
- settings: unify naming and improve structure of logging configuration (9cdba51)
- settings: make bublik.server logs more readable (5d60afa)
- settings: redirect error logs to separate file for easier debugging (a05642b)
- logging: redirect Celery errors to error.log for consolidated tracking (83d0566)
♻️ Code Refactoring
- exceptions: improve handling and normalize error responses (97b9edd)
- exceptions: add custom error hierarchy to unify and typify error handling (7011502)
- history: refine exceptions for missing tests or iters after filtering (16e9771)
- measurements: ensure consistent error handling (9eb3413)
- report: ensure consistent error handling (b22cff1)
- dashboard: ensure consistent error handling (5a72316)
- config: ensure consistent error handling (95d2dfd)
- url: ensure consistent error handling (13cdb62)
- importruns: unify importruns API error response format (f0eab87)
- logging: move task logger retrieval for better separation of responsibilities (64f5f0b)
- logging: encapsulate task logger handler for cleaner code structure (8f8de2c)
- logging: ensure single task logger handler to prevent duplicate logs (8623d29)
- logging: make task logger retrieval function more general (0058b5b)
- logging: generalize task logger retrieval by sourcing task ID from env (501955f)
- logging: make logger retrieval function universal for tasks and server (1ec0a2e)
- logging: route logs based on execution context (a8b4c6c)
- importruns: run importruns command in task context to centralize logging (4817d90)
- exceptions: introduce ImportrunsError to improve importruns error reporting (12679c4)
- importruns: make invalid parameters error message more informative (5f77bb6)
- importruns: automate function execution time logging with decorator (5e54afc)
- importruns: expose import failures from missing metadata in importruns (7e50c61)
- importruns: unify run URL mismatch error handling (402e48e)
- importruns: unify no metadata error handling (3f35cb8)
- metadata: unify broken essential meta error handling (969ed8c)
- importruns: unify incorrect metadata errors handling (0bdbec8)
- metadata: unify logger formatting for empty meta entries (725afa4)
- importruns: improve handling of already imported runs (410f631)
- importruns: improve handling of skipping import runs due to period mismatch (6f10627)
- importruns: extract import event creation for better separation of concerns (4718914)
- metadata: make metadata error messages more informative (b0df19a)
- importruns: improve message for missing project (9682eac)
- metadata: make error and log messages consisten (aa5f6ee)
- metadata: make metadata generation error message safer and more generic (44755a3)
- importrun: improve HTTP error event message construction (a07eec5)
- importruns: improve handling of compromised runs (eebff02)
- importruns: centralize handling of URL-fetch failures and compromised runs (13d64bb)
- importruns: extract path-processing event creation for better separation of concerns (8790926)
- importruns: centralize URL fetch failure handling (ac47e22)
- exceprtions: add debug field to Bublik exceptions to improve debugging (d5c7e6f)
- importruns: improve importruns failures debugging (b4d1f54)
- importruns: improve error handling for duplicate exec seqno (5933c5d)
- importruns: improve error handling for duplicate test iteration results (2946507)
- importruns: improve error handling for unsupported view types (90cfe1f)
🧹 Cleanup
- importruns: clean up unused handling of existing MI artifacts (a7cbcdf)

