<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://ts-factory.github.io/blog</id>
    <title>Bublik Blog</title>
    <updated>2026-04-10T00:00:00.000Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://ts-factory.github.io/blog"/>
    <subtitle>Bublik Blog</subtitle>
    <icon>https://ts-factory.github.io/img/favicon.ico</icon>
    <entry>
        <title type="html"><![CDATA[Release v2.11.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.11.0</id>
        <link href="https://ts-factory.github.io/blog/release-v2.11.0"/>
        <updated>2026-04-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We're excited to announce Bublik v2.11.0!]]></summary>
        <content type="html"><![CDATA[<p>We're excited to announce Bublik v2.11.0! <br>
This release adds optional analytics for admins, along with a smoother run filtering workflow and clearer UI feedback. You can now enable auto-apply for click search, see when run filters have pending changes, work with improved grouped badge inputs on the run page, and view a proper empty state on dashboards with no data. We also polished chart legends, sort indicators, and button transitions across the interface.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="whats-new">What's New<a href="https://ts-factory.github.io/blog/release-v2.11.0#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h3>
<p><strong>New Analytics</strong> <br>
We've added optional analytics so admins can see which pages users visit and which actions they take most often.</p>
<p><strong>Click Search Auto-Apply Setting</strong> <br>
You can now enable automatic click search application from settings, reducing manual steps when refining results on the run page.</p>
<p><strong>Clear Feedback for Unapplied Filters</strong> <br>
The run page now highlights the submit button when filters have changed but have not yet been applied, making pending updates immediately visible.</p>
<p><strong>Improved Badge Input for Run Filters</strong> <br>
Run filters now use an updated badge input component with grouping labels, making complex filter sets easier to scan and manage.</p>
<p><strong>UI Polish Across Charts and Controls</strong> <br>
This release also improves sort arrow visibility, formats stacked chart legends with line breaks, and removes button flicker when switching variants.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.11.0#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="faster-click-search-workflow">Faster Click Search Workflow<a href="https://ts-factory.github.io/blog/release-v2.11.0#faster-click-search-workflow" class="hash-link" aria-label="Direct link to Faster Click Search Workflow" title="Direct link to Faster Click Search Workflow" translate="no">​</a></h3>
<p>Click search is now applied automatically, so common run filtering flows require fewer manual actions.
We've introduced toggle (default is enabled) to manage this behaviour.</p>
<p><img decoding="async" loading="lazy" alt="Setting" src="https://ts-factory.github.io/assets/images/run-2-f096fcc3ecf19d493d350d0af02db90d.webp" width="3354" height="2086" class="img_yd8J"></p>
<p><img decoding="async" loading="lazy" alt="Badge Input Imrpoved" src="https://ts-factory.github.io/assets/images/run-1-57975778c625a192362e3e4dfb7f7497.webp" width="3344" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="easier-to-read-run-filters">Easier-To-Read Run Filters<a href="https://ts-factory.github.io/blog/release-v2.11.0#easier-to-read-run-filters" class="hash-link" aria-label="Direct link to Easier-To-Read Run Filters" title="Direct link to Easier-To-Read Run Filters" translate="no">​</a></h3>
<p>The run page now gives clearer feedback when filters are waiting to be applied by highlighting the submit button.
At the same time, the refreshed badge input with grouping labels makes filter configuration easier to read and adjust.</p>
<p><img decoding="async" loading="lazy" alt="Disabled Button" src="https://ts-factory.github.io/assets/images/run-4-43e5f581fe7ebf62ce552bf026885d30.webp" width="3348" height="2086" class="img_yd8J"></p>
<p><img decoding="async" loading="lazy" alt="Enabled Button" src="https://ts-factory.github.io/assets/images/run-3-0bd431d63b2d4a8730e296a137966f59.webp" width="3350" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="cleaner-visual-details">Cleaner Visual Details<a href="https://ts-factory.github.io/blog/release-v2.11.0#cleaner-visual-details" class="hash-link" aria-label="Direct link to Cleaner Visual Details" title="Direct link to Cleaner Visual Details" translate="no">​</a></h3>
<p>Several UI refinements improve day-to-day readability: sort arrows are more visible, and buttons no longer flicker when their variant changes.</p>
<p><img decoding="async" loading="lazy" alt="Sort" src="https://ts-factory.github.io/assets/images/sort-a35543ad2f668ac31d2f64b97eecf017.webp" width="3360" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="charts-legend-stack">Charts Legend Stack<a href="https://ts-factory.github.io/blog/release-v2.11.0#charts-legend-stack" class="hash-link" aria-label="Direct link to Charts Legend Stack" title="Direct link to Charts Legend Stack" translate="no">​</a></h3>
<p>Now in case of stacked charts we place legend items in a row with wrapping so it's easier to toggle legend items instead of arrows with scroll.</p>
<p><img decoding="async" loading="lazy" alt="Chart" src="https://ts-factory.github.io/assets/images/chart-1-dd79d2222952830b6b6d7985a05f7501.webp" width="3352" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="analytics-page">Analytics Page<a href="https://ts-factory.github.io/blog/release-v2.11.0#analytics-page" class="hash-link" aria-label="Direct link to Analytics Page" title="Direct link to Analytics Page" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-warning admonition__kCM alert alert--warning"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</div><div class="admonitionContent_ZufO"><p>You must be logged in as admin user to see this page</p></div></div>
<p><img decoding="async" loading="lazy" alt="Analytics Page" src="https://ts-factory.github.io/assets/images/al-1-5a8e212a078e215a464fdca2c13c0a24.webp" width="3410" height="2121" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.11.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<p>For full setup instructions for analytics, see the <a class="" href="https://ts-factory.github.io/configuration/analytics">Analytics Configuration</a> documentation.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.11.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.11.0</code></li>
<li class=""><code>./scripts/deploy --steps general_conf pip_requirements django_settings run_services</code></li>
</ol>
<p>Analytics is disabled by default. To enable it, follow these steps:</p>
<ol>
<li class="">Enable analytics in the configuration file <em>bublik/general.conf</em>: <code>ANALYTICS_ENABLE="True"</code></li>
<li class="">Apply updated Django settings and restart services: <code>./scripts/deploy --steps django_settings run_services</code></li>
<li class="">Activate the virtual environment: <code>source .env/bin/activate</code></li>
<li class="">Run analytics database migrations: <code>python manage.py migrate analytics</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.11.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.11.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.11.0#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.11.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.11.0#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class="">
<p><code>task backup:create</code></p>
</li>
<li class="">
<p>Open your <code>.env</code> file and change <code>IMAGE_TAG</code> to <code>2.11.0</code></p>
</li>
<li class="">
<p>To enable <strong>optional</strong> anonymous analytics, append these variables to your <code>.env</code> file:</p>
<div class="language-bash codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-bash codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token assign-left variable" style="color:#36acaa">ANALYTICS_ENABLED</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">false </span><span class="token comment" style="color:#999988;font-style:italic"># set to true if you want analytics enabled</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token assign-left variable" style="color:#36acaa">ANALYTICS_DB_PATH</span><span class="token operator" style="color:#393A34">=</span><span class="token plain">/app/bublik/logs/analytics.sqlite3</span><br></div></code></pre></div></div>
</li>
<li class="">
<p><code>task pull</code></p>
</li>
<li class="">
<p><code>task up</code></p>
</li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.11.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.11.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.11.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>admin:</strong> add analytics event tracking to admin user page (<a href="https://github.com/ts-factory/bublik-ui/commit/6889affad2fcdc6663fa5283b5197d7fbcab2f81" target="_blank" rel="noopener noreferrer" class="">6889aff</a>)</li>
<li class=""><strong>analytics:</strong> add analytics library (<a href="https://github.com/ts-factory/bublik-ui/commit/4c13c82d984bb9d2507e49e7101c3039e4175329" target="_blank" rel="noopener noreferrer" class="">4c13c82</a>)</li>
<li class=""><strong>analytics:</strong> add analytics page and route visit tracking (<a href="https://github.com/ts-factory/bublik-ui/commit/986e166292e2975e1475c3220066a26c84dce892" target="_blank" rel="noopener noreferrer" class="">986e166</a>)</li>
<li class=""><strong>analytics:</strong> add API endpoints for analytics (<a href="https://github.com/ts-factory/bublik-ui/commit/9189d416d23b63efa02c6eb5c74e0045b4fb2c4f" target="_blank" rel="noopener noreferrer" class="">9189d41</a>)</li>
<li class=""><strong>auth:</strong> add analytics event tracking to email page (<a href="https://github.com/ts-factory/bublik-ui/commit/fb8992142edf5ce7f1a3ba3acfd4359c7b32c705" target="_blank" rel="noopener noreferrer" class="">fb89921</a>)</li>
<li class=""><strong>config:</strong> add analytics event tracking to configs page (<a href="https://github.com/ts-factory/bublik-ui/commit/a26b7e042e01201e34262e3b1ce24f204bb0a44e" target="_blank" rel="noopener noreferrer" class="">a26b7e0</a>)</li>
<li class=""><strong>dashboard:</strong> add analytics event tracking to dashboard page (<a href="https://github.com/ts-factory/bublik-ui/commit/1c53ef35fb775f32845a5ebb7c5f1fafcf628def" target="_blank" rel="noopener noreferrer" class="">1c53ef3</a>)</li>
<li class=""><strong>history:</strong> add analytics event tracking to history page (<a href="https://github.com/ts-factory/bublik-ui/commit/01fc28a7088104c7bad6a7250981200919e87e5c" target="_blank" rel="noopener noreferrer" class="">01fc28a</a>)</li>
<li class=""><strong>history:</strong> add analytics event tracking to history shortcut links (<a href="https://github.com/ts-factory/bublik-ui/commit/4181aabc20130ead56e41fb9a356d8f2aa2ef945" target="_blank" rel="noopener noreferrer" class="">4181aab</a>)</li>
<li class=""><strong>import:</strong> add analytics events tracking to import page (<a href="https://github.com/ts-factory/bublik-ui/commit/f5c0069a7678f2c2f35263e7b63a29927f9a776e" target="_blank" rel="noopener noreferrer" class="">f5c0069</a>)</li>
<li class=""><strong>log:</strong> add analytics event tracking to log <code>pcap</code> attachment page (<a href="https://github.com/ts-factory/bublik-ui/commit/d04c3b49937d8e659911424e238c0712bf479918" target="_blank" rel="noopener noreferrer" class="">d04c3b4</a>)</li>
<li class=""><strong>log:</strong> add analytics event tracking to log page (<a href="https://github.com/ts-factory/bublik-ui/commit/2e519b22683deb8ec4b1ad392a628f49ccb4e591" target="_blank" rel="noopener noreferrer" class="">2e519b2</a>)</li>
<li class=""><strong>report:</strong> add analytics event tracking to report page (<a href="https://github.com/ts-factory/bublik-ui/commit/6e060c625ec56e2803b5675204c7e377d2607bbf" target="_blank" rel="noopener noreferrer" class="">6e060c6</a>)</li>
<li class=""><strong>result:</strong> add analytics event tracking to result page (<a href="https://github.com/ts-factory/bublik-ui/commit/35f60b94f9dad3b8577f90829d9f72320acfaf34" target="_blank" rel="noopener noreferrer" class="">35f60b9</a>)</li>
<li class=""><strong>run,settings:</strong> add settings to auto apply click search (<a href="https://github.com/ts-factory/bublik-ui/commit/a88725d02f95902df698a640e1111b2a5c94de63" target="_blank" rel="noopener noreferrer" class="">a88725d</a>)</li>
<li class=""><strong>run:</strong> add analytics event tracking to run page (<a href="https://github.com/ts-factory/bublik-ui/commit/0d096759fc6214447ce2f27047358a6002dae711" target="_blank" rel="noopener noreferrer" class="">0d09675</a>)</li>
<li class=""><strong>run:</strong> highlight submit button in case filters are not applied (<a href="https://github.com/ts-factory/bublik-ui/commit/2c04b345414f7c72b1f0d236ecf8630fc3f538aa" target="_blank" rel="noopener noreferrer" class="">2c04b34</a>)</li>
<li class=""><strong>runs:</strong> add analytics event tracking to runs page (<a href="https://github.com/ts-factory/bublik-ui/commit/a7d910e3f08881a965375a85004ac818f72f0a12" target="_blank" rel="noopener noreferrer" class="">a7d910e</a>)</li>
<li class=""><strong>settings:</strong> add reusable hook for listening for storage events (<a href="https://github.com/ts-factory/bublik-ui/commit/4747032cf3cb68e517306771a8ec8f6831c61de5" target="_blank" rel="noopener noreferrer" class="">4747032</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.11.0#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>dashboard,run:</strong> make sort arrow bigger to improve visibility (<a href="https://github.com/ts-factory/bublik-ui/commit/c5d1cff96841594d21d67d19d409f8580d88ed39" target="_blank" rel="noopener noreferrer" class="">c5d1cff</a>)</li>
<li class=""><strong>report,history:</strong> [stacked-chart] display legend with line breaks (<a href="https://github.com/ts-factory/bublik-ui/commit/f115923706aa0b75a3dea28475c0291601e22a43" target="_blank" rel="noopener noreferrer" class="">f115923</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/487" target="_blank" rel="noopener noreferrer" class="">#487</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.11.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> prevent hover card tags from being cut off (<a href="https://github.com/ts-factory/bublik-ui/commit/8a8613ea3911ce00330a4712f3681b62a5cab385" target="_blank" rel="noopener noreferrer" class="">8a8613e</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.11.0#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>run:</strong> use new badge input component with grouping labels (<a href="https://github.com/ts-factory/bublik-ui/commit/bc55e7b5831f88b5af5ba632f1224148159a2a84" target="_blank" rel="noopener noreferrer" class="">bc55e7b</a>)</li>
<li class=""><strong>ui:</strong> improve badge input component for run page (<a href="https://github.com/ts-factory/bublik-ui/commit/fc97d97b2d97b612747e307a326c735f3d781fa1" target="_blank" rel="noopener noreferrer" class="">fc97d97</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.11.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>runs:</strong> align filter param names with backend changes (<a href="https://github.com/ts-factory/bublik-ui/commit/31bda0bb94836dcd0596402e80a20806961fbc7a" target="_blank" rel="noopener noreferrer" class="">31bda0b</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.11.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.11.0#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> improve API safety by restricting HTTP methods (<a href="https://github.com/ts-factory/bublik/commit/da254f9c6663cac88d3a78c5e73935a3d58dddc5" target="_blank" rel="noopener noreferrer" class="">da254f9</a>)</li>
<li class=""><strong>requirements:</strong> fix missing MCP server startup dependencies (<a href="https://github.com/ts-factory/bublik/commit/576d56be3c9ffc8808133f3add89fb78583a9418" target="_blank" rel="noopener noreferrer" class="">576d56b</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.11.0#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>analytics:</strong> add analytics event ingestion and reporting API (<a href="https://github.com/ts-factory/bublik/commit/2e42bb971cf6e7db0eeda0b13d41858027aea908" target="_blank" rel="noopener noreferrer" class="">2e42bb9</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores-1">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.11.0#-chores-1" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>requirements:</strong> update packages versions to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/71d063a38c26ef27c818dcdf47c4bf2d8c5211c3" target="_blank" rel="noopener noreferrer" class="">71d063a</a>)</li>
<li class=""><strong>deploy:</strong> eliminate manual export of analytics settings (<a href="https://github.com/ts-factory/bublik/commit/9d4b0ca8afd65b8f8ffc33bb4d285ef12e82c213" target="_blank" rel="noopener noreferrer" class="">9d4b0ca</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.11.0#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>server:</strong> mark tab_title_prefix <code>request</code> arg as unused (<a href="https://github.com/ts-factory/bublik/commit/b48aea129a194f5b5cf1220e6e5499835175b9dc" target="_blank" rel="noopener noreferrer" class="">b48aea1</a>)</li>
<li class=""><strong>runs:</strong> make metadata filtering param name more descriptive (<a href="https://github.com/ts-factory/bublik/commit/592bfc2183a2fad3fbf484edc1c9a337438032f0" target="_blank" rel="noopener noreferrer" class="">592bfc2</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v2.11.0#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> clean up unused configuration filter (<a href="https://github.com/ts-factory/bublik/commit/0e115d57b2fd5750d3302caa4e9d3642952e3cff" target="_blank" rel="noopener noreferrer" class="">0e115d5</a>)</li>
<li class=""><strong>deploy:</strong> improve general.conf readability (<a href="https://github.com/ts-factory/bublik/commit/03b94a83af00b5be7b281842d9a1c7cd19c73727" target="_blank" rel="noopener noreferrer" class="">03b94a8</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.10.5]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.10.5</id>
        <link href="https://ts-factory.github.io/blog/release-v2.10.5"/>
        <updated>2026-02-24T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We're excited to announce Bublik v2.10.5!]]></summary>
        <content type="html"><![CDATA[<p>We're excited to announce Bublik v2.10.5! <br>
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.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="whats-new">What's New<a href="https://ts-factory.github.io/blog/release-v2.10.5#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h3>
<p><strong>MCP Server</strong> <br>
In this release, we've added an MCP (Model Context Protocol) server, enabling seamless integration with AI agents and assistants.</p>
<p><strong>Run Filters for Obtained Results</strong> <br>
We've enhanced the run page with powerful new filtering capabilities in the results table.</p>
<p><strong>History Global Search Form Improved</strong> <br>
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.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.10.5#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="mcp-server">MCP Server<a href="https://ts-factory.github.io/blog/release-v2.10.5#mcp-server" class="hash-link" aria-label="Direct link to MCP Server" title="Direct link to MCP Server" translate="no">​</a></h3>
<p>We're introducing a Model Context Protocol (MCP) server that allows AI agents to interact with Bublik programmatically. This opens up possibilities for:</p>
<ul>
<li class=""><strong>Automated Analysis</strong>: Let AI assistants analyze test failures and identify patterns</li>
<li class=""><strong>Natural Language Queries</strong>: Ask questions about your test data in plain language</li>
<li class=""><strong>Workflow Integration</strong>: Connect Bublik to your existing AI-powered workflows</li>
</ul>
<p>Here's an example of naive just for the start <a href="https://opncd.ai/share/u17o7d4z" target="_blank" rel="noopener noreferrer" class="">conversation</a></p>
<p>You can connect to it via these configs as an example:</p>
<ol>
<li class="">OpenCode:</li>
</ol>
<div class="language-json codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-json codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token property" style="color:#36acaa">"bublik-mcp"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"remote"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"url"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://&lt;bublik_url&gt;/mcp"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<ol start="2">
<li class="">Claude:</li>
</ol>
<div class="language-json codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-json codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token property" style="color:#36acaa">"bublik-mcp"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token punctuation" style="color:#393A34">{</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"type"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"http"</span><span class="token punctuation" style="color:#393A34">,</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">  </span><span class="token property" style="color:#36acaa">"url"</span><span class="token operator" style="color:#393A34">:</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"https://&lt;bublik_url&gt;/mcp"</span><span class="token plain"></span><br></div><div class="token-line" style="color:#393A34"><span class="token plain"></span><span class="token punctuation" style="color:#393A34">}</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="run-filters-for-obtained-results">Run Filters For Obtained Results<a href="https://ts-factory.github.io/blog/release-v2.10.5#run-filters-for-obtained-results" class="hash-link" aria-label="Direct link to Run Filters For Obtained Results" title="Direct link to Run Filters For Obtained Results" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Run filters for obtained results" src="https://ts-factory.github.io/assets/images/run-1-e158024e2ff34d5fbe9baa54892a653d.webp" width="3360" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="history-global-search-form-improved">History Global Search Form Improved<a href="https://ts-factory.github.io/blog/release-v2.10.5#history-global-search-form-improved" class="hash-link" aria-label="Direct link to History Global Search Form Improved" title="Direct link to History Global Search Form Improved" translate="no">​</a></h3>
<p>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.</p>
<p><img decoding="async" loading="lazy" alt="Updated history global search form" src="https://ts-factory.github.io/assets/images/history-1-a887849750b7b9ed09b9d3b5cca13adb.webp" width="3356" height="2086" class="img_yd8J"></p>
<p><strong>Cleaner Legend</strong> — We've also removed unnecessary clutter from the history legend by hiding empty values, giving you a cleaner view of your test data.</p>
<p><img decoding="async" loading="lazy" alt="Cleaned up history legend" src="https://ts-factory.github.io/assets/images/history-2-9677ca8af2b1908ffa0e44880f07f767.webp" width="3350" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="dashboard-navigation-tooltips-improved">Dashboard Navigation Tooltips Improved<a href="https://ts-factory.github.io/blog/release-v2.10.5#dashboard-navigation-tooltips-improved" class="hash-link" aria-label="Direct link to Dashboard Navigation Tooltips Improved" title="Direct link to Dashboard Navigation Tooltips Improved" translate="no">​</a></h3>
<p>Dashboard tooltips now display the navigation target rather than repeating the value, making navigation easier to understand.</p>
<p><img decoding="async" loading="lazy" alt="Dashboard" src="https://ts-factory.github.io/assets/images/dashboard-1-4a9637db95295b97a19e7870d33421c5.webp" width="3354" height="2086" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.10.5#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.10.5#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-warning admonition__kCM alert alert--warning"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</div><div class="admonitionContent_ZufO"><p>The <code>nginx_conf</code> and <code>run_side_servers</code> deployment steps require root rights. If you don't have root access, you must manually update the Nginx configuration using <code>bublik/templates/nginx.bublik.template</code> and reload Nginx.</p></div></div>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.10.5</code></li>
<li class="">Set path for user systemd services:</li>
</ol>
<div class="language-bash codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-bash codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:#36acaa">USER_SERVICES_PATH</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"</span><span class="token string variable" style="color:#36acaa">${</span><span class="token string variable environment constant" style="color:#36acaa">HOME</span><span class="token string variable" style="color:#36acaa">}</span><span class="token string" style="color:#e3116c">/.config/systemd/user"</span><br></div></code></pre></div></div>
<ol start="5">
<li class="">Set full path for the MCP service file:</li>
</ol>
<div class="language-bash codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-bash codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token builtin class-name">export</span><span class="token plain"> </span><span class="token assign-left variable" style="color:#36acaa">MCP_SERVICE_PATH</span><span class="token operator" style="color:#393A34">=</span><span class="token string" style="color:#e3116c">"</span><span class="token string variable" style="color:#36acaa">${USER_SERVICES_PATH}</span><span class="token string" style="color:#e3116c">/bublik-mcp.service"</span><br></div></code></pre></div></div>
<ol start="6">
<li class="">Create the user systemd directory:</li>
</ol>
<div class="language-bash codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-bash codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">mkdir</span><span class="token plain"> </span><span class="token parameter variable" style="color:#36acaa">-p</span><span class="token plain"> </span><span class="token variable" style="color:#36acaa">$USER_SERVICES_PATH</span><br></div></code></pre></div></div>
<ol start="7">
<li class="">Run deploy script with steps:</li>
</ol>
<div class="language-bash codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-bash codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token plain">./scripts/deploy </span><span class="token parameter variable" style="color:#36acaa">--steps</span><span class="token plain"> general_conf pip_requirements django_settings mcp_service nginx_conf run_side_servers run_services</span><br></div></code></pre></div></div>
<ol start="8">
<li class="">Clear all Redis caches to remove old data due to changing the caching backend:</li>
</ol>
<div class="language-bash codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-bash codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token plain">redis-cli FLUSHALL</span><br></div></code></pre></div></div>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.10.5#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.10.5</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.10.5#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.10.5</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.10.5#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code></li>
<li class="">Open your <code>.env</code> file and change <code>IMAGE_TAG</code> to <code>2.10.0</code></li>
<li class=""><code>grep -q "BUBLIK_DOCKER_MCP_HOST" .env || echo "BUBLIK_DOCKER_MCP_HOST=127.0.0.1" &gt;&gt; .env</code></li>
<li class=""><code>grep -q "BUBLIK_DOCKER_MCP_PORT" .env || echo "BUBLIK_DOCKER_MCP_PORT=8001" &gt;&gt; .env</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
<li class=""><code>task reset-redis-cache</code></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.10.5#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.10.5#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.10.5#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>api:</strong> add components for handling API errors in a centralized manner (<a href="https://github.com/ts-factory/bublik-ui/commit/fba28d8e93e9df787bcb7a1eb1dc55efab0948b4" target="_blank" rel="noopener noreferrer" class="">fba28d8</a>)</li>
<li class=""><strong>api:</strong> add normalized error handling (<a href="https://github.com/ts-factory/bublik-ui/commit/c8c5a06897ce126ac94aa77e863cbc8988472c4c" target="_blank" rel="noopener noreferrer" class="">c8c5a06</a>)</li>
<li class=""><strong>api:</strong> create library for centralized display of API errors (<a href="https://github.com/ts-factory/bublik-ui/commit/0f5c4231cefd85decd91c8e31138aea0909d890a" target="_blank" rel="noopener noreferrer" class="">0f5c423</a>)</li>
<li class=""><strong>run:</strong> expose obtained-result facets in result table toolbar (<a href="https://github.com/ts-factory/bublik-ui/commit/302ee2cf2b0cd1122ee45ccceea6c8caeb3fea23" target="_blank" rel="noopener noreferrer" class="">302ee2c</a>)</li>
<li class=""><strong>ui:</strong> [input] allow input to oprionally show end of value on mount (<a href="https://github.com/ts-factory/bublik-ui/commit/302c4996b4feb593967d482d1ceca50544b6472f" target="_blank" rel="noopener noreferrer" class="">302c499</a>)</li>
<li class=""><strong>ui:</strong> add shared primitives for handling API errors in a centralized manner (<a href="https://github.com/ts-factory/bublik-ui/commit/cfa28df791e9af563efd85ea78a3abf8c5e9f7bb" target="_blank" rel="noopener noreferrer" class="">cfa28df</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.10.5#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>dashboard:</strong> remove line wrap for run progress nok/ok results (<a href="https://github.com/ts-factory/bublik-ui/commit/063be18160a21f9119bbd969f0f5d49c948225f6" target="_blank" rel="noopener noreferrer" class="">063be18</a>)</li>
<li class=""><strong>dashboard:</strong> separate refresh button from clock widget (<a href="https://github.com/ts-factory/bublik-ui/commit/a829ceea46624908de9f0364160f08ef01456c31" target="_blank" rel="noopener noreferrer" class="">a829cee</a>)</li>
<li class=""><strong>dashboard:</strong> [header] align header items gap with the rest of the app style (<a href="https://github.com/ts-factory/bublik-ui/commit/cfdf3578801cf103891064cd17c8ca512f68d208" target="_blank" rel="noopener noreferrer" class="">cfdf357</a>)</li>
<li class=""><strong>form:</strong> change gray color for input placeholders and app labels (<a href="https://github.com/ts-factory/bublik-ui/commit/e596185f3748b85157a1a4e2cca8f642b131fa16" target="_blank" rel="noopener noreferrer" class="">e596185</a>)</li>
<li class=""><strong>history:</strong> capitalize labels for history legend items (<a href="https://github.com/ts-factory/bublik-ui/commit/eb8978efd7c6110a52237514308664fe6db58ec8" target="_blank" rel="noopener noreferrer" class="">eb8978e</a>)</li>
<li class=""><strong>history:</strong> don't display placeholder for empty legend items (<a href="https://github.com/ts-factory/bublik-ui/commit/8867bfa31dd7bba53dba88a6f0d282f2afba4d90" target="_blank" rel="noopener noreferrer" class="">8867bfa</a>)</li>
<li class=""><strong>log:</strong> [meta] improve structure for log time information (<a href="https://github.com/ts-factory/bublik-ui/commit/d855ce4afe972fdb8b2c729c1071d3ec98c8c4d4" target="_blank" rel="noopener noreferrer" class="">d855ce4</a>)</li>
<li class=""><strong>ui:</strong> [checkbox] allow passing className for icon as a prop (<a href="https://github.com/ts-factory/bublik-ui/commit/90e0ddc7ea91f60dfb60791dc5784569b23ae31e" target="_blank" rel="noopener noreferrer" class="">90e0ddc</a>)</li>
<li class=""><strong>ui:</strong> [hover-card] fix incorrect arrow position (<a href="https://github.com/ts-factory/bublik-ui/commit/c98341434b71c2da98bc33ede8570e336fac1f0b" target="_blank" rel="noopener noreferrer" class="">c983414</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.10.5#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> stop prefiltering history shortcuts by classification (<a href="https://github.com/ts-factory/bublik-ui/commit/a69e2125a4c59c96ef3aa0f595428ba2b1d29e77" target="_blank" rel="noopener noreferrer" class="">a69e212</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/512" target="_blank" rel="noopener noreferrer" class="">#512</a></li>
<li class=""><strong>log:</strong> expand nested <code>ERROR</code> rows in log (<a href="https://github.com/ts-factory/bublik-ui/commit/be1288a49cbe46429911202392d5de7cd22b7339" target="_blank" rel="noopener noreferrer" class="">be1288a</a>)</li>
<li class=""><strong>run:</strong> [details] clarify Run ID label (<a href="https://github.com/ts-factory/bublik-ui/commit/79f7e2fc688d64072c111b31a917e251a9ac821c" target="_blank" rel="noopener noreferrer" class="">79f7e2f</a>)</li>
<li class=""><strong>run:</strong> [multiple] preserve <code>runIds</code> query params on columns reset (<a href="https://github.com/ts-factory/bublik-ui/commit/3f89cee24ac6ba232ce708411557731d5b54c654" target="_blank" rel="noopener noreferrer" class="">3f89cee</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/511" target="_blank" rel="noopener noreferrer" class="">#511</a></li>
<li class=""><strong>run:</strong> make filtering exact and prevent accidental dim reference selection (<a href="https://github.com/ts-factory/bublik-ui/commit/e401dedcd72188c2a2251c6d7e0c4885257a02ff" target="_blank" rel="noopener noreferrer" class="">e401ded</a>)</li>
<li class=""><strong>runs,history,report:</strong> fix memory leak (<a href="https://github.com/ts-factory/bublik-ui/commit/4527f0ac1ddbd21ccda83113ae3cc21fad37d05c" target="_blank" rel="noopener noreferrer" class="">4527f0a</a>)</li>
<li class=""><strong>runs:</strong> [charts] align day charts to daily aggregates (<a href="https://github.com/ts-factory/bublik-ui/commit/55ae3dc2510b132eacfa20e1b393651453eb7c99" target="_blank" rel="noopener noreferrer" class="">55ae3dc</a>)</li>
<li class=""><strong>runs:</strong> [charts] guard pass rate against zero totals (<a href="https://github.com/ts-factory/bublik-ui/commit/8d854794d686e984e8df93c90b8835ecd30a0a99" target="_blank" rel="noopener noreferrer" class="">8d85479</a>)</li>
<li class=""><strong>runs:</strong> rename metadata filter label from 'Tags' to 'Metas' (<a href="https://github.com/ts-factory/bublik-ui/commit/816081352be73733fe68d12093f5d46f813f9629" target="_blank" rel="noopener noreferrer" class="">8160813</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/505" target="_blank" rel="noopener noreferrer" class="">#505</a></li>
<li class=""><strong>dashboard:</strong> incorrect prefetch without project filters (<a href="https://github.com/ts-factory/bublik-ui/commit/bc7595adb29397d3ef2ccf7e7ddacd57a5c6c3c0" target="_blank" rel="noopener noreferrer" class="">bc7595a</a>)</li>
<li class=""><strong>dashboard:</strong> prevent empty-state flicker when changing project filter (<a href="https://github.com/ts-factory/bublik-ui/commit/15d297ee142f0cde5193b9a892f22b4cdc9ae9cb" target="_blank" rel="noopener noreferrer" class="">15d297e</a>)</li>
<li class=""><strong>config:</strong> sanitize persisted editor content (<a href="https://github.com/ts-factory/bublik-ui/commit/9439acfc6487d76fd0fa42e77f695d7a4efc6d01" target="_blank" rel="noopener noreferrer" class="">9439acf</a>)</li>
<li class=""><strong>dashboard:</strong> display API errors for implicit-date resolution failures (<a href="https://github.com/ts-factory/bublik-ui/commit/ebfb41175e42e75f57e503e5e0154a83d1a5abd4" target="_blank" rel="noopener noreferrer" class="">ebfb411</a>)</li>
<li class=""><strong>dashboard:</strong> don't show stale data in case of error (<a href="https://github.com/ts-factory/bublik-ui/commit/07187885a5d601b0430bbba7a51ec3bf2831af32" target="_blank" rel="noopener noreferrer" class="">0718788</a>)</li>
<li class=""><strong>dashboard:</strong> validation error when dashboard contains report links (<a href="https://github.com/ts-factory/bublik-ui/commit/238cfd39e80d9fc9fa36333e1a8bbce22a15db09" target="_blank" rel="noopener noreferrer" class="">238cfd3</a>)</li>
<li class="">
<ul>
<li class=""><strong>dashboard:</strong> show empty dashboard in case of no data from API (<a href="https://github.com/ts-factory/bublik-ui/commit/9fbdfad9432d2273f0a742345e5db92e00e0618b" target="_blank" rel="noopener noreferrer" class="">9fbdfad</a>)</li>
</ul>
</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.10.5#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> revamp global search form interactions (<a href="https://github.com/ts-factory/bublik-ui/commit/b7c3d910c8b7c13842b6f169136c4444fcfa197c" target="_blank" rel="noopener noreferrer" class="">b7c3d91</a>)</li>
<li class=""><strong>report:</strong> extract hooks for performance from report to reusable library (<a href="https://github.com/ts-factory/bublik-ui/commit/fc1fb293541b67e4c874d6e162399b01c5e814ed" target="_blank" rel="noopener noreferrer" class="">fc1fb29</a>)</li>
<li class=""><strong>run:</strong> make dim mode default in result table (<a href="https://github.com/ts-factory/bublik-ui/commit/5cd151b52f486af65109ba3a19c55378eab933e5" target="_blank" rel="noopener noreferrer" class="">5cd151b</a>)</li>
<li class=""><strong>ui:</strong> [badge-input] improve ergonomics (<a href="https://github.com/ts-factory/bublik-ui/commit/523907dc876b43719dfba9ead16940b8d0d77a61" target="_blank" rel="noopener noreferrer" class="">523907d</a>)</li>
<li class="">use single component for API errors handling and empty states (<a href="https://github.com/ts-factory/bublik-ui/commit/2e54fda1f5500d890057006bf5d3c6653e12eb4b" target="_blank" rel="noopener noreferrer" class="">2e54fda</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.10.5#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>dashboard:</strong> remove links from subrow and add link hints to tooltips (<a href="https://github.com/ts-factory/bublik-ui/commit/93d11fa5217a2439a2dcf7c04ce9f5ba528be36e" target="_blank" rel="noopener noreferrer" class="">93d11fa</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/488" target="_blank" rel="noopener noreferrer" class="">#488</a></li>
<li class=""><strong>history:</strong> rename "Test Name" to "Test Path" (<a href="https://github.com/ts-factory/bublik-ui/commit/6b5ff6839753a77f2be7b0c9bcd33ff60af43e7b" target="_blank" rel="noopener noreferrer" class="">6b5ff68</a>)</li>
<li class=""><strong>run:</strong> [comment] close after succesufull edit/create/update form (<a href="https://github.com/ts-factory/bublik-ui/commit/7aa905d076df90eb40f3c9c5e9d9a3f5deb78568" target="_blank" rel="noopener noreferrer" class="">7aa905d</a>)</li>
<li class=""><strong>run:</strong> [result-table] move button and rename to "Filters" for opening toolbar (<a href="https://github.com/ts-factory/bublik-ui/commit/33de7fffb348f90ef478a95984a8dbaa33b75ff4" target="_blank" rel="noopener noreferrer" class="">33de7ff</a>)</li>
<li class=""><strong>test:</strong> update snapshot tests (<a href="https://github.com/ts-factory/bublik-ui/commit/da533b70a78a1a8d2b58481e19ab4bd99cc07ea0" target="_blank" rel="noopener noreferrer" class="">da533b7</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-performance-improvements">⚡ Performance Improvements<a href="https://ts-factory.github.io/blog/release-v2.10.5#-performance-improvements" class="hash-link" aria-label="Direct link to ⚡ Performance Improvements" title="Direct link to ⚡ Performance Improvements" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> [series] improve performance of series charts (<a href="https://github.com/ts-factory/bublik-ui/commit/bc58b7a50199267a1e6fc2024bd927d1ad568eae" target="_blank" rel="noopener noreferrer" class="">bc58b7a</a>)</li>
<li class=""><strong>report:</strong> improve performance for report charts (<a href="https://github.com/ts-factory/bublik-ui/commit/a42f5305e2d49721e9df6ab05c5056c7bc3407b2" target="_blank" rel="noopener noreferrer" class="">a42f530</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.10.5#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.10.5#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>metadata:</strong> fix false positive LSP error (<a href="https://github.com/ts-factory/bublik/commit/a0630818d967856162c00a1395fa87f36cb82ba5" target="_blank" rel="noopener noreferrer" class="">a063081</a>)</li>
<li class=""><strong>history:</strong> fix full test path parsing during history search (<a href="https://github.com/ts-factory/bublik/commit/276d0f240deee5d78f22f1ae862c84b92f459835" target="_blank" rel="noopener noreferrer" class="">276d0f2</a>)</li>
<li class=""><strong>history:</strong> fix test retrieval by full path by removing legacy session traversal (<a href="https://github.com/ts-factory/bublik/commit/72a79d8da04e0a38c7c69334f8760c7bdc2474f5" target="_blank" rel="noopener noreferrer" class="">72a79d8</a>), closes <a href="https://github.com/ts-factory/bublik/issues/277" target="_blank" rel="noopener noreferrer" class="">#277</a></li>
<li class=""><strong>dashboard:</strong> fix formatting validation to ignore default 'progress' (<a href="https://github.com/ts-factory/bublik/commit/6c32c3b743519b443807e4378021e4e67e662cf4" target="_blank" rel="noopener noreferrer" class="">6c32c3b</a>)</li>
<li class=""><strong>dashboard:</strong> prevent shared state between payload instances (<a href="https://github.com/ts-factory/bublik/commit/744641464daba283d01643e7a1bb89518160fb36" target="_blank" rel="noopener noreferrer" class="">7446414</a>)</li>
<li class=""><strong>runs:</strong> ensure project parameter is correctly typed (<a href="https://github.com/ts-factory/bublik/commit/affd42c5c5ac38ccc8f3e5bf339d322283c3e306" target="_blank" rel="noopener noreferrer" class="">affd42c</a>)</li>
<li class=""><strong>dashboard:</strong> fix passing ignore parameter for formatting validation (<a href="https://github.com/ts-factory/bublik/commit/4363497a96a28d125191b864e2c2697848042989" target="_blank" rel="noopener noreferrer" class="">4363497</a>)</li>
<li class=""><strong>requirements:</strong> fix Python 3.12+ incompatibility by dropping XStatic-Treeview (<a href="https://github.com/ts-factory/bublik/commit/bbca8120f05460b3fba00e39ccd9bb0c9055c7a6" target="_blank" rel="noopener noreferrer" class="">bbca812</a>)</li>
<li class=""><strong>nginx:</strong> fix hardcoded URL prefix in MCP location (<a href="https://github.com/ts-factory/bublik/commit/fd405a0048fcb22547097fe7932fe17650afc735" target="_blank" rel="noopener noreferrer" class="">fd405a0</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.10.5#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>run data:</strong> make VCS tags visible in revisions list in run details (<a href="https://github.com/ts-factory/bublik/commit/fdf49829f89b4b43c54a7f111b346a6a52e64bb6" target="_blank" rel="noopener noreferrer" class="">fdf4982</a>)</li>
<li class=""><strong>mcp:</strong> add pagination helpers for usage in MCP (<a href="https://github.com/ts-factory/bublik/commit/35b24afee08aa64f6b33ddf11d1d9aa3243fbee0" target="_blank" rel="noopener noreferrer" class="">35b24af</a>)</li>
<li class=""><strong>mcp:</strong> add MCP server implementation (<a href="https://github.com/ts-factory/bublik/commit/06d5a1a4be102165f338fdd673705ef93c46f82c" target="_blank" rel="noopener noreferrer" class="">06d5a1a</a>)</li>
<li class=""><strong>log:</strong> add json log pydantic models for validation (<a href="https://github.com/ts-factory/bublik/commit/2810fc8a910ba82fb580e558bb631b121f105185" target="_blank" rel="noopener noreferrer" class="">2810fc8</a>)</li>
<li class=""><strong>log:</strong> add json log processor for processing log to markdown (<a href="https://github.com/ts-factory/bublik/commit/533d3891e7b7ed3a36c237b5fa9414ba7f071c7f" target="_blank" rel="noopener noreferrer" class="">533d389</a>)</li>
<li class=""><strong>deploy:</strong> add MCP service deployment (<a href="https://github.com/ts-factory/bublik/commit/401ec32de1a21c978f8a19f8ac21e0d78a2328c0" target="_blank" rel="noopener noreferrer" class="">401ec32</a>)</li>
<li class=""><strong>nginx:</strong> add Nginx proxy for MCP service (<a href="https://github.com/ts-factory/bublik/commit/80111cbe71d482046142af3ec921dc4a9535fcf6" target="_blank" rel="noopener noreferrer" class="">80111cb</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-performance-improvements-1">⚡ Performance Improvements<a href="https://ts-factory.github.io/blog/release-v2.10.5#-performance-improvements-1" class="hash-link" aria-label="Direct link to ⚡ Performance Improvements" title="Direct link to ⚡ Performance Improvements" translate="no">​</a></h4>
<ul>
<li class=""><strong>dashboard:</strong> improve performance when applying payload to rows (<a href="https://github.com/ts-factory/bublik/commit/b215b01e0725d698c7936ddbf5cb8b87e3372645" target="_blank" rel="noopener noreferrer" class="">b215b01</a>)</li>
<li class=""><strong>dashboard:</strong> improve performance when building dashboard rows (<a href="https://github.com/ts-factory/bublik/commit/8c1989df0a893818d120549bc3ce730b678dd9cc" target="_blank" rel="noopener noreferrer" class="">8c1989d</a>)</li>
<li class=""><strong>runs:</strong> fix lazy evaluation to prevent extra queries for run IDs (<a href="https://github.com/ts-factory/bublik/commit/3ee9753ce063450bdfe7b400ff1b0a11099b4eca" target="_blank" rel="noopener noreferrer" class="">3ee9753</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores-1">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.10.5#-chores-1" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>requirements:</strong> update packages versions to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/76f2d177be4286e35dccad9a3bccc10c3d1f8835" target="_blank" rel="noopener noreferrer" class="">76f2d17</a>)</li>
<li class=""><strong>requirements:</strong> add and upgrade required dependencies for MCP server integration (<a href="https://github.com/ts-factory/bublik/commit/fe5c98274820409b340b435cb581d9dd97871ef4" target="_blank" rel="noopener noreferrer" class="">fe5c982</a>)</li>
<li class=""><strong>requirements:</strong> update Django version to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/a262442f7cf6d62148dff601998e4538ec5d554c" target="_blank" rel="noopener noreferrer" class="">a262442</a>)</li>
<li class=""><strong>deploy:</strong> make MCP port configurable (<a href="https://github.com/ts-factory/bublik/commit/b731730e8d83ac548459074af9fb1e21afb69ffa" target="_blank" rel="noopener noreferrer" class="">b731730</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring-1">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.10.5#%EF%B8%8F-code-refactoring-1" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>auth:</strong> ensure consistent error handling (<a href="https://github.com/ts-factory/bublik/commit/5eccae7cc6c04c03a93de883d1863524811b4478" target="_blank" rel="noopener noreferrer" class="">5eccae7</a>)</li>
<li class=""><strong>run:</strong> extract run related operations for separations of concern (<a href="https://github.com/ts-factory/bublik/commit/7b92d018b64297e6030010f3171ec27406707e86" target="_blank" rel="noopener noreferrer" class="">7b92d01</a>)</li>
<li class=""><strong>run:</strong> adjust run API routes to use service layer (<a href="https://github.com/ts-factory/bublik/commit/e44416c1d0f8b0a62584b795c3783b4f76236de9" target="_blank" rel="noopener noreferrer" class="">e44416c</a>)</li>
<li class=""><strong>result:</strong> extract result related operations for separation of concern (<a href="https://github.com/ts-factory/bublik/commit/397282bf2000006129cc4da58fe19297387e0cfc" target="_blank" rel="noopener noreferrer" class="">397282b</a>)</li>
<li class=""><strong>result:</strong> adjust result API routes to use service layer (<a href="https://github.com/ts-factory/bublik/commit/88a01fa1e9b4f15db06c1813023432dc58658b99" target="_blank" rel="noopener noreferrer" class="">88a01fa</a>)</li>
<li class=""><strong>history:</strong> extract history related operations for separation of concern (<a href="https://github.com/ts-factory/bublik/commit/105ffdb6d2b5e74076a941759bb4a170c983b986" target="_blank" rel="noopener noreferrer" class="">105ffdb</a>)</li>
<li class=""><strong>history:</strong> adjust history API routes to use service layer (<a href="https://github.com/ts-factory/bublik/commit/df6d09c31efea272f3b89d2dd825c6381cbd9d5b" target="_blank" rel="noopener noreferrer" class="">df6d09c</a>)</li>
<li class=""><strong>log:</strong> extract log related operations for separation of concern (<a href="https://github.com/ts-factory/bublik/commit/663a63b2e60c1d837d7da1168ed0e1d07330c7e8" target="_blank" rel="noopener noreferrer" class="">663a63b</a>)</li>
<li class=""><strong>log:</strong> adjust log API routes to use service layer (<a href="https://github.com/ts-factory/bublik/commit/0f8e3a8580aba7953aced8d5c80dc7205d6a0747" target="_blank" rel="noopener noreferrer" class="">0f8e3a8</a>)</li>
<li class=""><strong>tree:</strong> extract tree related operations for separation of concern (<a href="https://github.com/ts-factory/bublik/commit/3fde3220a810c2752e0b95ba6fc171f7ccafc5e5" target="_blank" rel="noopener noreferrer" class="">3fde322</a>)</li>
<li class=""><strong>tree:</strong> adjust tree API routes to use service layer (<a href="https://github.com/ts-factory/bublik/commit/d0c378174cbb85d803046cb70faa300b41841ca1" target="_blank" rel="noopener noreferrer" class="">d0c3781</a>)</li>
<li class=""><strong>report:</strong> extract report related operations for separation of concern (<a href="https://github.com/ts-factory/bublik/commit/08ca9b8fc08d7555648f536f05c9bff90a4f5738" target="_blank" rel="noopener noreferrer" class="">08ca9b8</a>)</li>
<li class=""><strong>report:</strong> adjust report API routes to use service layer (<a href="https://github.com/ts-factory/bublik/commit/540d364338dd3e38f8054c77e8596ac1463299d2" target="_blank" rel="noopener noreferrer" class="">540d364</a>)</li>
<li class=""><strong>measurements:</strong> extract measurements related operations for separation of concern (<a href="https://github.com/ts-factory/bublik/commit/c67dff7b798ad681e5cb737452f99a4b19bac743" target="_blank" rel="noopener noreferrer" class="">c67dff7</a>)</li>
<li class=""><strong>measurements:</strong> adjust measurements API routes to use service layer (<a href="https://github.com/ts-factory/bublik/commit/4a6db4395ee65994698d782687c384a15ba56186" target="_blank" rel="noopener noreferrer" class="">4a6db43</a>)</li>
<li class=""><strong>dashboard:</strong> extract dashboard related operations for separation of concern (<a href="https://github.com/ts-factory/bublik/commit/bfb046ba21e1d3657dd1cfa76a4b2a2c62eb02f0" target="_blank" rel="noopener noreferrer" class="">bfb046b</a>)</li>
<li class=""><strong>dashboard:</strong> adjust dashboard API routes to use service layer (<a href="https://github.com/ts-factory/bublik/commit/39ceab5ce8bcf1d238aaa6f596bfb4f5ce65617f" target="_blank" rel="noopener noreferrer" class="">39ceab5</a>)</li>
<li class=""><strong>project:</strong> extract project related operations for separation of concern (<a href="https://github.com/ts-factory/bublik/commit/7c14e57416502ab0b5b31f684c69114491a220c5" target="_blank" rel="noopener noreferrer" class="">7c14e57</a>)</li>
<li class=""><strong>project:</strong> adjust project API routes to use service layer (<a href="https://github.com/ts-factory/bublik/commit/2dae29f312bef947b977377339c346bb60eb95a1" target="_blank" rel="noopener noreferrer" class="">2dae29f</a>)</li>
<li class=""><strong>server:</strong> extract server related operations for separation of concern (<a href="https://github.com/ts-factory/bublik/commit/d6c5adc99b87b26457899f8b75ca9dc92889333e" target="_blank" rel="noopener noreferrer" class="">d6c5adc</a>)</li>
<li class=""><strong>server:</strong> adjust server API routes to use service layer (<a href="https://github.com/ts-factory/bublik/commit/192ce890f76045d630ad01a20da23fb4f3e3983a" target="_blank" rel="noopener noreferrer" class="">192ce89</a>)</li>
<li class=""><strong>dashboard:</strong> simplify row preparation method (<a href="https://github.com/ts-factory/bublik/commit/98ccdad333d1e518d05b7438bcbc9298d80a6e18" target="_blank" rel="noopener noreferrer" class="">98ccdad</a>)</li>
<li class=""><strong>runs:</strong> improve readability of queryset retrieval (<a href="https://github.com/ts-factory/bublik/commit/92b5a1c8ee564a2cc4c671fffb746e48a6e4a0a5" target="_blank" rel="noopener noreferrer" class="">92b5a1c</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish-1">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.10.5#-polish-1" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>dashboard:</strong> improve navigation tooltip wording for consistency (<a href="https://github.com/ts-factory/bublik/commit/b45206d9ff0309276774f68b31b5e8ccb076de46" target="_blank" rel="noopener noreferrer" class="">b45206d</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.9.1]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.9.1</id>
        <link href="https://ts-factory.github.io/blog/release-v2.9.1"/>
        <updated>2026-02-10T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We're excited to announce Bublik v2.9.1!]]></summary>
        <content type="html"><![CDATA[<p>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.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="whats-new">What's New<a href="https://ts-factory.github.io/blog/release-v2.9.1#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h3>
<p><strong>Clickable Run ID Copy</strong> <br>
Run IDs can now be copied directly from a clickable value, making it faster to grab the ID you need.</p>
<p><strong>Clearer Chart Colors</strong> <br>
Improved color contrast makes charts easier to read at a glance.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.9.1#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="clickable-run-id-copy">Clickable Run ID Copy<a href="https://ts-factory.github.io/blog/release-v2.9.1#clickable-run-id-copy" class="hash-link" aria-label="Direct link to Clickable Run ID Copy" title="Direct link to Clickable Run ID Copy" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Clickable Run ID Copy" src="https://ts-factory.github.io/assets/images/copy-e86ed60f251d7334d382b80a9cba9821.webp" width="596" height="302" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.9.1#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.9.1#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.9.1</code></li>
<li class=""><code>./scripts/deploy --steps pip_requirements django_settings run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.9.1#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.9.1</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.9.1#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.9.1</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.9.1#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code></li>
<li class="">Open your <code>.env</code> file and change <code>IMAGE_TAG</code> to <code>2.9.1</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.9.1#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.9.1#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.9.1#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>run:</strong> change run ID copy method to clickable value (<a href="https://github.com/ts-factory/bublik-ui/commit/49820853cd282e9b88253b06b749a56aae6f7b32" target="_blank" rel="noopener noreferrer" class="">4982085</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/486" target="_blank" rel="noopener noreferrer" class="">#486</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.9.1#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>report:</strong> improve color contrast for charts (<a href="https://github.com/ts-factory/bublik-ui/commit/9164a0d30feb355216de35591b94eb7e6d6c06d3" target="_blank" rel="noopener noreferrer" class="">9164a0d</a>)</li>
<li class=""><strong>run:</strong> replace "id" with "ID" in Compare Runs form instruction (<a href="https://github.com/ts-factory/bublik-ui/commit/f338115fdbca47802b510614238295ebe45ffa04" target="_blank" rel="noopener noreferrer" class="">f338115</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/497" target="_blank" rel="noopener noreferrer" class="">#497</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.9.1#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>log:</strong> [preview] fix history link dropdown not visible (<a href="https://github.com/ts-factory/bublik-ui/commit/847d541c47d122609d3eee9dd8ecd2a7a7a5cb93" target="_blank" rel="noopener noreferrer" class="">847d541</a>)</li>
<li class=""><strong>run:</strong> [details] not showing skeleton while details loading (<a href="https://github.com/ts-factory/bublik-ui/commit/492e72eccfa7eec6e772be584764fa1353b914a8" target="_blank" rel="noopener noreferrer" class="">492e72e</a>)</li>
<li class=""><strong>run:</strong> left-align Notes column header for consistency (<a href="https://github.com/ts-factory/bublik-ui/commit/0f37864f5e3c7fe42579991ea0a30b74954d703e" target="_blank" rel="noopener noreferrer" class="">0f37864</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/490" target="_blank" rel="noopener noreferrer" class="">#490</a></li>
<li class=""><strong>run:</strong> make result table header cells visible when scrolling in safari (<a href="https://github.com/ts-factory/bublik-ui/commit/61e7c3cbf4359140a91d6981f5f009b41073b167" target="_blank" rel="noopener noreferrer" class="">61e7c3c</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/489" target="_blank" rel="noopener noreferrer" class="">#489</a></li>
<li class=""><strong>runs:</strong> filter runs by clicked conclusion in bar chart modal (<a href="https://github.com/ts-factory/bublik-ui/commit/489dfb06ac43119aa950923ec6ef3c6eeea7fe8c" target="_blank" rel="noopener noreferrer" class="">489dfb0</a>)</li>
<li class=""><strong>run:</strong> show timezone offset in GMT format for dates column header (<a href="https://github.com/ts-factory/bublik-ui/commit/80cd57605c5a021cc5c3405ac4b580b3097e81d8" target="_blank" rel="noopener noreferrer" class="">80cd576</a>)</li>
<li class=""><strong>types:</strong> update component types for React 19 compatibility and fix lint issues (<a href="https://github.com/ts-factory/bublik-ui/commit/6429c60fe47a90d8c4f915837362440e8674259b" target="_blank" rel="noopener noreferrer" class="">6429c60</a>)</li>
<li class=""><strong>result:</strong> crash caused by incorrect import from react-router (<a href="https://github.com/ts-factory/bublik-ui/commit/a9ce75c20836134db1af29b765f33dcee609f4b5" target="_blank" rel="noopener noreferrer" class="">a9ce75c</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.9.1#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>api:</strong> add support for backend unified error format (<a href="https://github.com/ts-factory/bublik-ui/commit/5dbd1a735122147240648b709b1adf91c79615aa" target="_blank" rel="noopener noreferrer" class="">5dbd1a7</a>)</li>
<li class=""><strong>form:</strong> update <code>setErrorsOnForm</code> to handle new API error format (<a href="https://github.com/ts-factory/bublik-ui/commit/ae3d6d1c0693961a3e7e6c4a8984086f253ab440" target="_blank" rel="noopener noreferrer" class="">ae3d6d1</a>)</li>
<li class=""><strong>form:</strong> use <code>setErrorsOnForm</code> in create-config-form (<a href="https://github.com/ts-factory/bublik-ui/commit/d7b73196b791191db9be22dadc7b71f6d9e0008a" target="_blank" rel="noopener noreferrer" class="">d7b7319</a>)</li>
<li class=""><strong>form:</strong> use <code>setErrorsOnForm</code> in create-project-modal (<a href="https://github.com/ts-factory/bublik-ui/commit/aa575bbbafb6d9d78c480f0578940594b72cf2eb" target="_blank" rel="noopener noreferrer" class="">aa575bb</a>)</li>
<li class=""><strong>form:</strong> use <code>setErrorsOnForm</code> in import-run-form (<a href="https://github.com/ts-factory/bublik-ui/commit/4165f4bbf3825ef087adb73f909c73efe67e7345" target="_blank" rel="noopener noreferrer" class="">4165f4b</a>)</li>
<li class=""><strong>form:</strong> use <code>setErrorsOnForm</code> in update-config-form (<a href="https://github.com/ts-factory/bublik-ui/commit/ed5f1fa398f0d9029872b337650596740e862f0f" target="_blank" rel="noopener noreferrer" class="">ed5f1fa</a>)</li>
<li class=""><strong>form:</strong> use <code>setErrorsOnForm</code> in update-project-modal (<a href="https://github.com/ts-factory/bublik-ui/commit/2cd40cc0a6e3985105ac0516caecd3d9c0eff728" target="_blank" rel="noopener noreferrer" class="">2cd40cc</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.9.1#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class="">add github issue and feature request templates (<a href="https://github.com/ts-factory/bublik-ui/commit/ebeadd192fe271e4fe87e0cddf116ac261bb5a0a" target="_blank" rel="noopener noreferrer" class="">ebeadd1</a>)</li>
<li class=""><strong>build:</strong> remove deprecated cacheDir from vite configurations (<a href="https://github.com/ts-factory/bublik-ui/commit/699528fda69da0b47a6076c892bb8ab71b2e84fa" target="_blank" rel="noopener noreferrer" class="">699528f</a>)</li>
<li class=""><strong>build:</strong> rename vite.config.ts to vite.config.mts for ESM compatibility (<a href="https://github.com/ts-factory/bublik-ui/commit/d6d2d2fa8414489751554b8a83769a9dd20d0a61" target="_blank" rel="noopener noreferrer" class="">d6d2d2f</a>)</li>
<li class=""><strong>deps:</strong> upgrade Nx to 20.8.0 and related dependencies (<a href="https://github.com/ts-factory/bublik-ui/commit/8de3c937a05d629afdb5812dd9f78ed9a9f8325a" target="_blank" rel="noopener noreferrer" class="">8de3c93</a>)</li>
<li class=""><strong>lint:</strong> update ESLint configurations for Nx 20 compatibility (<a href="https://github.com/ts-factory/bublik-ui/commit/64fcb2edfd76f1e235f23538e08ab3eb5087cdbf" target="_blank" rel="noopener noreferrer" class="">64fcb2e</a>)</li>
<li class=""><strong>run:</strong> [details] remove unused import (<a href="https://github.com/ts-factory/bublik-ui/commit/e8c659837b41e8d6e6eaa8e1b4cd27b932d3c3c2" target="_blank" rel="noopener noreferrer" class="">e8c6598</a>)</li>
<li class=""><strong>storybook:</strong> remove storybook configuration and all story files (<a href="https://github.com/ts-factory/bublik-ui/commit/557ae8a9fdd96cfb766101036cd1b17683cb2faa" target="_blank" rel="noopener noreferrer" class="">557ae8a</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-performance-improvements">⚡ Performance Improvements<a href="https://ts-factory.github.io/blog/release-v2.9.1#-performance-improvements" class="hash-link" aria-label="Direct link to ⚡ Performance Improvements" title="Direct link to ⚡ Performance Improvements" translate="no">​</a></h4>
<ul>
<li class="">improve initial loading for application (<a href="https://github.com/ts-factory/bublik-ui/commit/bfdc78fc1145dff218e6c5fc624d39485135387d" target="_blank" rel="noopener noreferrer" class="">bfdc78f</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-tests">✅ Tests<a href="https://ts-factory.github.io/blog/release-v2.9.1#-tests" class="hash-link" aria-label="Direct link to ✅ Tests" title="Direct link to ✅ Tests" translate="no">​</a></h4>
<ul>
<li class=""><strong>deps:</strong> upgrade tests for compatability with nx 22 (<a href="https://github.com/ts-factory/bublik-ui/commit/904549f0dbaee9f3a411a572ba40b764e9f60f32" target="_blank" rel="noopener noreferrer" class="">904549f</a>)</li>
<li class=""><strong>form:</strong> add comprehensive tests for setErrorsOnForm (<a href="https://github.com/ts-factory/bublik-ui/commit/e16c63e09a885a2568a29045f97f2d010b6a9773" target="_blank" rel="noopener noreferrer" class="">e16c63e</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.9.1#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.9.1#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>auth:</strong> ensure consistent error handling and secure system exception logging (<a href="https://github.com/ts-factory/bublik/commit/68b6e2a627f5586dce1b453fb014caef64d28c90" target="_blank" rel="noopener noreferrer" class="">68b6e2a</a>)</li>
<li class=""><strong>log:</strong> ensure consistent error handling and secure system exception logging (<a href="https://github.com/ts-factory/bublik/commit/a3c3fd838c97046a44ec3fb66c30c89e52cca9d8" target="_blank" rel="noopener noreferrer" class="">a3c3fd8</a>)</li>
<li class=""><strong>event:</strong> ensure consistent error handling and secure system exception logging (<a href="https://github.com/ts-factory/bublik/commit/7eb8fa3faabb129d08a00eaa29612e1df2f21dab" target="_blank" rel="noopener noreferrer" class="">7eb8fa3</a>)</li>
<li class=""><strong>results:</strong> ensure consistent error handling and secure system exception logging (<a href="https://github.com/ts-factory/bublik/commit/bcd62c8a9ca72f07e345cbf368367315f89edf3f" target="_blank" rel="noopener noreferrer" class="">bcd62c8</a>)</li>
<li class=""><strong>tasks:</strong> make importruns error logs safer (<a href="https://github.com/ts-factory/bublik/commit/716c5ff5f6c6f8f05b653f1a0ea700f396fda2c0" target="_blank" rel="noopener noreferrer" class="">716c5ff</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.9.1#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>events:</strong> add endpoint to fetch run by Celery task ID (<a href="https://github.com/ts-factory/bublik/commit/a2d440888afea6aeadaca186b2a1547d9276f2ec" target="_blank" rel="noopener noreferrer" class="">a2d4408</a>), related to <a href="https://github.com/ts-factory/bublik/issues/272" target="_blank" rel="noopener noreferrer" class="">#272</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores-1">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.9.1#-chores-1" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>requirements:</strong> update <code>python-dateutil</code> to fix deprecation warnings (<a href="https://github.com/ts-factory/bublik/commit/133d486a86aa60e507b01c94b2c69c0902f12947" target="_blank" rel="noopener noreferrer" class="">133d486</a>)</li>
<li class=""><strong>requirements:</strong> update Django version to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/dd0fd34c9d8e70dce0c7248d06fa5d13a5837be5" target="_blank" rel="noopener noreferrer" class="">dd0fd34</a>)</li>
<li class=""><strong>settings:</strong> unify naming and improve structure of logging configuration (<a href="https://github.com/ts-factory/bublik/commit/9cdba516bcbe75b154abd56441f398ef24617234" target="_blank" rel="noopener noreferrer" class="">9cdba51</a>)</li>
<li class=""><strong>settings:</strong> make bublik.server logs more readable (<a href="https://github.com/ts-factory/bublik/commit/5d60afa916ab921723ed289371f3dbc11437fd02" target="_blank" rel="noopener noreferrer" class="">5d60afa</a>)</li>
<li class=""><strong>settings:</strong> redirect error logs to separate file for easier debugging (<a href="https://github.com/ts-factory/bublik/commit/a05642be11f6de5360da754ad8b77c899ab23725" target="_blank" rel="noopener noreferrer" class="">a05642b</a>)</li>
<li class=""><strong>logging:</strong> redirect Celery errors to error.log for consolidated tracking (<a href="https://github.com/ts-factory/bublik/commit/83d05667eeb28e90b165caf7f6da62a6d71ccd43" target="_blank" rel="noopener noreferrer" class="">83d0566</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.9.1#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>exceptions:</strong> improve handling and normalize error responses (<a href="https://github.com/ts-factory/bublik/commit/97b9eddbad60ff0998647ed67d314b3ee2f60d60" target="_blank" rel="noopener noreferrer" class="">97b9edd</a>)</li>
<li class=""><strong>exceptions:</strong> add custom error hierarchy to unify and typify error handling (<a href="https://github.com/ts-factory/bublik/commit/7011502877315a555f3b76e1904ec2789023b187" target="_blank" rel="noopener noreferrer" class="">7011502</a>)</li>
<li class=""><strong>history:</strong> refine exceptions for missing tests or iters after filtering (<a href="https://github.com/ts-factory/bublik/commit/16e977155dcf0e7cecadee8a46bb3c16994c4cdb" target="_blank" rel="noopener noreferrer" class="">16e9771</a>)</li>
<li class=""><strong>measurements:</strong> ensure consistent error handling (<a href="https://github.com/ts-factory/bublik/commit/9eb3413622eb11bc50e8d46246e81f4f5f69b0b5" target="_blank" rel="noopener noreferrer" class="">9eb3413</a>)</li>
<li class=""><strong>report:</strong> ensure consistent error handling (<a href="https://github.com/ts-factory/bublik/commit/b22cff194e9ec2ebed9a9b85caec7ba3fded2cc9" target="_blank" rel="noopener noreferrer" class="">b22cff1</a>)</li>
<li class=""><strong>dashboard:</strong> ensure consistent error handling (<a href="https://github.com/ts-factory/bublik/commit/5a72316b75ea55f3617119315a26cd523eea350f" target="_blank" rel="noopener noreferrer" class="">5a72316</a>)</li>
<li class=""><strong>config:</strong> ensure consistent error handling (<a href="https://github.com/ts-factory/bublik/commit/95d2dfdfbe7769f9bf125eefae8a33fb1de52221" target="_blank" rel="noopener noreferrer" class="">95d2dfd</a>)</li>
<li class=""><strong>url:</strong> ensure consistent error handling (<a href="https://github.com/ts-factory/bublik/commit/13cdb624485827bd0dd3b6a74f821110aa0a0157" target="_blank" rel="noopener noreferrer" class="">13cdb62</a>)</li>
<li class=""><strong>importruns:</strong> unify importruns API error response format (<a href="https://github.com/ts-factory/bublik/commit/f0eab875d617ca86ce2616e2dd5c4dabfcf719da" target="_blank" rel="noopener noreferrer" class="">f0eab87</a>)</li>
<li class=""><strong>logging:</strong> move task logger retrieval for better separation of responsibilities (<a href="https://github.com/ts-factory/bublik/commit/64f5f0bf2f61f3c3411f9e4297117accbd5d8fa6" target="_blank" rel="noopener noreferrer" class="">64f5f0b</a>)</li>
<li class=""><strong>logging:</strong> encapsulate task logger handler for cleaner code structure (<a href="https://github.com/ts-factory/bublik/commit/8f8de2cfc37864867f713a10f1e144c8de311c8a" target="_blank" rel="noopener noreferrer" class="">8f8de2c</a>)</li>
<li class=""><strong>logging:</strong> ensure single task logger handler to prevent duplicate logs (<a href="https://github.com/ts-factory/bublik/commit/8623d2950a6d0746d625e561f69da265a9ad4173" target="_blank" rel="noopener noreferrer" class="">8623d29</a>)</li>
<li class=""><strong>logging:</strong> make task logger retrieval function more general (<a href="https://github.com/ts-factory/bublik/commit/0058b5bd2ab153fdb1f39452af07f9220325f647" target="_blank" rel="noopener noreferrer" class="">0058b5b</a>)</li>
<li class=""><strong>logging:</strong> generalize task logger retrieval by sourcing task ID from env (<a href="https://github.com/ts-factory/bublik/commit/501955f4c475b6e21b73e046c05d62d4885234c7" target="_blank" rel="noopener noreferrer" class="">501955f</a>)</li>
<li class=""><strong>logging:</strong> make logger retrieval function universal for tasks and server (<a href="https://github.com/ts-factory/bublik/commit/1ec0a2e4d4ef0c0c700ee36a5681f8a0c5f6bb85" target="_blank" rel="noopener noreferrer" class="">1ec0a2e</a>)</li>
<li class=""><strong>logging:</strong> route logs based on execution context (<a href="https://github.com/ts-factory/bublik/commit/a8b4c6c6592fbe171acae9940c5bb9557651cdd2" target="_blank" rel="noopener noreferrer" class="">a8b4c6c</a>)</li>
<li class=""><strong>importruns:</strong> run importruns command in task context to centralize logging (<a href="https://github.com/ts-factory/bublik/commit/4817d90ef97342db74af83b88c3eb8cd4a5892ef" target="_blank" rel="noopener noreferrer" class="">4817d90</a>)</li>
<li class=""><strong>exceptions:</strong> introduce ImportrunsError to improve importruns error reporting (<a href="https://github.com/ts-factory/bublik/commit/12679c46bd3afaf3ef95bcb74c347f44268c9693" target="_blank" rel="noopener noreferrer" class="">12679c4</a>)</li>
<li class=""><strong>importruns:</strong> make invalid parameters error message more informative (<a href="https://github.com/ts-factory/bublik/commit/5f77bb6f36b2d57eb45016c33c8c94b393ac2015" target="_blank" rel="noopener noreferrer" class="">5f77bb6</a>)</li>
<li class=""><strong>importruns:</strong> automate function execution time logging with decorator (<a href="https://github.com/ts-factory/bublik/commit/5e54afcdcb62f8335886795b0a0f431228e35ae7" target="_blank" rel="noopener noreferrer" class="">5e54afc</a>)</li>
<li class=""><strong>importruns:</strong> expose import failures from missing metadata in importruns (<a href="https://github.com/ts-factory/bublik/commit/7e50c617ec4c5fbb09efeb94cf87a63b0e95133f" target="_blank" rel="noopener noreferrer" class="">7e50c61</a>)</li>
<li class=""><strong>importruns:</strong> unify run URL mismatch error handling (<a href="https://github.com/ts-factory/bublik/commit/402e48e6de86a83f06847c5d9a20141f0be8c6e1" target="_blank" rel="noopener noreferrer" class="">402e48e</a>)</li>
<li class=""><strong>importruns:</strong> unify no metadata error handling (<a href="https://github.com/ts-factory/bublik/commit/3f35cb81c330146733220c629ec4698d934f2533" target="_blank" rel="noopener noreferrer" class="">3f35cb8</a>)</li>
<li class=""><strong>metadata:</strong> unify broken essential meta error handling (<a href="https://github.com/ts-factory/bublik/commit/969ed8c63742f0209ee3c827cc9feccd466e3e9c" target="_blank" rel="noopener noreferrer" class="">969ed8c</a>)</li>
<li class=""><strong>importruns:</strong> unify incorrect metadata errors handling (<a href="https://github.com/ts-factory/bublik/commit/0bdbec86787dc4deefb346cf39ec6b3a24331959" target="_blank" rel="noopener noreferrer" class="">0bdbec8</a>)</li>
<li class=""><strong>metadata:</strong> unify logger formatting for empty meta entries (<a href="https://github.com/ts-factory/bublik/commit/725afa46ccd5b6b92ab5b1eb05f74fa488726770" target="_blank" rel="noopener noreferrer" class="">725afa4</a>)</li>
<li class=""><strong>importruns:</strong> improve handling of already imported runs (<a href="https://github.com/ts-factory/bublik/commit/410f63108665d3db0f10055629408027c91b4fff" target="_blank" rel="noopener noreferrer" class="">410f631</a>)</li>
<li class=""><strong>importruns:</strong> improve handling of skipping import runs due to period mismatch (<a href="https://github.com/ts-factory/bublik/commit/6f106275d2eae0528cd1303513a522995b383275" target="_blank" rel="noopener noreferrer" class="">6f10627</a>)</li>
<li class=""><strong>importruns:</strong> extract import event creation for better separation of concerns (<a href="https://github.com/ts-factory/bublik/commit/4718914fef2cc34820ab7d3709e111fedbbe1a81" target="_blank" rel="noopener noreferrer" class="">4718914</a>)</li>
<li class=""><strong>metadata:</strong> make metadata error messages more informative (<a href="https://github.com/ts-factory/bublik/commit/b0df19a842e9e07a9c8fb1dca93260e1436e39f0" target="_blank" rel="noopener noreferrer" class="">b0df19a</a>)</li>
<li class=""><strong>importruns:</strong> improve message for missing project (<a href="https://github.com/ts-factory/bublik/commit/9682eacd6508b18890fbfdb0a7a5c4d3e4c19b29" target="_blank" rel="noopener noreferrer" class="">9682eac</a>)</li>
<li class=""><strong>metadata:</strong> make error and log messages consisten (<a href="https://github.com/ts-factory/bublik/commit/aa5f6ee84c60d0fa805c501d6699d8c3f6a38f82" target="_blank" rel="noopener noreferrer" class="">aa5f6ee</a>)</li>
<li class=""><strong>metadata:</strong> make metadata generation error message safer and more generic (<a href="https://github.com/ts-factory/bublik/commit/44755a31a9423cb95d60615fd465edd0a4a4c943" target="_blank" rel="noopener noreferrer" class="">44755a3</a>)</li>
<li class=""><strong>importrun:</strong> improve HTTP error event message construction (<a href="https://github.com/ts-factory/bublik/commit/a07eec563d0eebcad7d0119f050a294aa78127b5" target="_blank" rel="noopener noreferrer" class="">a07eec5</a>)</li>
<li class=""><strong>importruns:</strong> improve handling of compromised runs (<a href="https://github.com/ts-factory/bublik/commit/eebff020fbc39e276c870aff239d6b8ac411d170" target="_blank" rel="noopener noreferrer" class="">eebff02</a>)</li>
<li class=""><strong>importruns:</strong> centralize handling of URL-fetch failures and compromised runs (<a href="https://github.com/ts-factory/bublik/commit/13d64bbabd9c1da1bf210f2543a2af6cb28f7259" target="_blank" rel="noopener noreferrer" class="">13d64bb</a>)</li>
<li class=""><strong>importruns:</strong> extract path-processing event creation for better separation of concerns (<a href="https://github.com/ts-factory/bublik/commit/87909263d20892a74ed1ee8a82743bfe202971d1" target="_blank" rel="noopener noreferrer" class="">8790926</a>)</li>
<li class=""><strong>importruns:</strong> centralize URL fetch failure handling (<a href="https://github.com/ts-factory/bublik/commit/ac47e22910fdd78a86bebaf8314d4f45952d1b61" target="_blank" rel="noopener noreferrer" class="">ac47e22</a>)</li>
<li class=""><strong>exceprtions:</strong> add debug field to Bublik exceptions to improve debugging (<a href="https://github.com/ts-factory/bublik/commit/d5c7e6f105549c7a15956ca4fc8b08d1fb820e19" target="_blank" rel="noopener noreferrer" class="">d5c7e6f</a>)</li>
<li class=""><strong>importruns:</strong> improve importruns failures debugging (<a href="https://github.com/ts-factory/bublik/commit/b4d1f5408f54656b629583b45aab0948e6118a85" target="_blank" rel="noopener noreferrer" class="">b4d1f54</a>)</li>
<li class=""><strong>importruns:</strong> improve error handling for duplicate exec seqno (<a href="https://github.com/ts-factory/bublik/commit/5933c5df72ea68d882b79976ad259578796df816" target="_blank" rel="noopener noreferrer" class="">5933c5d</a>)</li>
<li class=""><strong>importruns:</strong> improve error handling for duplicate test iteration results (<a href="https://github.com/ts-factory/bublik/commit/29465076c5f0f66eb6fde34e20fb28e4dff7ddf8" target="_blank" rel="noopener noreferrer" class="">2946507</a>)</li>
<li class=""><strong>importruns:</strong> improve error handling for unsupported view types (<a href="https://github.com/ts-factory/bublik/commit/90cfe1f624e3b10922ad9837b5efff3fbc1476cc" target="_blank" rel="noopener noreferrer" class="">90cfe1f</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v2.9.1#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> clean up unused handling of existing MI artifacts (<a href="https://github.com/ts-factory/bublik/commit/a7cbcdfc4266b58663a8db0645da0d334a9d88ef" target="_blank" rel="noopener noreferrer" class="">a7cbcdf</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.8.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.8.0</id>
        <link href="https://ts-factory.github.io/blog/release-v2.8.0"/>
        <updated>2026-01-28T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We're excited to announce Bublik v2.8.0!]]></summary>
        <content type="html"><![CDATA[<p>We're excited to announce Bublik v2.8.0!
This release brings powerful new features for analyzing test results, including a dim mode for parameter comparison, Expected/Unexpected total columns, improved timezone handling, and support for interrupted run status.
We also fixed issues in the metadata-based project assignment logic and the live import process.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="whats-new">What's New<a href="https://ts-factory.github.io/blog/release-v2.8.0#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h3>
<p><strong>Dim Mode for Parameter Comparison</strong> <br>
Added a new "dim" mode alongside the existing "diff" mode that visually dims parameters common across all rows, making it easier to spot differences between test configurations.</p>
<p><strong>Expected/Unexpected Total Columns</strong> <br>
New aggregate columns display total counts for expected and unexpected test results, providing a quick overview of test run outcomes.</p>
<p><strong>Interrupted Run Status</strong> <br>
Added support for displaying runs that were interrupted or crashed during live import, clearly distinguishing them from failed runs.</p>
<p><strong>Timezone-Aware Date Display</strong> <br>
Dates throughout the application now display in the user's local timezone instead of UTC, improving readability across different regions.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.8.0#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="dim-mode-for-parameter-comparison">Dim Mode for Parameter Comparison<a href="https://ts-factory.github.io/blog/release-v2.8.0#dim-mode-for-parameter-comparison" class="hash-link" aria-label="Direct link to Dim Mode for Parameter Comparison" title="Direct link to Dim Mode for Parameter Comparison" translate="no">​</a></h3>
<p>The new dim mode helps identify unique parameters by visually dimming common values across test iterations. Toggle between diff and dim modes to quickly analyze parameter variations.</p>
<p><img decoding="async" loading="lazy" alt="Dim Mode Example" src="https://ts-factory.github.io/assets/images/dim-1-5027fd5e7eaa345545c09bae67b18bae.webp" width="3358" height="2086" class="img_yd8J"></p>
<p><img decoding="async" loading="lazy" alt="Dim Mode Example" src="https://ts-factory.github.io/assets/images/dim-2-619cf02ca93db820a00c9c50b0c8c390.webp" width="3360" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="expectedunexpected-total-columns">Expected/Unexpected Total Columns<a href="https://ts-factory.github.io/blog/release-v2.8.0#expectedunexpected-total-columns" class="hash-link" aria-label="Direct link to Expected/Unexpected Total Columns" title="Direct link to Expected/Unexpected Total Columns" translate="no">​</a></h3>
<p>Run tables now include aggregate columns showing total counts of expected results (Passed, Failed, Skipped) and unexpected results (Passed Unexpected, Failed Unexpected, Skipped Unexpected), giving you an instant summary of test outcomes.</p>
<p><img decoding="async" loading="lazy" alt="Expected/Unexpected Total Columns Example" src="https://ts-factory.github.io/assets/images/columns-b8820e040d0fcd5607381fc86410a20c.webp" width="3356" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="interrupted-run-status">Interrupted Run Status<a href="https://ts-factory.github.io/blog/release-v2.8.0#interrupted-run-status" class="hash-link" aria-label="Direct link to Interrupted Run Status" title="Direct link to Interrupted Run Status" translate="no">​</a></h3>
<p>The new INTERRUPTED run status allows you to distinguish runs whose live import was interrupted or crashed from failed runs in the dashboard and runs list.</p>
<p><img decoding="async" loading="lazy" alt="Interrupted Run Status Example" src="https://ts-factory.github.io/assets/images/inter-1-88b6af628ca0544fb9266ac1f8001537.webp" width="3376" height="1960" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="reworked-settings">Reworked Settings<a href="https://ts-factory.github.io/blog/release-v2.8.0#reworked-settings" class="hash-link" aria-label="Direct link to Reworked Settings" title="Direct link to Reworked Settings" translate="no">​</a></h3>
<p>Settings have been redesigned as a modal accessible from the sidebar</p>
<p><img decoding="async" loading="lazy" alt="Settings Button" src="https://ts-factory.github.io/assets/images/settings-1-94188f27e5076c77df288a749b60c363.webp" width="3350" height="2086" class="img_yd8J"></p>
<p><img decoding="async" loading="lazy" alt="Settings Modal" src="https://ts-factory.github.io/assets/images/settings-2-ab8ffcdd8e79b36f9527053c8ceba384.webp" width="3358" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="improved-statistics-summary-layout">Improved Statistics Summary Layout<a href="https://ts-factory.github.io/blog/release-v2.8.0#improved-statistics-summary-layout" class="hash-link" aria-label="Direct link to Improved Statistics Summary Layout" title="Direct link to Improved Statistics Summary Layout" translate="no">​</a></h3>
<p>The "Statistics Summary" column on the runs page now features a grid-based layout with better badge alignment and improved visual hierarchy.</p>
<p><img decoding="async" loading="lazy" alt="Statistics Summary Layout" src="https://ts-factory.github.io/assets/images/runs-1-d5af08b0914154b7b5f07fe8f6d158fd.webp" width="3338" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="timezone-aware-date-display">Timezone-Aware Date Display<a href="https://ts-factory.github.io/blog/release-v2.8.0#timezone-aware-date-display" class="hash-link" aria-label="Direct link to Timezone-Aware Date Display" title="Direct link to Timezone-Aware Date Display" translate="no">​</a></h3>
<p>All dates and times throughout the application now should display in your local timezone</p>
<p><img decoding="async" loading="lazy" alt="Timezone Alignment" src="https://ts-factory.github.io/assets/images/log-1-dc79c175c4b16e2c8567c7b1cd403052.webp" width="3356" height="2086" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="clickable-url-labels">Clickable URL Labels<a href="https://ts-factory.github.io/blog/release-v2.8.0#clickable-url-labels" class="hash-link" aria-label="Direct link to Clickable URL Labels" title="Direct link to Clickable URL Labels" translate="no">​</a></h3>
<p>Run detail labels containing URLs are now clickable, allowing you to open external links directly from the interface.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.8.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.8.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.8.0</code></li>
<li class=""><code>./scripts/deploy --steps pip_requirements run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.8.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.8.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.8.0#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.8.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.8.0#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code></li>
<li class="">Open your <code>.env</code> file and change <code>IMAGE_TAG</code> to <code>2.8.0</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.8.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.8.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.8.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>log:</strong> [preview] add history link to log preview drawer modal (<a href="https://github.com/ts-factory/bublik-ui/commit/7f71547c7d48f85fcf5b8ca9e0b38ff86fa5edb0" target="_blank" rel="noopener noreferrer" class="">7f71547</a>)</li>
<li class=""><strong>log:</strong> add full path to test when navigating to history (<a href="https://github.com/ts-factory/bublik-ui/commit/709916d3f4826c49f95042616926b673e7cf52b9" target="_blank" rel="noopener noreferrer" class="">709916d</a>)</li>
<li class=""><strong>run:</strong> [details] support URL links in labels to allow users open new tab (<a href="https://github.com/ts-factory/bublik-ui/commit/6fe12dba636cc36697f5eecd7fd83d7ce0a09d74" target="_blank" rel="noopener noreferrer" class="">6fe12db</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/468" target="_blank" rel="noopener noreferrer" class="">#468</a></li>
<li class=""><strong>run:</strong> add dim mode to visually highlight common parameters (<a href="https://github.com/ts-factory/bublik-ui/commit/f97f5d564d46cdb20a6635874da1182f42b467b3" target="_blank" rel="noopener noreferrer" class="">f97f5d5</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/449" target="_blank" rel="noopener noreferrer" class="">#449</a></li>
<li class=""><strong>run:</strong> add Expected/Unexpected total columns (<a href="https://github.com/ts-factory/bublik-ui/commit/a902b9ea441865ce763bd7853a7d8b3b3a893a0e" target="_blank" rel="noopener noreferrer" class="">a902b9e</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/54" target="_blank" rel="noopener noreferrer" class="">#54</a></li>
<li class=""><strong>run:</strong> add interrupted run status handling (<a href="https://github.com/ts-factory/bublik-ui/commit/d92eee0321c40dc5487bf381fc7803d8c2a07e9e" target="_blank" rel="noopener noreferrer" class="">d92eee0</a>)</li>
<li class=""><strong>settings:</strong> initialize settings library (<a href="https://github.com/ts-factory/bublik-ui/commit/c3f2cb70b4c7a97c97fb18406f7342d68772a84f" target="_blank" rel="noopener noreferrer" class="">c3f2cb7</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.8.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>bublik-logs:</strong> align TypeScript lib config with bublik for ESNext support (<a href="https://github.com/ts-factory/bublik-ui/commit/e705bbdebfde617dedec635a0ff9bbcf8c358223" target="_blank" rel="noopener noreferrer" class="">e705bbd</a>)</li>
<li class=""><strong>history:</strong> format date based on user timezone for history (<a href="https://github.com/ts-factory/bublik-ui/commit/1f56e7ced32ed488f08622a72b1e96b981378cbe" target="_blank" rel="noopener noreferrer" class="">1f56e7c</a>)</li>
<li class=""><strong>import:</strong> fix React Hooks order violation in EventRow (<a href="https://github.com/ts-factory/bublik-ui/commit/f4c22b6bcc6df717e0000363a1c7515293a1b483" target="_blank" rel="noopener noreferrer" class="">f4c22b6</a>)</li>
<li class=""><strong>import:</strong> handle <code>null</code> celery_task in events table (<a href="https://github.com/ts-factory/bublik-ui/commit/2bc21def5963b93a84af75ebcd9d2edafa1503af" target="_blank" rel="noopener noreferrer" class="">2bc21de</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/459" target="_blank" rel="noopener noreferrer" class="">#459</a></li>
<li class=""><strong>import:</strong> resolve React Hooks order violation (<a href="https://github.com/ts-factory/bublik-ui/commit/6a2eb40da3a43a422c3ecc67a2315ba995bd59c4" target="_blank" rel="noopener noreferrer" class="">6a2eb40</a>)</li>
<li class=""><strong>log:</strong> [new-bug] fix layout shift for "new bug" button (<a href="https://github.com/ts-factory/bublik-ui/commit/814a0f601c533b2f011caa6eb53d501cad8ee44a" target="_blank" rel="noopener noreferrer" class="">814a0f6</a>)</li>
<li class=""><strong>log:</strong> [new-bug] generate CMD based on top level <code>config</code> key (<a href="https://github.com/ts-factory/bublik-ui/commit/78417acd9ba2abcbac7444f85d709fc686323039" target="_blank" rel="noopener noreferrer" class="">78417ac</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/174" target="_blank" rel="noopener noreferrer" class="">#174</a></li>
<li class=""><strong>log:</strong> [new-bug] make log data optional for NewBugContainer (<a href="https://github.com/ts-factory/bublik-ui/commit/bfcd1efae81750b5101032635890799d26a87648" target="_blank" rel="noopener noreferrer" class="">bfcd1ef</a>)</li>
<li class=""><strong>log:</strong> display test start and end in user timezone (<a href="https://github.com/ts-factory/bublik-ui/commit/2c1fbad239e0a5f0a68a5f5d16686125b5f57e3f" target="_blank" rel="noopener noreferrer" class="">2c1fbad</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/470" target="_blank" rel="noopener noreferrer" class="">#470</a></li>
<li class=""><strong>log:</strong> not showing pagination when viewing full log (<a href="https://github.com/ts-factory/bublik-ui/commit/5e4fc44f253a7a0e9a4a4d32cdce552526001908" target="_blank" rel="noopener noreferrer" class="">5e4fc44</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/176" target="_blank" rel="noopener noreferrer" class="">#176</a></li>
<li class=""><strong>run:</strong> [details] format start, finish dates of test run (<a href="https://github.com/ts-factory/bublik-ui/commit/86e7d294ce59df331daa9bf0d23294ae2fd0ea1d" target="_blank" rel="noopener noreferrer" class="">86e7d29</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/470" target="_blank" rel="noopener noreferrer" class="">#470</a></li>
<li class=""><strong>run:</strong> ensure reference rows have visible borders in diff/dim mode (<a href="https://github.com/ts-factory/bublik-ui/commit/5c8ba2d1371091701af2857c59c97d2eccc9d333" target="_blank" rel="noopener noreferrer" class="">5c8ba2d</a>)</li>
<li class=""><strong>run:</strong> incorrectly formatted column labels for Unexpected/Expected total (<a href="https://github.com/ts-factory/bublik-ui/commit/042df12f26c5b4a75c915aea1c988e98085255d5" target="_blank" rel="noopener noreferrer" class="">042df12</a>)</li>
<li class=""><strong>run:</strong> preserve toolbar visibility when toggling dim/diff mode (<a href="https://github.com/ts-factory/bublik-ui/commit/5af2ac11323503ca9d125fafb582053d5ebcb027" target="_blank" rel="noopener noreferrer" class="">5af2ac1</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.8.0#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>run:</strong> [details] make "Expose" button the most left button (<a href="https://github.com/ts-factory/bublik-ui/commit/1f83306888bff9c782fa0b22259eed72b2074947" target="_blank" rel="noopener noreferrer" class="">1f83306</a>)</li>
<li class=""><strong>run:</strong> [results] move filter toolbar below result's table header (<a href="https://github.com/ts-factory/bublik-ui/commit/df3e34427b061a5c512f66a651418ebac86d261b" target="_blank" rel="noopener noreferrer" class="">df3e344</a>)</li>
<li class=""><strong>runs:</strong> improve layout of <code>Statistic Summary</code> columns (<a href="https://github.com/ts-factory/bublik-ui/commit/fd6baf36619abeb189dd573be63dbd782269080a" target="_blank" rel="noopener noreferrer" class="">fd6baf3</a>)</li>
<li class=""><strong>ui:</strong> update checkbox and radio-group components (<a href="https://github.com/ts-factory/bublik-ui/commit/fc26942d97cbc1bf9a03c7fd45188857d56016dd" target="_blank" rel="noopener noreferrer" class="">fc26942</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.8.0#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> generate history-link library (<a href="https://github.com/ts-factory/bublik-ui/commit/6c29b4b4072120f926b491432107afce19a481be" target="_blank" rel="noopener noreferrer" class="">6c29b4b</a>)</li>
<li class=""><strong>history:</strong> unify history link component into shared library (<a href="https://github.com/ts-factory/bublik-ui/commit/310cf27d7e590d85f4746e67f6e6670b2c28564e" target="_blank" rel="noopener noreferrer" class="">310cf27</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/414" target="_blank" rel="noopener noreferrer" class="">#414</a></li>
<li class=""><strong>performance:</strong> remove page and update component (<a href="https://github.com/ts-factory/bublik-ui/commit/71a0cb8fab92da0ab28f61d6d5f986ea10b439b3" target="_blank" rel="noopener noreferrer" class="">71a0cb8</a>)</li>
<li class=""><strong>router:</strong> update router and navigation (<a href="https://github.com/ts-factory/bublik-ui/commit/73e4468fcc4b30d87cfd330fe4605312377bbd29" target="_blank" rel="noopener noreferrer" class="">73e4468</a>)</li>
<li class=""><strong>run,log,measurements:</strong> use single result type across all code (<a href="https://github.com/ts-factory/bublik-ui/commit/fb6a8c0c769e0e72aca76ceef69b343d2cd814fb" target="_blank" rel="noopener noreferrer" class="">fb6a8c0</a>)</li>
<li class=""><strong>settings:</strong> migrate to modal-based UI (<a href="https://github.com/ts-factory/bublik-ui/commit/a547df8ace8663916d11644e058e89e1a4d45f62" target="_blank" rel="noopener noreferrer" class="">a547df8</a>)</li>
<li class=""><strong>settings:</strong> split and simplify forms (<a href="https://github.com/ts-factory/bublik-ui/commit/da4e402c5e74beaa6c3b8be85c468626ddea555a" target="_blank" rel="noopener noreferrer" class="">da4e402</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.8.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.8.0#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>management:</strong> fix single-meta run check in assign-project-by-meta (<a href="https://github.com/ts-factory/bublik/commit/1f0c7a5bddd7ef9d175cfe82a12e252c1588a29d" target="_blank" rel="noopener noreferrer" class="">1f0c7a5</a>), closes <a href="https://github.com/ts-factory/bublik/issues/260" target="_blank" rel="noopener noreferrer" class="">#260</a></li>
<li class=""><strong>index:</strong> fix potential path traversal when serving docs (<a href="https://github.com/ts-factory/bublik/commit/2280b97d2803ebad6c04132e381be386a652198c" target="_blank" rel="noopener noreferrer" class="">2280b97</a>)</li>
<li class=""><strong>importruns:</strong> fix artifacts handling during live import (<a href="https://github.com/ts-factory/bublik/commit/f7d92d78a521e5a7b1a279673a47dd1fd14371f8" target="_blank" rel="noopener noreferrer" class="">f7d92d7</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.8.0#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> distinguish interrupted live imports from failed runs (<a href="https://github.com/ts-factory/bublik/commit/af028805470210b0d97160c4212ce2c9b62cb78a" target="_blank" rel="noopener noreferrer" class="">af02880</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring-1">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.8.0#%EF%B8%8F-code-refactoring-1" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>core:</strong> extract tree logic to improve code organization (<a href="https://github.com/ts-factory/bublik/commit/606d3cccc9b7736e7defef89085e8d2a5f10869f" target="_blank" rel="noopener noreferrer" class="">606d3cc</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.8.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>ci:</strong> remove redundant quote-style-check job (<a href="https://github.com/ts-factory/bublik/commit/2cb95e23f9075de5fed4683716e4270fc360c3a2" target="_blank" rel="noopener noreferrer" class="">2cb95e</a>)</li>
<li class=""><strong>history:</strong> standardize date format to ISO8601 for proper timezone handling (<a href="https://github.com/ts-factory/bublik/commit/d9353febc2bb556cf170d3183a0569e99c7122cc" target="_blank" rel="noopener noreferrer" class="">d9353fe</a>)</li>
<li class=""><strong>ci:</strong> fix black formatting mismatch between local and CI (<a href="https://github.com/ts-factory/bublik/commit/65165a8b2bdd46dbdd0fb5c806790ca418026bea" target="_blank" rel="noopener noreferrer" class="">65165a8</a>)</li>
<li class=""><strong>requirements:</strong> update urllib3 version to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/9fa308c2bf74984ad25e07da831e7a75a2db5a37" target="_blank" rel="noopener noreferrer" class="">9fa308c</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v2.8.0#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> fix comment typo in group_results function (<a href="https://github.com/ts-factory/bublik/commit/f6ed8104d525ad9b8f6de6c3874ca395a439796f" target="_blank" rel="noopener noreferrer" class="">f6ed810</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.7.1]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.7.1</id>
        <link href="https://ts-factory.github.io/blog/release-v2.7.1"/>
        <updated>2025-12-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We’re excited to announce Bublik v2.7.1! In this release, we’ve fixed incorrect tag display, added filtering to history measurement series charts, and introduced quick access to reports directly from the dashboard.]]></summary>
        <content type="html"><![CDATA[<p>We’re excited to announce Bublik v2.7.1! In this release, we’ve fixed incorrect tag display, added filtering to history measurement series charts, and introduced quick access to reports directly from the dashboard.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="whats-new">What's New<a href="https://ts-factory.github.io/blog/release-v2.7.1#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h3>
<p><strong>Parameters Filter for Measurement Series Charts</strong> <br>
Added a new filter to measurement series charts that allows you to filter data by specific series chart name and parameters, making it easier to analyze and compare results across different test configurations.</p>
<p><strong>Quick Navigation from Dashboard to the Most Recent Report</strong> <br>
Added a new handler <code>go_report</code>. When set in DASHBOARD_PAYLOAD in the main project configuration as the value for a dashboard header key, it allows navigating to the most recent report by clicking the corresponding column value.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.7.1#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="filters-for-series-charts">Filters for Series Charts<a href="https://ts-factory.github.io/blog/release-v2.7.1#filters-for-series-charts" class="hash-link" aria-label="Direct link to Filters for Series Charts" title="Direct link to Filters for Series Charts" translate="no">​</a></h3>
<p>History measurements now include a parameters filter, enabling more precise data analysis by filtering series based on test parameters and names.</p>
<p><img decoding="async" loading="lazy" alt="Parameters Filter" src="https://ts-factory.github.io/assets/images/series-1-ffcb80471b74df2c473d5f69e6a2447e.webp" width="3348" height="2084" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="go-to-the-most-recent-report-from-dashboard">Go to the Most Recent Report from Dashboard<a href="https://ts-factory.github.io/blog/release-v2.7.1#go-to-the-most-recent-report-from-dashboard" class="hash-link" aria-label="Direct link to Go to the Most Recent Report from Dashboard" title="Direct link to Go to the Most Recent Report from Dashboard" translate="no">​</a></h3>
<p>To enable navigation to the most recent report from the dashboard, set <code>go_report</code> as the value for a dashboard header key in the main project configuration. Clicking the corresponding column value will then take you directly to the most recent report.</p>
<p><img decoding="async" loading="lazy" alt="Go to Report" src="https://ts-factory.github.io/assets/images/config-1-d84932ef661c2157bff9019b65b9baec.webp" width="3356" height="2084" class="img_yd8J"></p>
<p><img decoding="async" loading="lazy" alt="Go to Report" src="https://ts-factory.github.io/assets/images/dashboard-1-e175252f1dbcccc3c5bed12952b5e2b6.webp" width="3356" height="2084" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.7.1#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.7.1#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.7.1</code></li>
<li class=""><code>./scripts/deploy --steps django_settings run_services</code></li>
<li class="">Activate the virtual environment: <code>source .env/bin/activate</code></li>
<li class="">Create project cache: <code>python manage.py project_cache create</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.7.1#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.7.1</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.7.1#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.7.1</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.7.1#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code></li>
<li class="">Open your <code>.env</code> file and change <code>IMAGE_TAG</code> to <code>2.7.1</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
<li class=""><code>task shell</code></li>
<li class="">Create project cache: <code>python manage.py project_cache create</code></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.7.1#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.7.1#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.7.1#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> [measurements] add parameters filter to series charts (<a href="https://github.com/ts-factory/bublik-ui/commit/9180fc59fd08e0e0fc495c071fa8c7e01500e0da" target="_blank" rel="noopener noreferrer" class="">9180fc5</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.7.1#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> restore selected charts from URL (<a href="https://github.com/ts-factory/bublik-ui/commit/d9c1d60ed59bf104104a4cbf59eb87d04635a295" target="_blank" rel="noopener noreferrer" class="">d9c1d60</a>)</li>
<li class=""><strong>measurements:</strong> add y-axis label to chart name (<a href="https://github.com/ts-factory/bublik-ui/commit/6022ccb2ccb80399f155f525235c225a4b09a89b" target="_blank" rel="noopener noreferrer" class="">6022ccb</a>)</li>
<li class=""><strong>report:</strong> improve scrolling to item when clickin on TOC item (<a href="https://github.com/ts-factory/bublik-ui/commit/116283354d70245d5a4e74cd50ee15e0fe8cb9d3" target="_blank" rel="noopener noreferrer" class="">1162833</a>)</li>
<li class=""><strong>version:</strong> crash on safari for <code>NaN</code> date (<a href="https://github.com/ts-factory/bublik-ui/commit/b06a2158fea89b7f8cb36f42b274f0432208100b" target="_blank" rel="noopener noreferrer" class="">b06a215</a>)</li>
<li class=""><strong>report:</strong> [chart] mismatch between legend and line colors (<a href="https://github.com/ts-factory/bublik-ui/commit/939158f0a46bb51adf533b80f31b34007fb51489" target="_blank" rel="noopener noreferrer" class="">939158f</a>)</li>
<li class=""><strong>report:</strong> circular imports for cause by report args and warning hover card (<a href="https://github.com/ts-factory/bublik-ui/commit/1bb733f3d9ceca61e7a1c59c8580a7bacd36aa04" target="_blank" rel="noopener noreferrer" class="">1bb733f</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.7.1#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>ui:</strong> fix ";" symbol at the end of run report (<a href="https://github.com/ts-factory/bublik-ui/commit/22c00091d838f3d837ea4a832594f7b5e4a34fc9" target="_blank" rel="noopener noreferrer" class="">22c0009</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.7.1#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> [measurements] generate unique names for series (<a href="https://github.com/ts-factory/bublik-ui/commit/5b9baae52d6fd2f920dd95bfd6c8850a6a118489" target="_blank" rel="noopener noreferrer" class="">5b9baae</a>)</li>
<li class=""><strong>history:</strong> [measurements] merge y-axises with the same name (<a href="https://github.com/ts-factory/bublik-ui/commit/c3682ce06452c8704e2a3cec00bfbae99ebb78db" target="_blank" rel="noopener noreferrer" class="">c3682ce</a>)</li>
<li class=""><strong>measurements:</strong> remove green circles to highlight expected results (<a href="https://github.com/ts-factory/bublik-ui/commit/8df10a4384e34fe2273e94a79842b529e1e791d5" target="_blank" rel="noopener noreferrer" class="">8df10a4</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.7.1#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.7.1#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>cache:</strong> fix tags caching to be project-specific (<a href="https://github.com/ts-factory/bublik/commit/90349e549b160d4588063b0da13c49b3bbb6a50f" target="_blank" rel="noopener noreferrer" class="">90349e5</a>)</li>
<li class=""><strong>url:</strong> fix source run URL construction by using the latest log entry (<a href="https://github.com/ts-factory/bublik/commit/cb4f9064bbc2fba41e3e0eabbc01cdf2acc46100" target="_blank" rel="noopener noreferrer" class="">cb4f906</a>)</li>
<li class=""><strong>importruns:</strong> ensure single log entry per run on re-import (<a href="https://github.com/ts-factory/bublik/commit/bb6660a575d9345083cb555eb583fdc1346785db" target="_blank" rel="noopener noreferrer" class="">bb6660a</a>)</li>
<li class=""><strong>run data:</strong> fix runs tags retrieval (<a href="https://github.com/ts-factory/bublik/commit/c060931a7496ed99b781ed1dbd6997a020dd2ccb" target="_blank" rel="noopener noreferrer" class="">c060931</a>)</li>
<li class=""><strong>config:</strong> prevent unsupported handlers in dashboard payload (<a href="https://github.com/ts-factory/bublik/commit/e9e3c93d7a39bb8180a6086b151ced37b4e5a67e" target="_blank" rel="noopener noreferrer" class="">e9e3c93</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.7.1#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>dashboard:</strong> enable navigation to the most recent report from dashboard (<a href="https://github.com/ts-factory/bublik/commit/5ede84c16650a7e3f5b293d193a78beeaeba384f" target="_blank" rel="noopener noreferrer" class="">5ede84c</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring-1">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.7.1#%EF%B8%8F-code-refactoring-1" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>cache:</strong> unify project-level caching to improve scalability (<a href="https://github.com/ts-factory/bublik/commit/260712172198e72875b634f504cf88c5f95ac222" target="_blank" rel="noopener noreferrer" class="">2607121</a>)</li>
<li class=""><strong>report:</strong> enable reuse of applicable report configuration retrieval (<a href="https://github.com/ts-factory/bublik/commit/1f586c1bf8daa399e75fb8e1189bb31760ca504f" target="_blank" rel="noopener noreferrer" class="">1f586c1</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-performance">⚡ Performance<a href="https://ts-factory.github.io/blog/release-v2.7.1#-performance" class="hash-link" aria-label="Direct link to ⚡ Performance" title="Direct link to ⚡ Performance" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> prevent repeated database queries when global config is missing (<a href="https://github.com/ts-factory/bublik/commit/bc76a4b6667aa542bffe8baf8f5a26b8d2a7ed66" target="_blank" rel="noopener noreferrer" class="">bc76a4b</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.6.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.6.0</id>
        <link href="https://ts-factory.github.io/blog/release-v2.6.0"/>
        <updated>2025-12-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Bublik v2.6.0 introduces new capabilities in run reports, including stacked chart mode for overlaying multiple charts for easier comparison and analysis, as well as multi-argument chart overlays. It also fixes several issues related to argument display.]]></summary>
        <content type="html"><![CDATA[<p>Bublik v2.6.0 introduces new capabilities in run reports, including stacked chart mode for overlaying multiple charts for easier comparison and analysis, as well as multi-argument chart overlays. It also fixes several issues related to argument display.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="whats-new">What's New<a href="https://ts-factory.github.io/blog/release-v2.6.0#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h3>
<p><strong>Multi-Argument Chart Overlays in Reports</strong> <br>
Specify multiple overlay arguments in the configuration to display corresponding data series on the same axes for easier comparison.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.6.0#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="report-multi-argument-chart-overlays">Report Multi-Argument Chart Overlays<a href="https://ts-factory.github.io/blog/release-v2.6.0#report-multi-argument-chart-overlays" class="hash-link" aria-label="Direct link to Report Multi-Argument Chart Overlays" title="Direct link to Report Multi-Argument Chart Overlays" translate="no">​</a></h3>
<p>The report configuration now supports grouping data within a single record series across multiple arguments.</p>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="overlay-configuration">Overlay Configuration<a href="https://ts-factory.github.io/blog/release-v2.6.0#overlay-configuration" class="hash-link" aria-label="Direct link to Overlay Configuration" title="Direct link to Overlay Configuration" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="Overlayed Charts" src="https://ts-factory.github.io/assets/images/stacked-4-a7f535c413c13c7d7488cf92c1a1d1e4.webp" width="3346" height="2084" class="img_yd8J"></p>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="overlayed-charts">Overlayed Charts<a href="https://ts-factory.github.io/blog/release-v2.6.0#overlayed-charts" class="hash-link" aria-label="Direct link to Overlayed Charts" title="Direct link to Overlayed Charts" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="Overlay Config" src="https://ts-factory.github.io/assets/images/stacked-3-204dcd8c036f0fe6455562a6e0f3a95e.webp" width="2882" height="1358" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="stacked-charts">Stacked Charts<a href="https://ts-factory.github.io/blog/release-v2.6.0#stacked-charts" class="hash-link" aria-label="Direct link to Stacked Charts" title="Direct link to Stacked Charts" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="how-to-use">How to use:<a href="https://ts-factory.github.io/blog/release-v2.6.0#how-to-use" class="hash-link" aria-label="Direct link to How to use:" title="Direct link to How to use:" translate="no">​</a></h4>
<ul>
<li class="">Click the <strong>plus</strong> button to select additional charts for stacking</li>
<li class="">Selected charts appear in the bottom right corner</li>
<li class="">All stacked charts display together on a unified plot</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="button-to-add-for-stacked-charts">Button to add for stacked charts<a href="https://ts-factory.github.io/blog/release-v2.6.0#button-to-add-for-stacked-charts" class="hash-link" aria-label="Direct link to Button to add for stacked charts" title="Direct link to Button to add for stacked charts" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="Stacked Chart Mode Button" src="https://ts-factory.github.io/assets/images/stacked-1-b4f3b53418b4387f6d242d30d746b48e.webp" width="3358" height="2084" class="img_yd8J"></p>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="stacked-charts-1">Stacked Charts<a href="https://ts-factory.github.io/blog/release-v2.6.0#stacked-charts-1" class="hash-link" aria-label="Direct link to Stacked Charts" title="Direct link to Stacked Charts" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="Stacked Chart Mode" src="https://ts-factory.github.io/assets/images/stacked-2-0efa47693a51109a10d55dc6f0c04ef2.webp" width="3358" height="2084" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.6.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>Before starting the update, create a database backup to ensure data safety in case of any unexpected issues during the process.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.6.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.6.0</code></li>
<li class=""><code>./scripts/deploy --steps per_project_conf run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.6.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.6.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.6.0#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.6.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.6.0#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code></li>
<li class="">Open your <code>.env</code> file and change <code>IMAGE_TAG</code> to <code>2.6.0</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
<li class=""><code>task shell</code> - to enter django container</li>
<li class=""><code>python manage.py reformat_configs</code></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.6.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.6.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.6.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>report:</strong> [chart] add stacked charts support for report (<a href="https://github.com/ts-factory/bublik-ui/commit/e4f4cc82bb91059ba200ded89164c960fb6b39c5" target="_blank" rel="noopener noreferrer" class="">e4f4cc8</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.6.0#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>run:</strong> [result-table] fix history split button icon being on top of header (<a href="https://github.com/ts-factory/bublik-ui/commit/d47cd2e88996021d2c07c81264366209d3e7f5fe" target="_blank" rel="noopener noreferrer" class="">d47cd2e</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.6.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.6.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>report:</strong> fix sequences argument move (<a href="https://github.com/ts-factory/bublik/commit/e42db0e66247619477409eea4f126ccebb932f9c" target="_blank" rel="noopener noreferrer" class="">e42db0e</a>)</li>
<li class=""><strong>report:</strong> ensure consistent argument display (<a href="https://github.com/ts-factory/bublik/commit/19fc68dcb62c71e6a6e24c5e226970dd0c5ee869" target="_blank" rel="noopener noreferrer" class="">19fc68d</a>)</li>
<li class=""><strong>report:</strong> fix iteration vs common test argument duplication (<a href="https://github.com/ts-factory/bublik/commit/2f98ea5c8735384d581d65c81c807904bf2ff2cd" target="_blank" rel="noopener noreferrer" class="">2f98ea5</a>)</li>
<li class=""><strong>config:</strong> disallow extra keys in report config to avoid confusion (<a href="https://github.com/ts-factory/bublik/commit/36c5e4dc03de7a9b05bd64b861e91eb08dc67587" target="_blank" rel="noopener noreferrer" class="">36c5e4d</a>)</li>
<li class=""><strong>report:</strong> fix overlay settings retrieval for new config format (<a href="https://github.com/ts-factory/bublik/commit/d2b1619aa325aaa3e509b274f157e9a9694713ed" target="_blank" rel="noopener noreferrer" class="">d2b1619</a>)</li>
<li class=""><strong>config:</strong> ensure uniqueness of base series in test report (<a href="https://github.com/ts-factory/bublik/commit/3de9af1e0531a7d9637def89c5ceaaadd79b92d3" target="_blank" rel="noopener noreferrer" class="">3de9af1</a>)</li>
<li class=""><strong>config:</strong> validate report configs for overlay argument conflicts (<a href="https://github.com/ts-factory/bublik/commit/2982a55145024e923f9e4ba9cf7cc7dd97721ed2" target="_blank" rel="noopener noreferrer" class="">2982a55</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.6.0#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> enable overlay charts by multiple args (<a href="https://github.com/ts-factory/bublik/commit/fe4841c4735df9d906af597a09551a9143cec6f1" target="_blank" rel="noopener noreferrer" class="">fe4841c</a>)</li>
<li class=""><strong>report:</strong> extend overlay processing for multi-argument overlays (<a href="https://github.com/ts-factory/bublik/commit/e89f4cb630c50ebe64519ef7e2638510aba872c0" target="_blank" rel="noopener noreferrer" class="">e89f4cb</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.6.0#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>report:</strong> clean up test config access (<a href="https://github.com/ts-factory/bublik/commit/c21e8527f7021b4c6ccb63f721ae02e9f75b6546" target="_blank" rel="noopener noreferrer" class="">c21e852</a>)</li>
<li class=""><strong>config:</strong> rename overlaying settings key in report config (<a href="https://github.com/ts-factory/bublik/commit/ab8b0fb8103f0909fd186653726669026de5a178" target="_blank" rel="noopener noreferrer" class="">ab8b0fb</a>)</li>
<li class=""><strong>report:</strong> standardize terminology for data series (<a href="https://github.com/ts-factory/bublik/commit/6db786cceaf9a950ffd63a01f3b9dc2313c2c7f6" target="_blank" rel="noopener noreferrer" class="">6db786c</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.6.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> clarify report sequences settings descriptions (<a href="https://github.com/ts-factory/bublik/commit/3f13075da825948e60f85f1ac101044394fcdf16" target="_blank" rel="noopener noreferrer" class="">3f13075</a>)</li>
<li class=""><strong>management:</strong> enable reformat to rename overlay settings key in report configs (<a href="https://github.com/ts-factory/bublik/commit/990225ebcae3ec9fa7a6cada09d7fd5b58610ba0" target="_blank" rel="noopener noreferrer" class="">990225e</a>)</li>
<li class=""><strong>management:</strong> enable report configs reformat to overlay charts by multiple args (<a href="https://github.com/ts-factory/bublik/commit/9f37dd67261bb590cf1ae59f89e4d982a6527d9c" target="_blank" rel="noopener noreferrer" class="">9f37dd6</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.5.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.5.0</id>
        <link href="https://ts-factory.github.io/blog/release-v2.5.0"/>
        <updated>2025-12-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Bublik v2.5.0 brings improved navigation, cleaner short URLs, a more readable import log, and UI refinements like hiding empty argument blocks.]]></summary>
        <content type="html"><![CDATA[<p>Bublik v2.5.0 brings improved navigation, cleaner short URLs, a more readable import log, and UI refinements like hiding empty argument blocks. <br>
This release also includes several bug fixes, minor enhancements, and an upgrade to Node v24.11 LTS.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="whats-new">What's New<a href="https://ts-factory.github.io/blog/release-v2.5.0#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h3>
<p><strong>Run Go To The Result</strong> <br>
When going to the run details page, scroll to the result from which you are coming from if possible</p>
<p><strong>Improved Import Log</strong> <br>
The import log now better formatted and highlights "ERROR" messages and "WARNING" messages</p>
<p><strong>Copy Short URL Without Page State</strong> <br>
You can now copy a short URL to a page without the page state (long URL query string)</p>
<p><strong>Hide Empty Argument Values Block</strong> <br>
On the report page, you hide argument values blocks that are empty</p>
<p><strong>Place "Gain" columns next to their base ones</strong> <br>
On the report page, you can now place "Gain" columns next to their base ones for better comparison</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.5.0#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="go-straight-to-result">Go Straight To Result<a href="https://ts-factory.github.io/blog/release-v2.5.0#go-straight-to-result" class="hash-link" aria-label="Direct link to Go Straight To Result" title="Direct link to Go Straight To Result" translate="no">​</a></h3>
<!-- -->
<img src="https://ts-factory.github.io/assets/images/result-56a6230a5ebb88a228a7b001227069ae.gif" alt="Go Straight To Result" style="border-radius:8px">
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="import-log">Import Log<a href="https://ts-factory.github.io/blog/release-v2.5.0#import-log" class="hash-link" aria-label="Direct link to Import Log" title="Direct link to Import Log" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Import Log" src="https://ts-factory.github.io/assets/images/import-log-18a77866762803837b413b45f49ed352.webp" width="3414" height="2040" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="copy-short-url-without-page-state">Copy Short URL Without Page State<a href="https://ts-factory.github.io/blog/release-v2.5.0#copy-short-url-without-page-state" class="hash-link" aria-label="Direct link to Copy Short URL Without Page State" title="Direct link to Copy Short URL Without Page State" translate="no">​</a></h3>
<p>You can now copy a short URL to a page without the page state (long URL query string)</p>
<p><img decoding="async" loading="lazy" alt="Copy Short URL Without Page State" src="https://ts-factory.github.io/assets/images/short-url-1bb5c1c1228e691d081f8e2fa4641947.webp" width="3376" height="2016" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="place-gain-columns-next-to-their-base-ones">Place "Gain" Columns Next to Their Base Ones<a href="https://ts-factory.github.io/blog/release-v2.5.0#place-gain-columns-next-to-their-base-ones" class="hash-link" aria-label="Direct link to Place &quot;Gain&quot; Columns Next to Their Base Ones" title="Direct link to Place &quot;Gain&quot; Columns Next to Their Base Ones" translate="no">​</a></h3>
<p>On the report page, you can now place "Gain" columns next to their base ones for better comparison</p>
<p><img decoding="async" loading="lazy" alt="Place Gain Columns Next to Their Base Ones" src="https://ts-factory.github.io/assets/images/gain-f8e5f465ade5aaa12ddc865dacb03bc4.webp" width="3376" height="1932" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.5.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>Before starting the update, create a database backup to ensure data safety in case of any unexpected issues during the process.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.5.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.5.0</code></li>
<li class=""><code>./scripts/deploy --steps pip_requirements migrate_db run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.5.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.5.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.5.0#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.5.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.5.0#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code></li>
<li class="">Open your <code>.env</code> file and change <code>IMAGE_TAG</code> to <code>2.5.0</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.5.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.5.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.5.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> [aggregation] add important tags to results hover card (<a href="https://github.com/ts-factory/bublik-ui/commit/070e0b15794657280d3cc73610dc50dbd5859128" target="_blank" rel="noopener noreferrer" class="">070e0b1</a>)</li>
<li class=""><strong>log:</strong> expand level up to row with <code>MI</code> level by default (<a href="https://github.com/ts-factory/bublik-ui/commit/57f1cb8de6bebfc04697c27c7f83ef5acf9174ba" target="_blank" rel="noopener noreferrer" class="">57f1cb8</a>)</li>
<li class=""><strong>report:</strong> [table] add ability to pair "gain" columns to their base series (<a href="https://github.com/ts-factory/bublik-ui/commit/24052dd9578efa70ebb7bc97788ffe6d113ff94f" target="_blank" rel="noopener noreferrer" class="">24052dd</a>)</li>
<li class=""><strong>run:</strong> add link to run straight to iteration (<a href="https://github.com/ts-factory/bublik-ui/commit/831652d9c1b2d0dcbb10639f98f816d18d774364" target="_blank" rel="noopener noreferrer" class="">831652d</a>)</li>
<li class=""><strong>url:</strong> add ability to copy short URL with page state or without (<a href="https://github.com/ts-factory/bublik-ui/commit/816e8c8f8bdce555aaa45c88c1cf042dea4a5074" target="_blank" rel="noopener noreferrer" class="">816e8c8</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.5.0#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>report:</strong> [chart,table] ensure table and chart always take 50% width (<a href="https://github.com/ts-factory/bublik-ui/commit/0dcb4a9a39b964eaff3a0fb86512e35870ae2274" target="_blank" rel="noopener noreferrer" class="">0dcb4a9</a>)</li>
<li class=""><strong>report:</strong> [table] allow table header to wrap for long header labels (<a href="https://github.com/ts-factory/bublik-ui/commit/0ed18f62040b43cc046904590e01c346fd7c4b41" target="_blank" rel="noopener noreferrer" class="">0ed18f6</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.5.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> apply filter state on mount (<a href="https://github.com/ts-factory/bublik-ui/commit/7acf814b7d5280bc459f782d9e524f4ae4c44572" target="_blank" rel="noopener noreferrer" class="">7acf814</a>)</li>
<li class=""><strong>import:</strong> add missing react <code>key</code> prop to import events table (<a href="https://github.com/ts-factory/bublik-ui/commit/34a2b0372db0b655b2548a132507e223b2101bf6" target="_blank" rel="noopener noreferrer" class="">34a2b03</a>)</li>
<li class=""><strong>report:</strong> hide empty <code>arg-val-block</code> in report (<a href="https://github.com/ts-factory/bublik-ui/commit/4f3fdbb1a038d4ce64a640f402018f5a4c1bb722" target="_blank" rel="noopener noreferrer" class="">4f3fdbb</a>)</li>
<li class=""><strong>run:</strong> [result-table] fix parameters diff (<a href="https://github.com/ts-factory/bublik-ui/commit/2bdb7bc177aed919964ff680d308a17b771859dd" target="_blank" rel="noopener noreferrer" class="">2bdb7bc</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.5.0#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>import:</strong> [log] display log as a table with columns (<a href="https://github.com/ts-factory/bublik-ui/commit/e7cde451a570c8ff7250d988ff75e4f195294e73" target="_blank" rel="noopener noreferrer" class="">e7cde45</a>)</li>
<li class=""><strong>version:</strong> fix missing API version information (<a href="https://github.com/ts-factory/bublik-ui/commit/d0c71a2c0c7a8c3bdaf364b0ef878d956b3cc981" target="_blank" rel="noopener noreferrer" class="">d0c71a2</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.5.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>deps:</strong> upgrade node version to 24.11 LTS (<a href="https://github.com/ts-factory/bublik-ui/commit/eb62198f588213c2640d3131af6a7ccdc2de708a" target="_blank" rel="noopener noreferrer" class="">eb62198</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.5.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.5.0#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> fix project handling during live import (<a href="https://github.com/ts-factory/bublik/commit/61151a3c36b39ffefef039e2737da8a28a33a09e" target="_blank" rel="noopener noreferrer" class="">61151a3</a>)</li>
<li class=""><strong>models:</strong> enforce project association for all test iteration results (<a href="https://github.com/ts-factory/bublik/commit/ec5af1e24cb73d972f0b1ad5ebbb73d7d449a635" target="_blank" rel="noopener noreferrer" class="">ec5af1e</a>)</li>
<li class=""><strong>signals:</strong> fix config cascade delete error caused by project deletion (<a href="https://github.com/ts-factory/bublik/commit/3edd162d43842a13d99ba886ee2f647f0c746ea0" target="_blank" rel="noopener noreferrer" class="">3edd162</a>)</li>
<li class=""><strong>index:</strong> prevent path traversal when serving docs (<a href="https://github.com/ts-factory/bublik/commit/8af6a5236c98933270abd78f81eb539f3b296fd5" target="_blank" rel="noopener noreferrer" class="">8af6a52</a>)</li>
<li class=""><strong>config:</strong> ensure proper field-specific validation for config name (<a href="https://github.com/ts-factory/bublik/commit/6521116b539476b48e0dc32d5efd855a52d64e4f" target="_blank" rel="noopener noreferrer" class="">6521116</a>)</li>
<li class=""><strong>utils:</strong> fix string-to-number conversion (<a href="https://github.com/ts-factory/bublik/commit/5f33d02c2a1b56e6b95c9011dd30239fb5c073a9" target="_blank" rel="noopener noreferrer" class="">5f33d02</a>)</li>
<li class=""><strong>report:</strong> fix display of points with decimal x-axis values on charts (<a href="https://github.com/ts-factory/bublik/commit/849b0a47ab2470b59762fdc614721905614f39e9" target="_blank" rel="noopener noreferrer" class="">849b0a4</a>)</li>
<li class=""><strong>report:</strong> fix sequence normalization error due to missing chart values (<a href="https://github.com/ts-factory/bublik/commit/8cb45acc5f0e85d3d1866cbee6016a3452875b4e" target="_blank" rel="noopener noreferrer" class="">8cb45ac</a>)</li>
<li class=""><strong>management:</strong> fix reformat sequence settings of report config (<a href="https://github.com/ts-factory/bublik/commit/4816e981e5c8f7f24c632ec02b57c7fe26ad041b" target="_blank" rel="noopener noreferrer" class="">4816e98</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.5.0#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> rename misleading param to reflect actual Celery task ID (<a href="https://github.com/ts-factory/bublik/commit/a38c15f9d1d3dbaae9a66e8db9eed82489bb6936" target="_blank" rel="noopener noreferrer" class="">a38c15f</a>)</li>
<li class=""><strong>importruns:</strong> rename uninformative arg to reflect actual Celery task ID (<a href="https://github.com/ts-factory/bublik/commit/abb8004a1e5d8e57ee17c0cadebfe8fdb2e0bf32" target="_blank" rel="noopener noreferrer" class="">abb8004</a>)</li>
<li class=""><strong>importruns:</strong> remove redundant check for run-complete indicator file name in config (<a href="https://github.com/ts-factory/bublik/commit/d02457dd036f7e7af4de05f9248b4a359a210d62" target="_blank" rel="noopener noreferrer" class="">d02457d</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores-1">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.5.0#-chores-1" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>run:</strong> fix compatibility issues by replacing outdated PyEDA with SymPy (<a href="https://github.com/ts-factory/bublik/commit/e8aa04cc625207c1fc4755473a73dcf66056b514" target="_blank" rel="noopener noreferrer" class="">e8aa04c</a>)</li>
<li class=""><strong>requirements:</strong> update packages versions to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/0edd34832b7e23f4708260cc040dcf7a65029fe4" target="_blank" rel="noopener noreferrer" class="">0edd348</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v2.5.0#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>core:</strong> address technical debt by removing unused error helpers (<a href="https://github.com/ts-factory/bublik/commit/5873e7559bf8be0c8ac9568646a8d70f44f0667d" target="_blank" rel="noopener noreferrer" class="">5873e75</a>)</li>
<li class=""><strong>api:</strong> simplify responses by removing redundant 200 status codes (<a href="https://github.com/ts-factory/bublik/commit/bd68bc0d227d9a5229adafa917c6b351581fd996" target="_blank" rel="noopener noreferrer" class="">bd68bc0</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.4.1]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.4.1</id>
        <link href="https://ts-factory.github.io/blog/release-v2.4.1"/>
        <updated>2025-11-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We’re pleased to announce Bublik v2.4.1. In this release, we improved overall performance, in particular for charts with large datasets, enhanced the import UI, and added run comments. We also fixed issues in deployment, live import, reports, and history, and made configurations more reliable by automatically filling missing required attributes from defaults to prevent errors during runtime.]]></summary>
        <content type="html"><![CDATA[<p>We’re pleased to announce Bublik v2.4.1. In this release, we improved overall performance, in particular for charts with large datasets, enhanced the import UI, and added run comments. We also fixed issues in deployment, live import, reports, and history, and made configurations more reliable by automatically filling missing required attributes from defaults to prevent errors during runtime.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="whats-new">What's New<a href="https://ts-factory.github.io/blog/release-v2.4.1#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h3>
<p><strong>Grouped Import Events by URL</strong> <br>
Events associated with the same run are now neatly grouped, making navigation easier</p>
<p><strong>Quick Access to Run Details</strong> <br>
Each grouped event includes a shortcut to the corresponding run details page</p>
<p><strong>Re-import Button</strong> <br>
Retry failed imports directly with a dedicated “Try Again” button</p>
<p><strong>Project Field Added</strong> <br>
Assign the project for the imported run directly in the import form</p>
<p><strong>Chart Performance Improvement</strong> <br>
Charts now use a canvas renderer, significantly improving performance when visualizing large datasets</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.4.1#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="grouped-import-events-by-url">Grouped Import Events By URL<a href="https://ts-factory.github.io/blog/release-v2.4.1#grouped-import-events-by-url" class="hash-link" aria-label="Direct link to Grouped Import Events By URL" title="Direct link to Grouped Import Events By URL" translate="no">​</a></h3>
<p>Added shortcut link to run details page</p>
<p><img decoding="async" loading="lazy" alt="Link" src="https://ts-factory.github.io/assets/images/import-1-8a133b2924fe1e6d828ee087dba27a10.webp" width="3360" height="2084" class="img_yd8J"></p>
<p>Grouped import events by URL for better organization
You can expand the details of each event to view all events associated with a specific run</p>
<p><img decoding="async" loading="lazy" alt="Grouped Events" src="https://ts-factory.github.io/assets/images/import-2-ad61107bd18493696a98a7f244d5f5da.webp" width="3356" height="2084" class="img_yd8J"></p>
<p>Added button to trigger re-import in case of an import error</p>
<p><img decoding="async" loading="lazy" alt="Re-import" src="https://ts-factory.github.io/assets/images/import-3-e3b67914f659bb5127f776dd203055c9.webp" width="3376" height="2012" class="img_yd8J"></p>
<p>Added "Project" field to import form to specify the project for the imported run.</p>
<p><img decoding="async" loading="lazy" alt="Project Field" src="https://ts-factory.github.io/assets/images/import-4-03cc905d45bf05a4b26bf5ce729e76ec.webp" width="3414" height="2043" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="run-comments">Run Comments<a href="https://ts-factory.github.io/blog/release-v2.4.1#run-comments" class="hash-link" aria-label="Direct link to Run Comments" title="Direct link to Run Comments" translate="no">​</a></h3>
<p>Added support for comments on run details page</p>
<p><img decoding="async" loading="lazy" alt="Run Comment" src="https://ts-factory.github.io/assets/images/run-1-d305257d6e4a0ceb9a10fdb51b9e08bf.webp" width="3360" height="2084" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.4.1#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.4.1#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.4.1</code></li>
<li class=""><code>./scripts/deploy --steps pip_requirements run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.4.1#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.4.1</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.4.1#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.4.1</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.4.1#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code></li>
<li class="">Open your <code>.env</code> file and change <code>IMAGE_TAG</code> to <code>2.4.1</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.4.1#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.4.1#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.4.1#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>import:</strong> [form] add <code>project</code> field to form (<a href="https://github.com/ts-factory/bublik-ui/commit/1378923ce147282ab463ee73336cb6c900b8b0be" target="_blank" rel="noopener noreferrer" class="">1378923</a>)</li>
<li class=""><strong>import:</strong> add "Try Again" button to trigger re-import of the run (<a href="https://github.com/ts-factory/bublik-ui/commit/7baa22a5f16c18a46cd2eddd89781bfe8d8fbe46" target="_blank" rel="noopener noreferrer" class="">7baa22a</a>)</li>
<li class=""><strong>run:</strong> add comment form to run details page (<a href="https://github.com/ts-factory/bublik-ui/commit/60386c0dc9832d85395ed863b025e50c11769edf" target="_blank" rel="noopener noreferrer" class="">60386c0</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.4.1#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>report:</strong> [TOC] change font size and spacing to improve clarity (<a href="https://github.com/ts-factory/bublik-ui/commit/8f43850b9b587bd90173299da1330959671af4e1" target="_blank" rel="noopener noreferrer" class="">8f43850</a>)</li>
<li class=""><strong>run:</strong> [details] add padding to error state (<a href="https://github.com/ts-factory/bublik-ui/commit/c5e96ab8e74cfeb6b87809e53e75e610cc38a534" target="_blank" rel="noopener noreferrer" class="">c5e96ab</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.4.1#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>import:</strong> open log modal with polling enabled in case of <code>STARTED</code> state (<a href="https://github.com/ts-factory/bublik-ui/commit/024c6091fb389a36401cf30a0a9f40a96920669b" target="_blank" rel="noopener noreferrer" class="">024c609</a>)</li>
<li class=""><strong>log:</strong> [preview] fix incorrectly handling for first log page (<a href="https://github.com/ts-factory/bublik-ui/commit/0320a170462a3a742aab30b9deffda939abc51fe" target="_blank" rel="noopener noreferrer" class="">0320a17</a>)</li>
<li class=""><strong>log:</strong> [preview] reset log table state on pagination change (<a href="https://github.com/ts-factory/bublik-ui/commit/2156d47b2ebb8ac0450f3cf8a4a88311113099fc" target="_blank" rel="noopener noreferrer" class="">2156d47</a>)</li>
<li class=""><strong>run:</strong> use full test path for history search (<a href="https://github.com/ts-factory/bublik-ui/commit/6a397916406a1b0b349eaaa168fcda237dd282e1" target="_blank" rel="noopener noreferrer" class="">6a39791</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.4.1#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>import:</strong> display timeline for each import task on row click (<a href="https://github.com/ts-factory/bublik-ui/commit/456d0c70d3f0c99a8d934a8eaa9f5cc4cf4abef5" target="_blank" rel="noopener noreferrer" class="">456d0c7</a>)</li>
<li class=""><strong>run:</strong> reorder columns and align headers with badge placement (<a href="https://github.com/ts-factory/bublik-ui/commit/2dd6b13cdbe6525ce1fdbc435defb2f4e13e2df0" target="_blank" rel="noopener noreferrer" class="">2dd6b13</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-performance-improvements">⚡ Performance Improvements<a href="https://ts-factory.github.io/blog/release-v2.4.1#-performance-improvements" class="hash-link" aria-label="Direct link to ⚡ Performance Improvements" title="Direct link to ⚡ Performance Improvements" translate="no">​</a></h4>
<ul>
<li class=""><strong>measurements:</strong> use canvas renderer for plots (<a href="https://github.com/ts-factory/bublik-ui/commit/0bc05ce4591890522e59697c5d99e748cadbedee" target="_blank" rel="noopener noreferrer" class="">0bc05ce</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.4.1#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.4.1#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>deploy:</strong> fix SSH access during initial deployment setup (<a href="https://github.com/ts-factory/bublik/commit/9b7744f19d45a6b7d18d873b7f02e050085c041c" target="_blank" rel="noopener noreferrer" class="">9b7744f</a>)</li>
<li class=""><strong>server:</strong> fix incorrect inheritance causing queryset assertion (<a href="https://github.com/ts-factory/bublik/commit/74518506c1bd8c5360a9e36fbc9de25d566fd96b" target="_blank" rel="noopener noreferrer" class="">7451850</a>)</li>
<li class=""><strong>importruns:</strong> fix project handling during live import (<a href="https://github.com/ts-factory/bublik/commit/a6e930734614602fa50ead436ac97375a95baf5c" target="_blank" rel="noopener noreferrer" class="">a6e9307</a>)</li>
<li class=""><strong>importruns:</strong> ensure project query param consistency across APIs (<a href="https://github.com/ts-factory/bublik/commit/e74cb1d0d4b0ce31906cafc0c0ef7f1a9e7020b8" target="_blank" rel="noopener noreferrer" class="">e74cb1d</a>)</li>
<li class=""><strong>report:</strong> fix missing table rows caused by X-axis mismatches (<a href="https://github.com/ts-factory/bublik/commit/73c4bbbca54c9b422fb5bc504272214a76cb3433" target="_blank" rel="noopener noreferrer" class="">73c4bbb</a>)</li>
<li class=""><strong>results:</strong> fix inconsistent return type when retrieving tests by name (<a href="https://github.com/ts-factory/bublik/commit/a35797fb84e472c672cd2e939859bf7104118688" target="_blank" rel="noopener noreferrer" class="">a35797f</a>)</li>
<li class=""><strong>config:</strong> align config meta naming between default config and typical TS (<a href="https://github.com/ts-factory/bublik/commit/d117726b649212ac2f25c5d59b91378bf2b2fd8d" target="_blank" rel="noopener noreferrer" class="">d117726</a>)</li>
<li class=""><strong>config:</strong> ensure type-appropriate empty values for missing attrs (<a href="https://github.com/ts-factory/bublik/commit/55469164af66371200a86cbc17f04d7667224cb2" target="_blank" rel="noopener noreferrer" class="">5546916</a>)</li>
<li class=""><strong>config:</strong> ensure fallback to default if attr is missing (<a href="https://github.com/ts-factory/bublik/commit/517ad616418bbdcbeeb0afe23193e081541feac2" target="_blank" rel="noopener noreferrer" class="">517ad61</a>)</li>
<li class=""><strong>signals:</strong> fix meta categorization call on config change (<a href="https://github.com/ts-factory/bublik/commit/cd56661cbf47f39b4e9e78a28dc9235a812c5505" target="_blank" rel="noopener noreferrer" class="">cd56661</a>)</li>
<li class=""><strong>config:</strong> fix config content generation (<a href="https://github.com/ts-factory/bublik/commit/719e3ecab79d71c7900a700af391772d31058fd2" target="_blank" rel="noopener noreferrer" class="">719e3ec</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.4.1#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>management:</strong> enable config cache management (<a href="https://github.com/ts-factory/bublik/commit/ba669e473b7894424f618d9d4dade2dc05d0b0cd" target="_blank" rel="noopener noreferrer" class="">ba669e4</a>)</li>
<li class=""><strong>project:</strong> allow renaming of projects that have linked runs (<a href="https://github.com/ts-factory/bublik/commit/13eb69f7b169844dec8654287d0c63bb72ddce83" target="_blank" rel="noopener noreferrer" class="">13eb69f</a>)</li>
<li class=""><strong>events:</strong> update events data with run ID (<a href="https://github.com/ts-factory/bublik/commit/5e1d982c790a2daea0aab73bee88a286304af63f" target="_blank" rel="noopener noreferrer" class="">5e1d982</a>)</li>
<li class=""><strong>events:</strong> group events by URI for convenience (<a href="https://github.com/ts-factory/bublik/commit/40f34ed8366365a8b0430159b595506ef2c9a3cf" target="_blank" rel="noopener noreferrer" class="">40f34ed</a>)</li>
<li class=""><strong>api:</strong> add endpoint for managing run comments (<a href="https://github.com/ts-factory/bublik/commit/ae7bb2736a894b9c7adfb04d96ba755808e95a80" target="_blank" rel="noopener noreferrer" class="">ae7bb27</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-performance">⚡ Performance<a href="https://ts-factory.github.io/blog/release-v2.4.1#-performance" class="hash-link" aria-label="Direct link to ⚡ Performance" title="Direct link to ⚡ Performance" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> upgrade config cache for performance (<a href="https://github.com/ts-factory/bublik/commit/9129363cfcc8f4730cc48f5a3b9f4a798abbe1a3" target="_blank" rel="noopener noreferrer" class="">9129363</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.4.1#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> make project argument more descriptive (<a href="https://github.com/ts-factory/bublik/commit/e4f76a06b947cb52af97dc4e21e27dd28612ad04" target="_blank" rel="noopener noreferrer" class="">e4f76a0</a>)</li>
<li class=""><strong>management:</strong> unify and clarify project argument definition (<a href="https://github.com/ts-factory/bublik/commit/163cb63830336f7ede5b989ec908c13522d17b1a" target="_blank" rel="noopener noreferrer" class="">163cb63</a>)</li>
<li class=""><strong>report:</strong> improve encapsulation in point sequence sorting (<a href="https://github.com/ts-factory/bublik/commit/7465ff6bee933e23c2f50fe8e0c45224b83fe1f1" target="_blank" rel="noopener noreferrer" class="">7465ff6</a>)</li>
<li class=""><strong>events:</strong> refine session import API (<a href="https://github.com/ts-factory/bublik/commit/7ad6457f97792883c598e9df5e750657303cdef0" target="_blank" rel="noopener noreferrer" class="">7ad6457</a>)</li>
<li class=""><strong>events:</strong> ensure runtime values are numeric (<a href="https://github.com/ts-factory/bublik/commit/31cfa49f8fe0a1b4052e094af70450bac8b453de" target="_blank" rel="noopener noreferrer" class="">31cfa49</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.4.1#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>requirements:</strong> update Markdown version to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/f219fa0b51e19605865985cb60595ea896e0c14e" target="_blank" rel="noopener noreferrer" class="">f219fa0</a>)</li>
<li class=""><strong>requirements:</strong> update packages versions to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/8ff2754ca30111416a77ef507108837707022d10" target="_blank" rel="noopener noreferrer" class="">8ff2754</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v2.4.1#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> improve error message for missing project arg when required (<a href="https://github.com/ts-factory/bublik/commit/52d6cabff09899c123b01ade5a4cf0cd145a399e" target="_blank" rel="noopener noreferrer" class="">52d6cab</a>)</li>
<li class=""><strong>config:</strong> remove outdated default for metadata generation files (<a href="https://github.com/ts-factory/bublik/commit/62fd14c344b869a09b246b50f07016f8f5cf432e" target="_blank" rel="noopener noreferrer" class="">62fd14c</a>)</li>
<li class=""><strong>config:</strong> remove uninformative defaults from main project config schema (<a href="https://github.com/ts-factory/bublik/commit/c4e1a7ce16522d83632ead9d2eca4f9b5d257ac2" target="_blank" rel="noopener noreferrer" class="">c4e1a7c</a>)</li>
<li class=""><strong>events:</strong> simplify and clean up event list retrieval (<a href="https://github.com/ts-factory/bublik/commit/d3c6f470310aa7815fe3863861ee1e8b32066696" target="_blank" rel="noopener noreferrer" class="">d3c6f47</a>)</li>
<li class=""><strong>metaresult:</strong> ensure consistent orphan meta cleanup (<a href="https://github.com/ts-factory/bublik/commit/1ea61fd278709c7a12b008b7cd4d41925b967a0c" target="_blank" rel="noopener noreferrer" class="">1ea61fd</a>)</li>
<li class=""><strong>cleanup:</strong> improve code style and maintainability (<a href="https://github.com/ts-factory/bublik/commit/517cb3ed5fc32b5e139ae9be8ab12648f997524a" target="_blank" rel="noopener noreferrer" class="">517cb3e</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.3.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.3.0</id>
        <link href="https://ts-factory.github.io/blog/release-v2.3.0"/>
        <updated>2025-10-08T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We're pleased to announce Bublik v2.3.0, featuring enhanced configurability and expanded platform support.]]></summary>
        <content type="html"><![CDATA[<p>We're pleased to announce Bublik v2.3.0, featuring enhanced configurability and expanded platform support.
Added support for Debian 13 and Python 3.13.
We've also fixed several deployment issues involving Kerberos setup, the configuration directory path when using the default repository, and SSH key retrieval.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="whats-new">What's New<a href="https://ts-factory.github.io/blog/release-v2.3.0#whats-new" class="hash-link" aria-label="Direct link to What's New" title="Direct link to What's New" translate="no">​</a></h3>
<p><strong>Custom Tab Titles</strong> <br>
Configure project-specific tab title prefixes using the new <code>TAB_TITLE_PREFIX</code> key in your <code>per_conf</code> configuration, making it easier to identify different projects when working with multiple tabs.</p>
<p><strong>Flexible Run Comparison</strong> <br>
The comparison form now accepts both run URLs and run IDs, streamlining the workflow when comparing test runs from different sources.</p>
<p><strong>Extended Platform Support</strong> <br>
This release adds compatibility with Debian 13 and Python 3.13, ensuring Bublik stays current with the latest platform versions.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.3.0#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="compare-form">Compare form<a href="https://ts-factory.github.io/blog/release-v2.3.0#compare-form" class="hash-link" aria-label="Direct link to Compare form" title="Direct link to Compare form" translate="no">​</a></h3>
<p>Allow to provide URL for a run besides run ID in comparison form</p>
<p><img decoding="async" loading="lazy" alt="Compare" src="https://ts-factory.github.io/assets/images/compare-1-45975ed4c70a1d5770532065ab615988.webp" width="3356" height="2086" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.3.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.3.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.3.0</code></li>
<li class=""><code>./scripts/deploy --steps pip_requirements run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.3.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.3.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.3.0#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.3.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.3.0#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-warning admonition__kCM alert alert--warning"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</div><div class="admonitionContent_ZufO"><p>In this release we require to launch under <code>www-data</code> group so logs can be imported by
other users via <code>scp</code></p></div></div>
<ol>
<li class=""><code>task backup:create</code></li>
<li class="">Open your <code>.env</code> file and change <code>IMAGE_TAG</code> to <code>2.3.0</code></li>
<li class="">Run command <code>getent group www-data | cut -d: -f3</code> to get <code>www-data</code> group id</li>
</ol>
<blockquote>
<p><strong>Note</strong> In case no <code>www-data</code> group exists create it</p>
</blockquote>
<ol start="4">
<li class="">Open your <code>.env</code> file and change <code>HOST_GID</code> to output of previous step (usually <code>33</code> on Debian/Ubuntu)</li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.3.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.3.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.3.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>run:</strong> [compare] support pasting full run URLs in comparison form (<a href="https://github.com/ts-factory/bublik-ui/commit/87976f414d6b9a08cfc5d6dde07ea68377c93607" target="_blank" rel="noopener noreferrer" class="">87976f4</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/413" target="_blank" rel="noopener noreferrer" class="">#413</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.3.0#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>projects:</strong> get tab title prefix from API (<a href="https://github.com/ts-factory/bublik-ui/commit/9c4c2cb79b8ac66ef86739e65717dc1ff4d481a0" target="_blank" rel="noopener noreferrer" class="">9c4c2cb</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.3.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.3.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>deploy:</strong> ensure reliable SSH public key retrieval (<a href="https://github.com/ts-factory/bublik/commit/197ce77f08e520782edfeb3439dc233e29d85806" target="_blank" rel="noopener noreferrer" class="">197ce77</a>)</li>
<li class=""><strong>deploy:</strong> fix config directory for default repo option (<a href="https://github.com/ts-factory/bublik/commit/05c5caf8c87d3b3eead8db0a180d58120e3a3fe0" target="_blank" rel="noopener noreferrer" class="">05c5caf</a>)</li>
<li class=""><strong>deploy:</strong> fix Kerberos package installation (<a href="https://github.com/ts-factory/bublik/commit/280aad23007048e78a0acb461b60abdc7fa4e729" target="_blank" rel="noopener noreferrer" class="">280aad2</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.3.0#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> add support for configurable browser tab titles (<a href="https://github.com/ts-factory/bublik/commit/02ff5acfc2cfb67f1ea4733dc622f5bf02fe7efa" target="_blank" rel="noopener noreferrer" class="">02ff5ac</a>)</li>
<li class=""><strong>api:</strong> expose configured browser tab title prefix to UI (<a href="https://github.com/ts-factory/bublik/commit/0e56541a607989e3f494d8cf4977bd8b6bb6eb21" target="_blank" rel="noopener noreferrer" class="">0e56541</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.3.0#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>deploy:</strong> optimize file search performance (<a href="https://github.com/ts-factory/bublik/commit/63a6eb025eeff89ac69f4db2f0bb5609ffaeaf23" target="_blank" rel="noopener noreferrer" class="">63a6eb0</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.3.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>deploy:</strong> fix incompatibility with Debian 13 (<a href="https://github.com/ts-factory/bublik/commit/a4b8f4748b0c33e9bd004c1aaee6ceaaa30eaf62" target="_blank" rel="noopener noreferrer" class="">a4b8f47</a>)</li>
<li class=""><strong>readme:</strong> reflect compatibility with Python 3.13 (<a href="https://github.com/ts-factory/bublik/commit/aabd0a2f448e78cd7e560c5956b39047cf1edd5b" target="_blank" rel="noopener noreferrer" class="">aabd0a2</a>)</li>
<li class=""><strong>requirements:</strong> update Django version to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/7122db6def6bf27b9b9e9a338bb135e45851c877" target="_blank" rel="noopener noreferrer" class="">7122db6</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.2.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.2.0</id>
        <link href="https://ts-factory.github.io/blog/release-v2.2.0"/>
        <updated>2025-10-02T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[We're excited to announce the release of Bublik v2.2.0!]]></summary>
        <content type="html"><![CDATA[<p>We're excited to announce the release of Bublik v2.2.0! <br>
This update brings several improvements to configuration management, enhanced UI polish, and important bug fixes.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="ui-improvements">UI Improvements<a href="https://ts-factory.github.io/blog/release-v2.2.0#ui-improvements" class="hash-link" aria-label="Direct link to UI Improvements" title="Direct link to UI Improvements" translate="no">​</a></h3>
<ul>
<li class="">Refined the settings dropdown with improved icon sizing and styling</li>
<li class="">Updated the "Expose" button icon in test results for better clarity</li>
<li class="">Made default history links bold for easier identification</li>
<li class="">Fixed button disabled state colors for better visual consistency</li>
<li class="">Dimmed placeholder text in input fields for improved readability</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.2.0#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="configuration-management-enhancements">Configuration Management Enhancements<a href="https://ts-factory.github.io/blog/release-v2.2.0#configuration-management-enhancements" class="hash-link" aria-label="Direct link to Configuration Management Enhancements" title="Direct link to Configuration Management Enhancements" translate="no">​</a></h3>
<p>Added a new button to view configuration schemas, making it easier to understand config structure
Improved config filtering to show only currently selected projects and configurations
Better error handling and validation feedback in config creation and update forms</p>
<p>Button to view config schema:</p>
<p><img decoding="async" loading="lazy" alt="Config Schema Button" src="https://ts-factory.github.io/assets/images/config-1-788332e490aee5f6a369776627615052.webp" width="3350" height="2084" class="img_yd8J"></p>
<p>Schema View:</p>
<p><img decoding="async" loading="lazy" alt="Config Schema" src="https://ts-factory.github.io/assets/images/config-2-d9319ec21606a5ad811eb531f3b8c615.webp" width="3410" height="2119" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="new-link-to-history">New Link To History<a href="https://ts-factory.github.io/blog/release-v2.2.0#new-link-to-history" class="hash-link" aria-label="Direct link to New Link To History" title="Direct link to New Link To History" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="New History Link" src="https://ts-factory.github.io/assets/images/run-link-3ed1e9d9d4451593e71efd432097977c.webp" width="1212" height="1099" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="user-experience-updates">User Experience Updates<a href="https://ts-factory.github.io/blog/release-v2.2.0#user-experience-updates" class="hash-link" aria-label="Direct link to User Experience Updates" title="Direct link to User Experience Updates" translate="no">​</a></h3>
<p>Changed default links to point directly to history pages
Adjusted admin-only actions visibility based on user permissions
Improved project card display in config list view</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.2.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.2.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.2.0</code></li>
<li class=""><code>./scripts/deploy --steps pip_requirements django_settings migrate_db per_project_conf run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.2.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.2.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.2.0#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.2.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.2.0#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class="">Add following variables to your <code>.env</code> file:</li>
</ol>
<div class="language-text codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-text codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token plain">BUBLIK_DOCKER_DJANGO_HOST_PROXY=127.0.0.1</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">BUBLIK_DOCKER_TE_LOG_SERVER_HOST=127.0.0.1</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">BUBLIK_DOCKER_DOCS_HOST=127.0.0.1</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">FLOWER_HOST=127.0.0.1</span><br></div><div class="token-line" style="color:#393A34"><span class="token plain">BUBLIK_DOCKER_BUBLIK_UI_HOST=127.0.0.1</span><br></div></code></pre></div></div>
<blockquote>
<p><strong>Note</strong> it's also recommended to change all references from <code>localhost</code> to <code>127.0.0.1</code></p>
</blockquote>
<ol start="2">
<li class=""><code>task backup:create</code></li>
<li class="">Open your <code>.env</code> file and change <code>IMAGE_TAG</code> to <code>2.2.0</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
<li class=""><code>task shell</code> - to enter django container</li>
<li class=""><code>python manage.py reformat_configs</code></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.2.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.2.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.2.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> add button to view config schema (<a href="https://github.com/ts-factory/bublik-ui/commit/eed4e0b0b060cf379a348759b0d406c3fbbb0a5c" target="_blank" rel="noopener noreferrer" class="">eed4e0b</a>)</li>
<li class=""><strong>config:</strong> show only projects/configs that are currently selected (<a href="https://github.com/ts-factory/bublik-ui/commit/9dd52b14868dd3af23bdf39b27c5cdc4668ae7b1" target="_blank" rel="noopener noreferrer" class="">9dd52b1</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.2.0#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> [settings] improve sizing of icon and styling of dropdown (<a href="https://github.com/ts-factory/bublik-ui/commit/c0c26f6b668391cfc10a8b2958d4975dd5cc3b07" target="_blank" rel="noopener noreferrer" class="">c0c26f6</a>)</li>
<li class=""><strong>run:</strong> [results] change <code>Expose</code> button icon (<a href="https://github.com/ts-factory/bublik-ui/commit/c131cb5341e176a2197156109f45cd036860084d" target="_blank" rel="noopener noreferrer" class="">c131cb5</a>)</li>
<li class=""><strong>run:</strong> [results] make default history link bold (<a href="https://github.com/ts-factory/bublik-ui/commit/2106fa52a21ef196aac0d0fc9bbf1148e623de2a" target="_blank" rel="noopener noreferrer" class="">2106fa5</a>)</li>
<li class=""><strong>ui:</strong> [button] fix disabled state color (<a href="https://github.com/ts-factory/bublik-ui/commit/9858ac1450960537634262ed3b9b40ebf507ebaa" target="_blank" rel="noopener noreferrer" class="">9858ac1</a>)</li>
<li class=""><strong>ui:</strong> make placeholder text color dimmer for inputs (<a href="https://github.com/ts-factory/bublik-ui/commit/8b9d38dfb70ef5874c9da0023a1427e6ca2314cb" target="_blank" rel="noopener noreferrer" class="">8b9d38d</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.2.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> [update] display validation error in case of error (<a href="https://github.com/ts-factory/bublik-ui/commit/e4cdcce2ef269ceeaebc2f48886d5a7422113f7c" target="_blank" rel="noopener noreferrer" class="">e4cdcce</a>)</li>
<li class=""><strong>config:</strong> outdated config list after auth (<a href="https://github.com/ts-factory/bublik-ui/commit/41c7b74fcc9e8379d0769ed7028378dd703a3641" target="_blank" rel="noopener noreferrer" class="">41c7b74</a>)</li>
<li class=""><strong>config:</strong> overlapping editor line numbers (<a href="https://github.com/ts-factory/bublik-ui/commit/4366ff12c67a8c7e75e37ea120deff9154a7ebb8" target="_blank" rel="noopener noreferrer" class="">4366ff1</a>)</li>
<li class=""><strong>dashboard:</strong> missing project name for selected project (<a href="https://github.com/ts-factory/bublik-ui/commit/534485d827d1087b5e7525e1352db13f41c53c63" target="_blank" rel="noopener noreferrer" class="">534485d</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.2.0#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> [list] show all project cards by default (<a href="https://github.com/ts-factory/bublik-ui/commit/e6e89e091ae87ab8f3701de494739fca998ee0ea" target="_blank" rel="noopener noreferrer" class="">e6e89e0</a>)</li>
<li class=""><strong>config:</strong> disable/hide admin only actions (<a href="https://github.com/ts-factory/bublik-ui/commit/2c0f7da5828b2592e6da87cd470ff680f179f631" target="_blank" rel="noopener noreferrer" class="">2c0f7da</a>)</li>
<li class=""><strong>config:</strong> improve error handling for config create/update forms (<a href="https://github.com/ts-factory/bublik-ui/commit/e01691b031fd04f88a265d22aec777c54a66c076" target="_blank" rel="noopener noreferrer" class="">e01691b</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.2.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> remove redundant code (<a href="https://github.com/ts-factory/bublik-ui/commit/8509e01c9bfae956f97e4c9a39de8a78521cfd21" target="_blank" rel="noopener noreferrer" class="">8509e01</a>)</li>
<li class=""><strong>run:</strong> [results] change order of result table columns (<a href="https://github.com/ts-factory/bublik-ui/commit/18f0ff6711bb62eb47f4dde03dbf17033dc92b83" target="_blank" rel="noopener noreferrer" class="">18f0ff6</a>)</li>
<li class=""><strong>run:</strong> [results] swap <code>prefilled</code> and <code>direct</code> order (<a href="https://github.com/ts-factory/bublik-ui/commit/52e0ddf6ff76baac425c9f6163f8cbde75148da9" target="_blank" rel="noopener noreferrer" class="">52e0ddf</a>)</li>
<li class=""><strong>run:</strong> change default link to direct to history (<a href="https://github.com/ts-factory/bublik-ui/commit/4dd7997716c3e09efa3223ff8dcf73164e531555" target="_blank" rel="noopener noreferrer" class="">4dd7997</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.2.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.2.0#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>urls:</strong> fix short URLs to work with multi-segment project names (<a href="https://github.com/ts-factory/bublik/commit/19bfad3884e38ca9d32a2056d087243c2e1e76f2" target="_blank" rel="noopener noreferrer" class="">19bfad3</a>)</li>
<li class=""><strong>history:</strong> fix filtering by parameters (<a href="https://github.com/ts-factory/bublik/commit/99507f9306c216c130ea080c60844060cfb0cfba" target="_blank" rel="noopener noreferrer" class="">99507f9</a>)</li>
<li class=""><strong>importruns:</strong> fix JSON log retrieval (<a href="https://github.com/ts-factory/bublik/commit/27af54e9adac6fcb3f1821c769a37582493b3109" target="_blank" rel="noopener noreferrer" class="">27af54e</a>)</li>
<li class=""><strong>importruns:</strong> fix added tags count logging and redundant lookup (<a href="https://github.com/ts-factory/bublik/commit/3c75a932035e1c5466278b91ce7913170b574e5f" target="_blank" rel="noopener noreferrer" class="">3c75a93</a>)</li>
<li class=""><strong>importruns:</strong> ensure runs are linked to projects in live import (<a href="https://github.com/ts-factory/bublik/commit/818833bfe07c721ff890241c4e7fbeee10e0faf6" target="_blank" rel="noopener noreferrer" class="">818833b</a>)</li>
<li class=""><strong>management:</strong> ensure project configs migrate if missing (<a href="https://github.com/ts-factory/bublik/commit/8271c83fb66860cfa883fbca2ef34d3e42d2c7e6" target="_blank" rel="noopener noreferrer" class="">8271c83</a>)</li>
<li class=""><strong>management:</strong> fix retired project recreation during config setup (<a href="https://github.com/ts-factory/bublik/commit/b1cdf530384ddd3640109f03fbbd28f290651e23" target="_blank" rel="noopener noreferrer" class="">b1cdf53</a>)</li>
<li class=""><strong>management:</strong> prevent redundant validation errors in config reformatting (<a href="https://github.com/ts-factory/bublik/commit/0c2d59e703847b0635535fa20b9f2493f5912ea6" target="_blank" rel="noopener noreferrer" class="">0c2d59e</a>)</li>
<li class=""><strong>management:</strong> ensure unique config content after reformatting (<a href="https://github.com/ts-factory/bublik/commit/6417dc907397268933f192781ee69af1c38d6ac9" target="_blank" rel="noopener noreferrer" class="">6417dc9</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.2.0#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> prioritize project name from import argument over meta (<a href="https://github.com/ts-factory/bublik/commit/e872219b4f9a9fa6aa0b941f111c178a38b51ae5" target="_blank" rel="noopener noreferrer" class="">e872219</a>)</li>
<li class=""><strong>config:</strong> relax configuration content uniqueness (<a href="https://github.com/ts-factory/bublik/commit/c68f040140a46e930e0f2cbf1bac1f23e5977fd5" target="_blank" rel="noopener noreferrer" class="">c68f040</a>)</li>
<li class=""><strong>management:</strong> improve access to full project meta categories (<a href="https://github.com/ts-factory/bublik/commit/c615ae719c56274ef42dc48e7dd2fd1f0b38a9c4" target="_blank" rel="noopener noreferrer" class="">c615ae7</a>)</li>
<li class=""><strong>settings:</strong> enable colored output for console messages (<a href="https://github.com/ts-factory/bublik/commit/0c2c84fe0ac581115edac59a243ccc59ec0e6b1d" target="_blank" rel="noopener noreferrer" class="">0c2c84f</a>)</li>
<li class=""><strong>config:</strong> improve meta config content (<a href="https://github.com/ts-factory/bublik/commit/1e7edfc74933a0bc0ef839ad351f337c82585377" target="_blank" rel="noopener noreferrer" class="">1e7edfc</a>)</li>
<li class=""><strong>config:</strong> standardize selected meta categories (<a href="https://github.com/ts-factory/bublik/commit/9ace6ca60d0437d0c06bb10aebfcbc036096ffb1" target="_blank" rel="noopener noreferrer" class="">9ace6ca</a>)</li>
<li class=""><strong>config:</strong> include meta config in initialized configs (<a href="https://github.com/ts-factory/bublik/commit/8eda6de18cc5e3a539f6e34bf47af30db5616264" target="_blank" rel="noopener noreferrer" class="">8eda6de</a>)</li>
<li class=""><strong>config:</strong> enable dashboard navigation by default (<a href="https://github.com/ts-factory/bublik/commit/a60b03cb119fc468d77ec5e793237370786d918b" target="_blank" rel="noopener noreferrer" class="">a60b03c</a>)</li>
<li class=""><strong>config:</strong> enforce project filters and permissions in queryset (<a href="https://github.com/ts-factory/bublik/commit/b9cb5776452fe8339edf743f660738f095c2c203" target="_blank" rel="noopener noreferrer" class="">b9cb577</a>)</li>
<li class=""><strong>run data:</strong> add configuration to run details (<a href="https://github.com/ts-factory/bublik/commit/68173181bde7f349e8c471566fe3137605dd01a9" target="_blank" rel="noopener noreferrer" class="">6817318</a>), closes <a href="https://github.com/ts-factory/bublik/issues/205" target="_blank" rel="noopener noreferrer" class="">#205</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.2.0#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> unify error logging (<a href="https://github.com/ts-factory/bublik/commit/9a712afdbf220b6e55bd0959aab7c79066c807fe" target="_blank" rel="noopener noreferrer" class="">9a712af</a>)</li>
<li class=""><strong>config:</strong> ensure consistent activation on deletion (<a href="https://github.com/ts-factory/bublik/commit/ce626243c567cfd272afabf039e6db905e41a13e" target="_blank" rel="noopener noreferrer" class="">ce62624</a>)</li>
<li class=""><strong>config:</strong> strengthen data integrity for active configs (<a href="https://github.com/ts-factory/bublik/commit/d5901cc1d7c485c7c84aa0669a48ce5d204e7ebe" target="_blank" rel="noopener noreferrer" class="">d5901cc</a>)</li>
<li class=""><strong>config:</strong> ensure valid created value (<a href="https://github.com/ts-factory/bublik/commit/bd3dc1eeaf9306d506b5cce895100b111f86e97e" target="_blank" rel="noopener noreferrer" class="">bd3dc1e</a>)</li>
<li class=""><strong>config:</strong> ensure clean and reliable version assignment (<a href="https://github.com/ts-factory/bublik/commit/2757a2afa63fa53f8f941a3a9acc3c8d22038323" target="_blank" rel="noopener noreferrer" class="">2757a2a</a>)</li>
<li class=""><strong>config:</strong> ensure clean serialization and API (<a href="https://github.com/ts-factory/bublik/commit/9c00b76deec9fc51b3fb933d666c89affde378f0" target="_blank" rel="noopener noreferrer" class="">9c00b76</a>)</li>
<li class=""><strong>management:</strong> remove misleading config names arg from meta categorization (<a href="https://github.com/ts-factory/bublik/commit/615582c34bb46f17916360bb3764b127c6dc16f3" target="_blank" rel="noopener noreferrer" class="">615582c</a>)</li>
<li class=""><strong>config:</strong> remove redundant permission check (<a href="https://github.com/ts-factory/bublik/commit/b752268be03096d37a699aa8791dc5cc87f91f1f" target="_blank" rel="noopener noreferrer" class="">b752268</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores-1">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.2.0#-chores-1" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>requirements:</strong> update packages versions to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/411aacd2cdb4fc7c7656b1f8648fa4aa8ba63451" target="_blank" rel="noopener noreferrer" class="">411aacd</a>)</li>
<li class=""><strong>managemant:</strong> log config source directory in config migration command (<a href="https://github.com/ts-factory/bublik/commit/077bfc7243e0870c1083aa99777e0fdd873cbb81" target="_blank" rel="noopener noreferrer" class="">077bfc7</a>)</li>
<li class=""><strong>management:</strong> clarify meta categorization project-specific logs (<a href="https://github.com/ts-factory/bublik/commit/e45a7eb865cbe2b0cc0ae05a729ca014a37a4c5e" target="_blank" rel="noopener noreferrer" class="">e45a7eb</a>)</li>
<li class=""><strong>management:</strong> clarify the reformatting config label (<a href="https://github.com/ts-factory/bublik/commit/5656bde3762e93552318ac3bec840583e146eb08" target="_blank" rel="noopener noreferrer" class="">5656bde</a>)</li>
<li class=""><strong>management:</strong> simplify reformatting log analysis by sorting configs (<a href="https://github.com/ts-factory/bublik/commit/a299f978d8f01f60655e914f700dae0bc4daf563" target="_blank" rel="noopener noreferrer" class="">a299f97</a>)</li>
<li class=""><strong>management:</strong> improve readability of config reformatting logs (<a href="https://github.com/ts-factory/bublik/commit/403ceb44cefb119c88b4c00252371151a8175a24" target="_blank" rel="noopener noreferrer" class="">403ceb4</a>)</li>
<li class=""><strong>config:</strong> annotate meta config JSON schema for clarity (<a href="https://github.com/ts-factory/bublik/commit/6e40f93c08e7a6ac8b0f47846f7e2f22d066cd98" target="_blank" rel="noopener noreferrer" class="">6e40f93</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v2.2.0#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>run data:</strong> fix variable shadowing in metadata grouping (<a href="https://github.com/ts-factory/bublik/commit/68d92d17e6820367e8c3a37e2941622aeec8632f" target="_blank" rel="noopener noreferrer" class="">68d92d1</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.1.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.1.0</id>
        <link href="https://ts-factory.github.io/blog/release-v2.1.0"/>
        <updated>2025-08-26T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This is small incremental release mainly focused on fixing bugs and added new small feature]]></summary>
        <content type="html"><![CDATA[<p>This is small incremental release mainly focused on fixing bugs and added new small feature</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.1.0#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="new-link-to-history">New Link To History<a href="https://ts-factory.github.io/blog/release-v2.1.0#new-link-to-history" class="hash-link" aria-label="Direct link to New Link To History" title="Direct link to New Link To History" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="New History Link" src="https://ts-factory.github.io/assets/images/history-link-1-310f215d1b55769a83cd6fda9cfcd2aa.webp" width="3354" height="2076" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.1.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.1.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.1.0</code></li>
<li class=""><code>./scripts/deploy --steps run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.1.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.1.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.1.0#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.1.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.1.0#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
</ol>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.1.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.1.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.1.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>run:</strong> add link to history for test filtered by run id and test name (<a href="https://github.com/ts-factory/bublik-ui/commit/53d2c52fdd3cae8a77e2c195fc9b7ff080982a67" target="_blank" rel="noopener noreferrer" class="">53d2c52</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/372" target="_blank" rel="noopener noreferrer" class="">#372</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.1.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> [update-project-form] show meaningful validation errors (<a href="https://github.com/ts-factory/bublik-ui/commit/ea98698096c5a743a860ec0be83b0f5228121b70" target="_blank" rel="noopener noreferrer" class="">ea98698</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/374" target="_blank" rel="noopener noreferrer" class="">#374</a></li>
<li class=""><strong>config:</strong> make description field optional in config forms and API (<a href="https://github.com/ts-factory/bublik-ui/commit/cf653d9fa3ac07104daecf50f92df549186d0813" target="_blank" rel="noopener noreferrer" class="">cf653d9</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/377" target="_blank" rel="noopener noreferrer" class="">#377</a></li>
<li class=""><strong>run:</strong> reset <code>open</code> state for history search form on back navigation (<a href="https://github.com/ts-factory/bublik-ui/commit/7de1533b40ca875ccf9213b884c66a003914a4e6" target="_blank" rel="noopener noreferrer" class="">7de1533</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/383" target="_blank" rel="noopener noreferrer" class="">#383</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.1.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>projects:</strong> [config] update default project label (<a href="https://github.com/ts-factory/bublik-ui/commit/6b6adef40630ef500d99f90dcce81524c5bde66b" target="_blank" rel="noopener noreferrer" class="">6b6adef</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/375" target="_blank" rel="noopener noreferrer" class="">#375</a></li>
<li class=""><strong>run:</strong> remove forgotten <code>console.log</code> (<a href="https://github.com/ts-factory/bublik-ui/commit/71173e77acbb21ad33ec6a3f1c7c22d44f1f9268" target="_blank" rel="noopener noreferrer" class="">71173e7</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.1.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.1.0#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>auth:</strong> fix invalid refresh flow from early access token validation (<a href="https://github.com/ts-factory/bublik/commit/d84bd31a09bfca834e98a26a126ec94630dc7e34" target="_blank" rel="noopener noreferrer" class="">d84bd31</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.1.0#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> add the ability to filter by run IDs (<a href="https://github.com/ts-factory/bublik/commit/e9ab083106d40ac73c4bba5374ee2429009baeb3" target="_blank" rel="noopener noreferrer" class="">e9ab083</a>), closes <a href="https://github.com/ts-factory/bublik/issues/195" target="_blank" rel="noopener noreferrer" class="">#195</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v2.1.0#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> fix variable shadowing in test results pagination (<a href="https://github.com/ts-factory/bublik/commit/0caf3eeba3b7b80075be2ed05ab4c99f3065c219" target="_blank" rel="noopener noreferrer" class="">0caf3ee</a>)</li>
<li class=""><strong>auth:</strong> organize imports and exports as required by ruff (<a href="https://github.com/ts-factory/bublik/commit/07617dc039e772b5ef96a892b0718d14b7522b3b" target="_blank" rel="noopener noreferrer" class="">07617dc</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v2.0.2]]></title>
        <id>https://ts-factory.github.io/blog/release-v2.0.2</id>
        <link href="https://ts-factory.github.io/blog/release-v2.0.2"/>
        <updated>2025-08-01T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this release we've introduced significant new features and improvements, including enhanced project management with the ability to create, edit, and delete projects, along with a new project picker in the sidebar for easier navigation.]]></summary>
        <content type="html"><![CDATA[<p>In this release we've introduced significant new features and improvements, including enhanced project management with the ability to create, edit, and delete projects, along with a new project picker in the sidebar for easier navigation.
Network analysis capabilities have been expanded with the addition of a packet capture analysis page, dissection tree component, and support for <code>.cap</code> and <code>.pcap</code> file attachments.
The update also brings UI refinements such as resizable panels, loading states, and a new split-button component, alongside performance gains from converting PNG images to WebP format.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="multi-project-support">Multi-Project Support<a href="https://ts-factory.github.io/blog/release-v2.0.2#multi-project-support" class="hash-link" aria-label="Direct link to Multi-Project Support" title="Direct link to Multi-Project Support" translate="no">​</a></h2>
<p>In this release, we introduced support for managing multiple projects within a single instance.</p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="project-management">Project Management<a href="https://ts-factory.github.io/blog/release-v2.0.2#project-management" class="hash-link" aria-label="Direct link to Project Management" title="Direct link to Project Management" translate="no">​</a></h3>
<p>Project management is available through the Configuration Manager in the Admin section.</p>
<div class="theme-admonition theme-admonition-note admonition__kCM alert alert--secondary"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_ZufO"><p>This functionality is accessible to administrators only.</p></div></div>
<p><img decoding="async" loading="lazy" alt="Project Config Access" src="https://ts-factory.github.io/assets/images/pr-config-1-07884ad2688ef60812fc678f0141853f.webp" width="3348" height="2076" class="img_yd8J"></p>
<p>Here you can:</p>
<ul>
<li class="">Create new projects</li>
<li class="">Rename projects</li>
<li class="">Delete projects</li>
</ul>
<div class="theme-admonition theme-admonition-note admonition__kCM alert alert--secondary"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"></path></svg></span>note</div><div class="admonitionContent_ZufO"><p>Currently, you can only rename or delete projects that do not have any runs associated with them.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="importing-runs">Importing Runs<a href="https://ts-factory.github.io/blog/release-v2.0.2#importing-runs" class="hash-link" aria-label="Direct link to Importing Runs" title="Direct link to Importing Runs" translate="no">​</a></h3>
<p>To import a run that belongs to a new project, you must first create the project using the Configuration Manager in the Admin section.</p>
<p>To specify which project a run belongs to, set the project name as the value of the <code>PROJECT</code> meta field in the <code>meta_data.json</code> log file before starting the import.</p>
<details class="details_FRYf alert alert--info details_Lz2C" data-collapsed="true"><summary><p>Example of a <code>meta_data.json</code> for a run that will be linked to the
<strong>ts-factory</strong> project</p></summary><div><div class="collapsibleContent_u_2c"><div class="jsonFormatterContainer_AFro"><div class="copyButtonContainer_fgda"><button class="copyButton_P3uu" title="Copy raw JSON"><svg viewBox="0 0 24 24" class="buttonIcon_Mf85"><path fill="currentColor" d="M19,21H8V7H19M19,5H8A2,2 0 0,0 6,7V21A2,2 0 0,0 8,23H19A2,2 0 0,0 21,21V7A2,2 0 0,0 19,5M16,1H4A2,2 0 0,0 2,3V17H4V3H16V1Z"></path></svg> Copy</button></div><pre class="jsonFormatter_IPWp"><code>{
"version": 1,
"metas": [
  <span class="highlight_or_N">{
      "name": "PROJECT", <span class="comment_MXNl">// This means this run will be linked to project with name ts-factory</span>
      "value": "ts-factory"
  },</span>
  {
    "name": "TS_NAME",
    "value": "net-drv-ts"
  },
  {
    "name": "NET_DRV_TS_GIT_URL",
    "value": "https://github.com/ts-factory/net-drv-ts.git"
  },
  {
    "name": "NET_DRV_TS_BRANCH",
    "value": "main",
    "type": "branch"
  },
  {
    "name": "NET_DRV_TS_REV",
    "value": "9ac8dee6e9345039a2b602de72239f2faf8ab89f",
    "type": "revision"
  },
  {
    "name": "TSRIGS_GIT_URL",
    "value": "https://cbs-speed-stack@git.oktetlabs.ru/git/oktetlabs/ts-rigs.git"
  },
  {
    "name": "TSRIGS_BRANCH",
    "value": "master",
    "type": "branch"
  },
  {
    "name": "TSRIGS_REV",
    "value": "0ecac2d569b7fc83242d7c136c859c0c4cbea713",
    "type": "revision"
  },
  {
    "name": "CFG",
    "value": "beechbone-e810"
  },
  {
    "name": "TSCONF_GIT_URL",
    "value": "https://github.com/ts-factory/ts-conf.git"
  },
  {
    "name": "TSCONF_BRANCH",
    "value": "main",
    "type": "branch"
  },
  {
    "name": "TSCONF_REV",
    "value": "df76a477945aabed165ec244257100f1894d39af",
    "type": "revision"
  },
  {
    "name": "START_TIMESTAMP",
    "value": "2025-02-23T17:07:32+03:00"
  },
  {
    "name": "CAMPAIGN_DATE",
    "value": "2025-02-23"
  },
  {
    "name": "USER",
    "value": "cbs-speed-stack"
  },
  {
    "name": "RUN_STATUS",
    "value": "DONE"
  },
  {
    "name": "RUN_OK",
    "value": "true"
  },
  {
    "name": "TE_GIT_URL",
    "value": "https://github.com/ts-factory/test-environment.git"
  },
  {
    "name": "TE_BRANCH",
    "value": "main",
    "type": "branch"
  },
  {
    "name": "TE_REV",
    "value": "d869ac23287ee81795cf42803b2e79e17aea04ee",
    "type": "revision"
  },
  {
    "name": "REUSE_PCO",
    "value": "true"
  },
  {
    "name": "FINISH_TIMESTAMP",
    "value": "2025-02-23T19:32:03+03:00",
    "type": "timestamp"
  }
]
}</code></pre></div></div></div></details>
<div class="theme-admonition theme-admonition-warning admonition__kCM alert alert--warning"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</div><div class="admonitionContent_ZufO"><p>At this time, setting the project in <code>meta_data.json</code> before import <strong>is the only way to link a run to a project</strong>.
It is not possible to reassign a run to another project through the user interface.
If you need to change a run’s project, you must delete it and re-import it with the correct <code>PROJECT</code> value in <code>meta_data.json</code>.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="configurations">Configurations<a href="https://ts-factory.github.io/blog/release-v2.0.2#configurations" class="hash-link" aria-label="Direct link to Configurations" title="Direct link to Configurations" translate="no">​</a></h3>
<p>Configurations are now divided into:</p>
<ul>
<li class="">Default configurations</li>
<li class="">Project-specific configurations</li>
</ul>
<p><img decoding="async" loading="lazy" alt="Configurations" src="https://ts-factory.github.io/assets/images/pr-config-2-5755653d791e3d4ce2f7d8961b6db9f3.webp" width="3350" height="2076" class="img_yd8J"></p>
<p>Default configurations are used for:</p>
<ul>
<li class="">Displaying runs when no project is selected</li>
<li class="">Importing and displaying runs in the absence of project-specific configurations or missing attributes in them</li>
</ul>
<p>If you want to customize settings for a particular project, create a dedicated configuration for that project and override only the attributes you need.</p>
<p><img decoding="async" loading="lazy" alt="Project Form" src="https://ts-factory.github.io/assets/images/projects-2-f46be2cd8b60d2bab3e60a82e8817e1c.webp" width="2964" height="2076" class="img_yd8J"></p>
<p><img decoding="async" loading="lazy" alt="Default attributes" src="https://ts-factory.github.io/assets/images/pr-config-3-b9a661a39e945f1abf0681befd459f83.webp" width="3350" height="2076" class="img_yd8J"></p>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>The presence of a run in Bublik is determined by the meta values listed in <code>RUN_KEY_METAS</code> in the main configuration (<em>per_conf</em>). If you want to import identical runs into different projects, include the <code>PROJECT</code> meta in the <code>RUN_KEY_METAS</code> of the main configurations for both projects. This ensures that when importing the same run into another project, Bublik will not treat it as already imported.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="filter-by-project">Filter By Project<a href="https://ts-factory.github.io/blog/release-v2.0.2#filter-by-project" class="hash-link" aria-label="Direct link to Filter By Project" title="Direct link to Filter By Project" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Filter" src="https://ts-factory.github.io/assets/images/projects-3-459528e985aca49f6a31a46410ed5ad0.webp" width="3376" height="2012" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v2.0.2#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="network-packets">Network Packets<a href="https://ts-factory.github.io/blog/release-v2.0.2#network-packets" class="hash-link" aria-label="Direct link to Network Packets" title="Direct link to Network Packets" translate="no">​</a></h3>
<p>New Page to view <code>.cap</code> and <code>.pcap</code> files from log attachments
You can access it via log attachments if added them
For more information please see <a class="" href="https://ts-factory.github.io/publish/attachments">documentation</a>.</p>
<p><img decoding="async" loading="lazy" alt="Access" src="https://ts-factory.github.io/assets/images/packet-capture-1-8c60948cd0f2e22dcd0b1a80b8e992d7.webp" width="3346" height="2076" class="img_yd8J"></p>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="new-page">New Page<a href="https://ts-factory.github.io/blog/release-v2.0.2#new-page" class="hash-link" aria-label="Direct link to New Page" title="Direct link to New Page" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="Page" src="https://ts-factory.github.io/assets/images/packet-capture-2-8464ad9a16084eae82e075ed2d16c468.webp" width="3413" height="2034" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="improved-shortcut-links-for-history-and-run">Improved Shortcut Links For History And Run<a href="https://ts-factory.github.io/blog/release-v2.0.2#improved-shortcut-links-for-history-and-run" class="hash-link" aria-label="Direct link to Improved Shortcut Links For History And Run" title="Direct link to Improved Shortcut Links For History And Run" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="run">Run<a href="https://ts-factory.github.io/blog/release-v2.0.2#run" class="hash-link" aria-label="Direct link to Run" title="Direct link to Run" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="Run" src="https://ts-factory.github.io/assets/images/split-1-a9cdd6bcf491da068cf5ea14606194aa.webp" width="3376" height="1122" class="img_yd8J"></p>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="history">History<a href="https://ts-factory.github.io/blog/release-v2.0.2#history" class="hash-link" aria-label="Direct link to History" title="Direct link to History" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="History" src="https://ts-factory.github.io/assets/images/split-2-0ade410477a9981b017f09b381a39501.webp" width="3376" height="2064" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="report">Report<a href="https://ts-factory.github.io/blog/release-v2.0.2#report" class="hash-link" aria-label="Direct link to Report" title="Direct link to Report" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="report-chart-toolbar">Report Chart Toolbar<a href="https://ts-factory.github.io/blog/release-v2.0.2#report-chart-toolbar" class="hash-link" aria-label="Direct link to Report Chart Toolbar" title="Direct link to Report Chart Toolbar" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="Toolbar" src="https://ts-factory.github.io/assets/images/report-1-0925b4db5b8af9a7bb471ee61897d034.webp" width="3376" height="2012" class="img_yd8J"></p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v2.0.2#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>Before starting the update, create a database backup to ensure data safety in case of any unexpected issues during the process.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v2.0.2#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>During the update, use <code>tmux</code> or <code>screen</code> to keep your session running in the background, ensuring it won’t be interrupted if the connection is lost.</p></div></div>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.0.2</code></li>
<li class=""><code>./scripts/deploy --steps migrate_db</code></li>
<li class="">Activate the virtual environment: <code>source .env/bin/activate</code></li>
<li class="">Migrate configuration tags to meta: <code>python manage.py migrate_tags_config_to_meta</code></li>
<li class="">Reformat configs: <code>python manage.py reformat_configs</code></li>
<li class="">Stop nginx to avoid potential disruptions or conflicts during the migration process: <code>sudo systemctl stop nginx</code></li>
<li class="">Assign the project based on the provided meta values (default <code>meta_name</code>: <code>PROJECT</code>) <code>python manage.py assign_project_by_meta -m &lt;meta_name&gt;</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>Since assigning projects by meta can take a long time, it is recommended to specify the desired meta in the initial command execution to avoid the need for re-running the process.</p></div></div>
<ol start="10">
<li class="">Start nginx again: <code>sudo systemctl start nginx</code></li>
<li class="">Create default configurations: <code>python manage.py initialize_configs</code></li>
<li class=""><code>./scripts/deploy --steps django_settings run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v2.0.2#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.0.2</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v2.0.2#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v2.0.2</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v2.0.2#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code> - to create a backup of the current database</li>
<li class=""><code>task pull</code> - to pull the latest images</li>
<li class=""><code>task up</code> - wait about 15 seconds for containers to start</li>
<li class=""><code>task shell</code> - to enter container</li>
<li class=""><code>python manage.py migrate_tags_config_to_meta</code></li>
<li class=""><code>python manage.py reformat_configs</code></li>
<li class=""><code>python manage.py assign_project_by_meta -m &lt;meta_name&gt;</code> (meta name to split runs into projects; default: <code>PROJECT</code>)</li>
<li class=""><code>python manage.py initialize_configs</code></li>
</ol>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>After the update, the default dashboard appearance may differ from what you are used to, due to differences between project-specific and default configurations.<br>
<!-- -->To restore the default dashboard to its previous look, go to the configuration manager and adjust the dashboard settings (<code>DASHBOARD_DATE</code>, <code>DASHBOARD_HEADER</code>, <code>DASHBOARD_PAYLOAD</code>, <code>DASHBOARD_RUNS_SORT</code>, <code>DASHBOARD_DEFAULT_MODE</code>) in the default configuration to match your project configuration.</p></div></div>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>For readability and to avoid duplication, you can remove attributes from project configurations if their values match those in the corresponding default configurations.</p></div></div>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v2.0.2#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v2.0.2#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.0.2#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>configs:</strong> add project creation button to config sidebar (<a href="https://github.com/ts-factory/bublik-ui/commit/c646f24a2cf69d566359939c9b9332e1d038de08" target="_blank" rel="noopener noreferrer" class="">c646f24</a>)</li>
<li class=""><strong>configs:</strong> add project deletion and update functionality (<a href="https://github.com/ts-factory/bublik-ui/commit/bb84489811b66368fe88c18eda8d02bf444ba3d4" target="_blank" rel="noopener noreferrer" class="">bb84489</a>)</li>
<li class=""><strong>log:</strong> add new type of log attachment for <code>.cap</code> and <code>.pcap</code> files (<a href="https://github.com/ts-factory/bublik-ui/commit/4bef0565f72a4b2e7e2ef685885300e252498797" target="_blank" rel="noopener noreferrer" class="">4bef056</a>)</li>
<li class=""><strong>net:</strong> add dissection tree component (<a href="https://github.com/ts-factory/bublik-ui/commit/50bacfe640ae52446daac320a1edda7e564ecac7" target="_blank" rel="noopener noreferrer" class="">50bacfe</a>)</li>
<li class=""><strong>net:</strong> add loading samples for testing (<a href="https://github.com/ts-factory/bublik-ui/commit/479b6d95a7ab0d861c491a1ffffb68eff03cc51a" target="_blank" rel="noopener noreferrer" class="">479b6d9</a>)</li>
<li class=""><strong>net:</strong> add packet capture analyze page (<a href="https://github.com/ts-factory/bublik-ui/commit/5452f0d3a017d8979366231550e1e9c1b71f2f3e" target="_blank" rel="noopener noreferrer" class="">5452f0d</a>)</li>
<li class=""><strong>net:</strong> add resizable panels for tree, dump and table (<a href="https://github.com/ts-factory/bublik-ui/commit/abd25ecc6fcd75b0969fb0d29139eedc74ecd2b9" target="_blank" rel="noopener noreferrer" class="">abd25ec</a>)</li>
<li class=""><strong>net:</strong> add trace flow component (<a href="https://github.com/ts-factory/bublik-ui/commit/4287321180b6cf7a43587fea340f986eb779c9df" target="_blank" rel="noopener noreferrer" class="">4287321</a>)</li>
<li class=""><strong>projects:</strong> [config] remove global config validation and improve empty state handling (<a href="https://github.com/ts-factory/bublik-ui/commit/369845abad489bb3120d93eba96b42dcec82ce24" target="_blank" rel="noopener noreferrer" class="">369845a</a>)</li>
<li class=""><strong>projects:</strong> add project creation functionality (<a href="https://github.com/ts-factory/bublik-ui/commit/961813446ffbf514bd11c80401ced5bea780fa91" target="_blank" rel="noopener noreferrer" class="">9618134</a>)</li>
<li class=""><strong>projects:</strong> add project dropdown component (<a href="https://github.com/ts-factory/bublik-ui/commit/78499f43b170ef56d1f95b16d0dd96d20905ad8b" target="_blank" rel="noopener noreferrer" class="">78499f4</a>)</li>
<li class=""><strong>projects:</strong> add project support and missing config creation (<a href="https://github.com/ts-factory/bublik-ui/commit/2cec4fa009dce785ffe933f69e8648df3864bd6b" target="_blank" rel="noopener noreferrer" class="">2cec4fa</a>)</li>
<li class=""><strong>projects:</strong> add projects feature library (<a href="https://github.com/ts-factory/bublik-ui/commit/e0603f7a9a5230c828700b0f3e23c2143e99f2fe" target="_blank" rel="noopener noreferrer" class="">e0603f7</a>)</li>
<li class=""><strong>projects:</strong> enhance project dropdown with sidebar toggle and project name display (<a href="https://github.com/ts-factory/bublik-ui/commit/c609cc2f48ea72a639d2be3396e71afac386b5d7" target="_blank" rel="noopener noreferrer" class="">c609cc2</a>)</li>
<li class=""><strong>projects:</strong> extend config schema with project field (<a href="https://github.com/ts-factory/bublik-ui/commit/a1dd545b9858fdb3ae4e3eab2ffd6dc58d829b4c" target="_blank" rel="noopener noreferrer" class="">a1dd545</a>)</li>
<li class=""><strong>projects:</strong> implement project creation modal and add project dropdown to sidebar (<a href="https://github.com/ts-factory/bublik-ui/commit/9255aeb6513274c580386c2c418fb1b61f202a70" target="_blank" rel="noopener noreferrer" class="">9255aeb</a>)</li>
<li class=""><strong>projects:</strong> implement project filtering across pages (<a href="https://github.com/ts-factory/bublik-ui/commit/f88a6018f911dbea35c29ebee758fa5f41b65ad5" target="_blank" rel="noopener noreferrer" class="">f88a601</a>)</li>
<li class=""><strong>projects:</strong> improve error handling for project creation and update forms (<a href="https://github.com/ts-factory/bublik-ui/commit/d1e366a1988706a39f06e6c99aaf75c1d0b59d2c" target="_blank" rel="noopener noreferrer" class="">d1e366a</a>)</li>
<li class=""><strong>projects:</strong> replace Link with `LinkWithProject`` across all components (<a href="https://github.com/ts-factory/bublik-ui/commit/72ffdeda47b552c3dfb12a6b27f2d53b27fdbf1f" target="_blank" rel="noopener noreferrer" class="">72ffded</a>)</li>
<li class=""><strong>report:</strong> [chart] add toolbar for report charts (<a href="https://github.com/ts-factory/bublik-ui/commit/ee231559b6464970c68bad61fc953734195f10b2" target="_blank" rel="noopener noreferrer" class="">ee23155</a>)</li>
<li class=""><strong>report:</strong> [TOC] remember open/close state in URL (<a href="https://github.com/ts-factory/bublik-ui/commit/1db6e9c4e2f160d46525951ca7ee7a042f87a550" target="_blank" rel="noopener noreferrer" class="">1db6e9c</a>)</li>
<li class=""><strong>run:</strong> improve error handling in compromise status feature (<a href="https://github.com/ts-factory/bublik-ui/commit/d3ea8fbce8734f54e1211b0d9a9ca027f9e3f607" target="_blank" rel="noopener noreferrer" class="">d3ea8fb</a>)</li>
<li class=""><strong>ui:</strong> [icons] add external-link icon (<a href="https://github.com/ts-factory/bublik-ui/commit/91ad7aabd903fe4352e79af036169a28a115867d" target="_blank" rel="noopener noreferrer" class="">91ad7aa</a>)</li>
<li class=""><strong>ui:</strong> [split-button] add new component for split-button (<a href="https://github.com/ts-factory/bublik-ui/commit/4cb17a0b9732154d7efddfca5e066e71e254f381" target="_blank" rel="noopener noreferrer" class="">4cb17a0</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v2.0.2#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>configs:</strong> add animation for project list accordion open/close states (<a href="https://github.com/ts-factory/bublik-ui/commit/8d708d1ee2c97814376bff04c03866f3fd61aeee" target="_blank" rel="noopener noreferrer" class="">8d708d1</a>)</li>
<li class=""><strong>net:</strong> [packet-table] add proper empty/loading states (<a href="https://github.com/ts-factory/bublik-ui/commit/66edb07fe35b490f58e51dfab1dff67f8f41e393" target="_blank" rel="noopener noreferrer" class="">66edb07</a>)</li>
<li class=""><strong>sidebar:</strong> fix sidebar button label alignment (<a href="https://github.com/ts-factory/bublik-ui/commit/7b52db1f3b5dabaef0917c51f8ce650ef2fb5831" target="_blank" rel="noopener noreferrer" class="">7b52db1</a>)</li>
<li class=""><strong>sidebar:</strong> refactor project dropdown and search hooks (<a href="https://github.com/ts-factory/bublik-ui/commit/824a493fe219ac5747f50bb601bdc3dab7b81c06" target="_blank" rel="noopener noreferrer" class="">824a493</a>)</li>
<li class=""><strong>ui:</strong> [dropdown-menu] remove unused left padding from dropdown menu items (<a href="https://github.com/ts-factory/bublik-ui/commit/ae460701522643e91221caa5fa4421a7d0c4d9cc" target="_blank" rel="noopener noreferrer" class="">ae46070</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.0.2#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>assets:</strong> ensure public directory exists for static assets (<a href="https://github.com/ts-factory/bublik-ui/commit/33dd537b32ba75f3e38e08d5658b247f7482643d" target="_blank" rel="noopener noreferrer" class="">33dd537</a>)</li>
<li class=""><strong>ci:</strong> increase node memory limit to prevent out-of-memory errors (<a href="https://github.com/ts-factory/bublik-ui/commit/4426e54016028caed13315c5464e47ff30ad6dab" target="_blank" rel="noopener noreferrer" class="">4426e54</a>)</li>
<li class=""><strong>configs:</strong> handle default project deletion and conditional rendering (<a href="https://github.com/ts-factory/bublik-ui/commit/bb1f043989d699c85fd60a84605ce02808cded40" target="_blank" rel="noopener noreferrer" class="">bb1f043</a>)</li>
<li class=""><strong>configs:</strong> handle null project IDs in config list and API schema (<a href="https://github.com/ts-factory/bublik-ui/commit/bbc51571149f2e6e5f2d81bfd5570e051cb4a991" target="_blank" rel="noopener noreferrer" class="">bbc5157</a>)</li>
<li class=""><strong>history:</strong> preserve project filter when resetting history filters (<a href="https://github.com/ts-factory/bublik-ui/commit/9aaa76f8bb7fff47f8cdeb1d44c6c4f0c99c6fec" target="_blank" rel="noopener noreferrer" class="">9aaa76f</a>)</li>
<li class=""><strong>import:</strong> improve import log error handling and display (<a href="https://github.com/ts-factory/bublik-ui/commit/b86936705d27f771f80f173294c93f33d8c322f2" target="_blank" rel="noopener noreferrer" class="">b869367</a>)</li>
<li class=""><strong>net:</strong> evenly space bottom panels for tree and data sources (<a href="https://github.com/ts-factory/bublik-ui/commit/ce42680b5ed3a5151ec92fa3c87991ffd2eb6016" target="_blank" rel="noopener noreferrer" class="">ce42680</a>)</li>
<li class=""><strong>net:</strong> loading <code>.cap</code> and <code>.pcap</code> files (<a href="https://github.com/ts-factory/bublik-ui/commit/ffaa94ed8b25fb73fe4c8cf93b28b64dd3591b86" target="_blank" rel="noopener noreferrer" class="">ffaa94e</a>)</li>
<li class=""><strong>projects:</strong> add truncate class to project dropdown text (<a href="https://github.com/ts-factory/bublik-ui/commit/2bd9f4dcc34794c76fc8f5db03c33ad0a8a351d2" target="_blank" rel="noopener noreferrer" class="">2bd9f4d</a>)</li>
<li class=""><strong>projects:</strong> handle <code>undefined</code> project field in config endpoint (<a href="https://github.com/ts-factory/bublik-ui/commit/625d0d417a23c7463bd1fa922a2f3af6d17b43ab" target="_blank" rel="noopener noreferrer" class="">625d0d4</a>)</li>
<li class=""><strong>projects:</strong> refine config endpoint error handling and project field (<a href="https://github.com/ts-factory/bublik-ui/commit/66c7af55d9f673beb2720989283e11b1f8c86fa1" target="_blank" rel="noopener noreferrer" class="">66c7af5</a>)</li>
<li class=""><strong>projects:</strong> rename <code>project_name</code> field to<code>name</code> in API endpoints (<a href="https://github.com/ts-factory/bublik-ui/commit/c71b31e712e06c7c2282b56cfe0911443cc986b9" target="_blank" rel="noopener noreferrer" class="">c71b31e</a>)</li>
<li class=""><strong>report:</strong> [table] fix react duplicate key error (<a href="https://github.com/ts-factory/bublik-ui/commit/b9a8971dbcc7114209f4ba1ecd9ab0d96c7f7119" target="_blank" rel="noopener noreferrer" class="">b9a8971</a>)</li>
<li class=""><strong>run:</strong> [comments] add project ID to test comment functionality (<a href="https://github.com/ts-factory/bublik-ui/commit/80620d49318bc7ef046a276de4a922291094897b" target="_blank" rel="noopener noreferrer" class="">80620d4</a>)</li>
<li class=""><strong>run:</strong> add no-cache to outside domains issues endpoint (<a href="https://github.com/ts-factory/bublik-ui/commit/fa488d25f0a7b89bdfb1b3d7aef946c58a014d11" target="_blank" rel="noopener noreferrer" class="">fa488d2</a>)</li>
<li class=""><strong>run:</strong> fix split button popover being overlayed by run row (<a href="https://github.com/ts-factory/bublik-ui/commit/7584646f0f15f4afbbc9c2e35898c453ce4fdcd8" target="_blank" rel="noopener noreferrer" class="">7584646</a>)</li>
<li class=""><strong>run:</strong> update API endpoints and remove unused prefetch (<a href="https://github.com/ts-factory/bublik-ui/commit/19f65e1f2f6a186c92d22f53cc6d44ce2732f8a2" target="_blank" rel="noopener noreferrer" class="">19f65e1</a>)</li>
<li class=""><strong>types:</strong> replace most of <code>any</code> types with concrete ones (<a href="https://github.com/ts-factory/bublik-ui/commit/b3edcba4aa2aee2b8a6280fdb05535f6ee2718b0" target="_blank" rel="noopener noreferrer" class="">b3edcba</a>)</li>
<li class=""><strong>ui:</strong> [link] update link component ref type and pass ref to Link (<a href="https://github.com/ts-factory/bublik-ui/commit/3f318a05df4a1c23741ae1804d4c64b73020c06c" target="_blank" rel="noopener noreferrer" class="">3f318a0</a>)</li>
<li class=""><strong>ui:</strong> fix circural deps issue with context-links component (<a href="https://github.com/ts-factory/bublik-ui/commit/12775d0b6027daf152bafba923b8010597cedaa5" target="_blank" rel="noopener noreferrer" class="">12775d0</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.0.2#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> [linear] use split button to display shortcuts (<a href="https://github.com/ts-factory/bublik-ui/commit/431ac51fb21003ff33d9c90c794d39d5b808a681" target="_blank" rel="noopener noreferrer" class="">431ac51</a>)</li>
<li class=""><strong>projects:</strong> add project support to config creation and sidebar (<a href="https://github.com/ts-factory/bublik-ui/commit/bd9fb662d14349c0ce40b4d33f393e8fb612eb19" target="_blank" rel="noopener noreferrer" class="">bd9fb66</a>)</li>
<li class=""><strong>projects:</strong> refactor project dropdown to use radio buttons instead of checkboxes (<a href="https://github.com/ts-factory/bublik-ui/commit/1d3152f8182e838f9473fc594287c7a7be0aec31" target="_blank" rel="noopener noreferrer" class="">1d3152f</a>)</li>
<li class=""><strong>report:</strong> [chart] extract logic for chart options (<a href="https://github.com/ts-factory/bublik-ui/commit/e832af050c9eca2497ba431227b3342837544197" target="_blank" rel="noopener noreferrer" class="">e832af0</a>)</li>
<li class=""><strong>run:</strong> [result-table] change history link labels and add new shortcuts (<a href="https://github.com/ts-factory/bublik-ui/commit/484c4d55d955a953b8c45f13d5aeb53be8c718d3" target="_blank" rel="noopener noreferrer" class="">484c4d5</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/358" target="_blank" rel="noopener noreferrer" class="">#358</a></li>
<li class=""><strong>run:</strong> [results] use split button to display links to history (<a href="https://github.com/ts-factory/bublik-ui/commit/3ff9b3c192acdfbfc18981e0cc17c4cb0fe9cc97" target="_blank" rel="noopener noreferrer" class="">3ff9b3c</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.0.2#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>charts:</strong> delete outdated toolbar component (<a href="https://github.com/ts-factory/bublik-ui/commit/d47507dffd44c80ce44e47b3e70153455b5a8cd6" target="_blank" rel="noopener noreferrer" class="">d47507d</a>)</li>
<li class=""><strong>faq:</strong> remove outdated storybook story (<a href="https://github.com/ts-factory/bublik-ui/commit/526f99b8074d141cbc7161620d29d4b1f2a4886f" target="_blank" rel="noopener noreferrer" class="">526f99b</a>)</li>
<li class=""><strong>measurements:</strong> remove unused chart imports from plot list component (<a href="https://github.com/ts-factory/bublik-ui/commit/6469f188050c23db6532814030ae59c0dd5a174b" target="_blank" rel="noopener noreferrer" class="">6469f18</a>)</li>
<li class=""><strong>measurements:</strong> update export utility import path (<a href="https://github.com/ts-factory/bublik-ui/commit/8d2b23a1a8ab3083bba4c99b3addd76a5e2dc155" target="_blank" rel="noopener noreferrer" class="">8d2b23a</a>)</li>
<li class=""><strong>net:</strong> generate library for network analysis (<a href="https://github.com/ts-factory/bublik-ui/commit/6f5f43ae12e13e5291fb7a4f640ac45b48a0a29e" target="_blank" rel="noopener noreferrer" class="">6f5f43a</a>)</li>
<li class=""><strong>net:</strong> move packet analysis component to generated library (<a href="https://github.com/ts-factory/bublik-ui/commit/303ae2e3c7f9f1b7e91488d30dbd6bd8099b0d31" target="_blank" rel="noopener noreferrer" class="">303ae2e</a>)</li>
<li class=""><strong>projects:</strong> update redux toolkit query import path (<a href="https://github.com/ts-factory/bublik-ui/commit/f8a877e7d52ee2cb186f82632f59e5682bcd9c4f" target="_blank" rel="noopener noreferrer" class="">f8a877e</a>)</li>
<li class=""><strong>run:</strong> remove debug console log from compromise form (<a href="https://github.com/ts-factory/bublik-ui/commit/eade7dbcde1e75ef062a9accca44385e56057244" target="_blank" rel="noopener noreferrer" class="">eade7db</a>)</li>
<li class=""><strong>sidebar:</strong> update project dropdown and sidebar link behavior (<a href="https://github.com/ts-factory/bublik-ui/commit/ca939ae83831a8f23588b8de0ff409a86d71653e" target="_blank" rel="noopener noreferrer" class="">ca939ae</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-performance-improvements">⚡ Performance Improvements<a href="https://ts-factory.github.io/blog/release-v2.0.2#-performance-improvements" class="hash-link" aria-label="Direct link to ⚡ Performance Improvements" title="Direct link to ⚡ Performance Improvements" translate="no">​</a></h4>
<ul>
<li class=""><strong>images:</strong> convert PNG images to WebP for improved performance and loading speed (<a href="https://github.com/ts-factory/bublik-ui/commit/844bb16f6d6f52f0ddbc7edd508cd325dc439d5d" target="_blank" rel="noopener noreferrer" class="">844bb16</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v2.0.2#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v2.0.2#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>apps:</strong> register signal handlers on app startup (<a href="https://github.com/ts-factory/bublik/commit/f88de75159559b6ab96b74a7f25358029d631086" target="_blank" rel="noopener noreferrer" class="">f88de75</a>)</li>
<li class=""><strong>config:</strong> avoid meta config format mismatch errors (<a href="https://github.com/ts-factory/bublik/commit/2cbea3e2b9b907566da31e1850d85a9503392cf8" target="_blank" rel="noopener noreferrer" class="">2cbea3e</a>)</li>
<li class=""><strong>config:</strong> fix meta config schema (<a href="https://github.com/ts-factory/bublik/commit/e6e557a1d6c9e58e9b6f0e5fef37f6c5def635da" target="_blank" rel="noopener noreferrer" class="">e6e557a</a>)</li>
<li class=""><strong>importruns:</strong> fix metadata error msg (<a href="https://github.com/ts-factory/bublik/commit/b37cfcc004d9397db83ca48fa3a646e3306006c4" target="_blank" rel="noopener noreferrer" class="">b37cfcc</a>)</li>
<li class=""><strong>management:</strong> fix config validation after reformatting (<a href="https://github.com/ts-factory/bublik/commit/3f13f3d7c787121234e8456af40ea95ff3a6224f" target="_blank" rel="noopener noreferrer" class="">3f13f3d</a>)</li>
<li class=""><strong>urls:</strong> fix run source URL construction (<a href="https://github.com/ts-factory/bublik/commit/46bd745f91d26d0ce4337e9a8a9886192429f833" target="_blank" rel="noopener noreferrer" class="">46bd745</a>)</li>
<li class=""><strong>importruns:</strong> fix missing project link on reimport (<a href="https://github.com/ts-factory/bublik/commit/95a8bf714a6131fcfeb8b75a8b60b3e9209bf816" target="_blank" rel="noopener noreferrer" class="">95a8bf7</a>)</li>
<li class=""><strong>management:</strong> fix meta validation on project assignment (<a href="https://github.com/ts-factory/bublik/commit/f3c1325520430e4207c4df48d666235a981d0c02" target="_blank" rel="noopener noreferrer" class="">f3c1325</a>)</li>
<li class=""><strong>management:</strong> fix initial run detection for project assignment (<a href="https://github.com/ts-factory/bublik/commit/91bb1530f35dc680b9403b0495e3fd1e33ef0728" target="_blank" rel="noopener noreferrer" class="">91bb153</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v2.0.2#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>metatest:</strong> enforce per-test comment uniqueness at the model level (<a href="https://github.com/ts-factory/bublik/commit/fa5b0e6a1f5f8af1dcc0041bf77609b05eed3617" target="_blank" rel="noopener noreferrer" class="">fa5b0e6</a>)</li>
<li class=""><strong>management:</strong> enable merging of meta and tags configs to reduce complexity (<a href="https://github.com/ts-factory/bublik/commit/8ec0ea9d6c1bcc0dcd370636a17b17edfedc540e" target="_blank" rel="noopener noreferrer" class="">8ec0ea9</a>)</li>
<li class=""><strong>management:</strong> simplify configs by merging tags into meta during their migration (<a href="https://github.com/ts-factory/bublik/commit/f44d3bec40cfcae03ba8d86f457805ebf7f2fdc7" target="_blank" rel="noopener noreferrer" class="">f44d3be</a>)</li>
<li class=""><strong>config:</strong> drop tags config to simplify and unify config management (<a href="https://github.com/ts-factory/bublik/commit/de16e408bf1acafd2928951f35da3a46a5c5644f" target="_blank" rel="noopener noreferrer" class="">de16e4</a>)</li>
<li class=""><strong>config:</strong> add meta config content validation (<a href="https://github.com/ts-factory/bublik/commit/d2dfc238c821b96dc2bd3acce1340fcaf21b7d7a" target="_blank" rel="noopener noreferrer" class="">d2dfc23</a>)</li>
<li class=""><strong>project:</strong> add project model and its relations (<a href="https://github.com/ts-factory/bublik/commit/925fafaf6df43d99c15b5a22c904a1843e23f25a" target="_blank" rel="noopener noreferrer" class="">925fafa</a>)</li>
<li class=""><strong>project:</strong> add basic serializer (<a href="https://github.com/ts-factory/bublik/commit/20f8ae514fc334014abcee55fed79ac7c74df68b" target="_blank" rel="noopener noreferrer" class="">20f8ae5</a>)</li>
<li class=""><strong>project:</strong> add API for management (<a href="https://github.com/ts-factory/bublik/commit/2c662d775622be6f305c58bab506b29f866e6a63" target="_blank" rel="noopener noreferrer" class="">2c662d7</a>)</li>
<li class=""><strong>api:</strong> implement and apply project-based filtering (<a href="https://github.com/ts-factory/bublik/commit/985b287409f024a70d00102bf04320174ea4b1b3" target="_blank" rel="noopener noreferrer" class="">985b287</a>)</li>
<li class=""><strong>config:</strong> make config methods project-aware (<a href="https://github.com/ts-factory/bublik/commit/e5f54477158d09c13e681ab07f1a034a03d2d10c" target="_blank" rel="noopener noreferrer" class="">e5f5447</a>)</li>
<li class=""><strong>config:</strong> make serializer methods project-aware (<a href="https://github.com/ts-factory/bublik/commit/d560e430309fb3eecf4323f7a71b0c6614eb99a3" target="_blank" rel="noopener noreferrer" class="">d560e43</a>)</li>
<li class=""><strong>config:</strong> update API to support project association (<a href="https://github.com/ts-factory/bublik/commit/7d8027775dbeb349f693f055629458a8f3a98082" target="_blank" rel="noopener noreferrer" class="">7d80277</a>)</li>
<li class=""><strong>test comments:</strong> make test comments management project-aware (<a href="https://github.com/ts-factory/bublik/commit/16ecd0c77b94ad156b3368450eb7503c74bc633d" target="_blank" rel="noopener noreferrer" class="">16ecd0c</a>)</li>
<li class=""><strong>middleware:</strong> consider project in dynamic settings retrieval (<a href="https://github.com/ts-factory/bublik/commit/4530b801154d41e43292d9a0ec59ef071c65195b" target="_blank" rel="noopener noreferrer" class="">4530b80</a>)</li>
<li class=""><strong>services:</strong> make global config attrs retrieval project-aware (<a href="https://github.com/ts-factory/bublik/commit/1f4bb06bc3d7f05cc6c4c5f23a81d776e3fc4d42" target="_blank" rel="noopener noreferrer" class="">1f4bb06</a>)</li>
<li class=""><strong>importruns:</strong> make the import process project-aware (<a href="https://github.com/ts-factory/bublik/commit/6b34ee484ce034233d8369fb6f13fbf3ab7e776b" target="_blank" rel="noopener noreferrer" class="">6b34ee4</a>)</li>
<li class=""><strong>importruns:</strong> fix meta data generation (<a href="https://github.com/ts-factory/bublik/commit/d2b3d65e70654888295150f9762db3ea80767d46" target="_blank" rel="noopener noreferrer" class="">d2b3d65</a>)</li>
<li class=""><strong>importruns:</strong> filter import failure recipients by project (<a href="https://github.com/ts-factory/bublik/commit/7716878547a010cbc112a729ca7952fd0bf9a98e" target="_blank" rel="noopener noreferrer" class="">7716878</a>)</li>
<li class=""><strong>management:</strong> make meta categorization project-aware (<a href="https://github.com/ts-factory/bublik/commit/7a0390491c4d7164784ab1b9d87f1f889282d57f" target="_blank" rel="noopener noreferrer" class="">7a03904</a>)</li>
<li class=""><strong>auth:</strong> make permissions check project-aware (<a href="https://github.com/ts-factory/bublik/commit/21fc4e7bc91103665f79ad9af90ec38155424105" target="_blank" rel="noopener noreferrer" class="">21fc4e7</a>)</li>
<li class=""><strong>performance:</strong> update data retrieval with project filtering (<a href="https://github.com/ts-factory/bublik/commit/c74048e32c6a1682fd95fc32e6b7a88f72beebd3" target="_blank" rel="noopener noreferrer" class="">c74048e</a>)</li>
<li class=""><strong>outside domains:</strong> update data retrieval with project filtering (<a href="https://github.com/ts-factory/bublik/commit/7ad218c2c85d05c8acb84c3193d5272e46f03d15" target="_blank" rel="noopener noreferrer" class="">7ad218c</a>)</li>
<li class=""><strong>api:</strong> update runs data retrieval with project filtering (<a href="https://github.com/ts-factory/bublik/commit/376180dae74f6bf87ced000aac2e7f6632dfa5b5" target="_blank" rel="noopener noreferrer" class="">376180d</a>)</li>
<li class=""><strong>api:</strong> add project info to API output (<a href="https://github.com/ts-factory/bublik/commit/d320bae0f958932e10ca4fbd78fa7860dc2ccc53" target="_blank" rel="noopener noreferrer" class="">d320bae</a>)</li>
<li class=""><strong>report:</strong> update available config list filtering with project (<a href="https://github.com/ts-factory/bublik/commit/f7a19e5686860522386c1a50898f66abc21297c7" target="_blank" rel="noopener noreferrer" class="">f7a19e5</a>)</li>
<li class=""><strong>management:</strong> associate migrated configs with the corresponding project (<a href="https://github.com/ts-factory/bublik/commit/473029c6f063b0e8d6a85dad5e577f8aa2d48e41" target="_blank" rel="noopener noreferrer" class="">473029c</a>)</li>
<li class=""><strong>management:</strong> add project info to config initialization (<a href="https://github.com/ts-factory/bublik/commit/7f125657e0eb64ceff3fc0f4b8693aeb221c9a14" target="_blank" rel="noopener noreferrer" class="">7f12565</a>)</li>
<li class=""><strong>management:</strong> update config reformatting labels with project (<a href="https://github.com/ts-factory/bublik/commit/b54b56a70fe330a2c3f2cf5febc5bb8854f1cc3b" target="_blank" rel="noopener noreferrer" class="">b54b56a</a>)</li>
<li class=""><strong>urls:</strong> update short URLs with project (<a href="https://github.com/ts-factory/bublik/commit/ec076d779c48ad6f3303ed3d48a4de408e3a1c9b" target="_blank" rel="noopener noreferrer" class="">ec076d7</a>)</li>
<li class=""><strong>management:</strong> enable run reassignment based on meta values (<a href="https://github.com/ts-factory/bublik/commit/1da54856be6fb977d84299fc8b41830e54c923a1" target="_blank" rel="noopener noreferrer" class="">1da5485</a>)</li>
<li class=""><strong>deploy:</strong> add stop option for side services management (<a href="https://github.com/ts-factory/bublik/commit/918cb043ecdd0fb58bfde06c253972343f9c8018" target="_blank" rel="noopener noreferrer" class="">918cb04</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v2.0.2#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>cache:</strong> simplify tag category cache setup using base tag queryset (<a href="https://github.com/ts-factory/bublik/commit/33877899f7a30b2dd311c01703936af86bdfdb19" target="_blank" rel="noopener noreferrer" class="">3387789</a>)</li>
<li class=""><strong>signals:</strong> centralize signals (<a href="https://github.com/ts-factory/bublik/commit/4d76d81a702f80bbe56576819c1cf55c97b27e2d" target="_blank" rel="noopener noreferrer" class="">4d76d81</a>)</li>
<li class=""><strong>metatest:</strong> ensure consistent orphan meta cleanup (<a href="https://github.com/ts-factory/bublik/commit/e88e863b1fffb16dec8ca449fd15224bb6c6c8be" target="_blank" rel="noopener noreferrer" class="">e88e863</a>)</li>
<li class=""><strong>metatest:</strong> ensure valid updated value (<a href="https://github.com/ts-factory/bublik/commit/26ee21a15ee169e0b2b85f6b5c39aa7f73c77e72" target="_blank" rel="noopener noreferrer" class="">26ee21a</a>)</li>
<li class=""><strong>metatest:</strong> ensure clean and reliable serial assignment (<a href="https://github.com/ts-factory/bublik/commit/c1f3dea15d5efea3133e25b6b9c3d1559ce0c149" target="_blank" rel="noopener noreferrer" class="">c1f3dea</a>)</li>
<li class=""><strong>test comments:</strong> ensure clean serialization and API (<a href="https://github.com/ts-factory/bublik/commit/618c360e64eff0e13ba4ca2224694a6515d27570" target="_blank" rel="noopener noreferrer" class="">618c360</a>)</li>
<li class=""><strong>test comments:</strong> ensure data integrity when updating (<a href="https://github.com/ts-factory/bublik/commit/70db86def2d857aac4bd190bbf221cfb9d196b83" target="_blank" rel="noopener noreferrer" class="">70db86d</a>)</li>
<li class=""><strong>auth:</strong> unify access to permission-exempt actions (<a href="https://github.com/ts-factory/bublik/commit/cda016311d669dfb2f80a85d293f29346d950892" target="_blank" rel="noopener noreferrer" class="">cda0163</a>)</li>
<li class=""><strong>management:</strong> optimize config type-name mapping (<a href="https://github.com/ts-factory/bublik/commit/069381bc21705f5133a0f87674154e5c8b65d504" target="_blank" rel="noopener noreferrer" class="">069381b</a>)</li>
<li class=""><strong>management:</strong> make configuration reformatting more flexible (<a href="https://github.com/ts-factory/bublik/commit/b738112118bd8d895b5993ead9c73714922d5687" target="_blank" rel="noopener noreferrer" class="">b738112</a>)</li>
<li class=""><strong>config:</strong> refactor active configuration retrieval (<a href="https://github.com/ts-factory/bublik/commit/01c1d3a584f7fa149a7fcd8cf3ecf8989a9ebdc3" target="_blank" rel="noopener noreferrer" class="">01c1d3a</a>)</li>
<li class=""><strong>config:</strong> improve meta config structure (<a href="https://github.com/ts-factory/bublik/commit/a275280972141fdf08755c66b00012ba29051179" target="_blank" rel="noopener noreferrer" class="">a275280</a>)</li>
<li class=""><strong>management:</strong> update meta categorization command for new config structure (<a href="https://github.com/ts-factory/bublik/commit/1928fe8ef20053f0671356dd88686781f5b4835b" target="_blank" rel="noopener noreferrer" class="">1928fe8</a>)</li>
<li class=""><strong>management:</strong> sort configs before reformatting (<a href="https://github.com/ts-factory/bublik/commit/74b4776d66fd0980d4c35f42b3e2840e5eb7ac1a" target="_blank" rel="noopener noreferrer" class="">74b4776</a>)</li>
<li class=""><strong>management:</strong> fix config reformatting order during migration (<a href="https://github.com/ts-factory/bublik/commit/c2530e4d4d9ccd879df3ec87d05bcaf66d9f65e2" target="_blank" rel="noopener noreferrer" class="">c2530e4</a>)</li>
<li class=""><strong>management:</strong> add reformatting for meta config schema update (<a href="https://github.com/ts-factory/bublik/commit/846bfb2e21e07b21d9edfdbc463199324c85be37" target="_blank" rel="noopener noreferrer" class="">846bfb2</a>)</li>
<li class=""><strong>config:</strong> update the main project config schema (<a href="https://github.com/ts-factory/bublik/commit/cc3e6d56a24b33556b22be619ce7229d829b4283" target="_blank" rel="noopener noreferrer" class="">cc3e6d5</a>)</li>
<li class=""><strong>run:</strong> prevent redundant DB hits (<a href="https://github.com/ts-factory/bublik/commit/86e135f913ef0e6749f9262253c7f98a5e5d28f9" target="_blank" rel="noopener noreferrer" class="">86e135f</a>)</li>
<li class=""><strong>services:</strong> require project ID for global config retrieval (<a href="https://github.com/ts-factory/bublik/commit/6a34d2da8f03a3cfe1c458e4d7d66d62a3eeb047" target="_blank" rel="noopener noreferrer" class="">6a34d2d</a>)</li>
<li class=""><strong>management:</strong> make config management commands atomic (<a href="https://github.com/ts-factory/bublik/commit/0eef5198267e7e8a6a537dcd96d16ed18a3f973d" target="_blank" rel="noopener noreferrer" class="">0eef519</a>)</li>
<li class=""><strong>management:</strong> unify config management commands output (<a href="https://github.com/ts-factory/bublik/commit/9a327d3ef41fa4bd3efe4c849e6cf68b22b74c9b" target="_blank" rel="noopener noreferrer" class="">9a327d3</a>)</li>
<li class=""><strong>management:</strong> make config migration command more readable (<a href="https://github.com/ts-factory/bublik/commit/4e495fa028c6a75cabdc30efcd582c958e1328e8" target="_blank" rel="noopener noreferrer" class="">4e495fa</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v2.0.2#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>cleanup:</strong> format import blocks (<a href="https://github.com/ts-factory/bublik/commit/de7c9851f962421d7e087af17cc40cb4715f15a6" target="_blank" rel="noopener noreferrer" class="">de7c985</a>)</li>
<li class=""><strong>serializers:</strong> organize export order for better clarity (<a href="https://github.com/ts-factory/bublik/commit/b0e06c2df1025c12fb63e93b7d5fadb48cb7e79a" target="_blank" rel="noopener noreferrer" class="">b0e06c2</a>)</li>
<li class=""><strong>serializers:</strong> make meta test serializer public (<a href="https://github.com/ts-factory/bublik/commit/ceeeb295a0fddf0b2a98f20d9c8c977408c40af4" target="_blank" rel="noopener noreferrer" class="">ceeeb29</a>)</li>
<li class=""><strong>test comments:</strong> simplify docstrings (<a href="https://github.com/ts-factory/bublik/commit/dba67dc0d9d569987640eb2a9103d00a03e1b59f" target="_blank" rel="noopener noreferrer" class="">dba67dc</a>)</li>
<li class=""><strong>management:</strong> update meta categorization docstring (<a href="https://github.com/ts-factory/bublik/commit/e7da9f2056214edb906936e1b6aab0c42cb14dab" target="_blank" rel="noopener noreferrer" class="">e7da9f2</a>)</li>
<li class=""><strong>management:</strong> clarify all metas categorized (<a href="https://github.com/ts-factory/bublik/commit/ddd8dc061fc0cee64cc1d372db8d5d14032874f2" target="_blank" rel="noopener noreferrer" class="">ddd8dc0</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores-1">📦 Chores<a href="https://ts-factory.github.io/blog/release-v2.0.2#-chores-1" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>ci:</strong> exclude migrations from code quality checks (<a href="https://github.com/ts-factory/bublik/commit/573a794495f23b4a26b57576b5b23faa334ab0bc" target="_blank" rel="noopener noreferrer" class="">573a794</a>)</li>
<li class=""><strong>server:</strong> delete the deprecated project retrieval endpoint (<a href="https://github.com/ts-factory/bublik/commit/0a6f6e23d8ff15974b98a5c16e5cff72f782917e" target="_blank" rel="noopener noreferrer" class="">0a6f6e2</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v1.10.1]]></title>
        <id>https://ts-factory.github.io/blog/release-v1.10.1</id>
        <link href="https://ts-factory.github.io/blog/release-v1.10.1"/>
        <updated>2025-07-07T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this release, we've introduced a new "Series Charts" mode in the history section, enhanced the UI on the import events page, added support for multiple expected results, and included a new button to limit Y-axis values to their minimum and maximum range.]]></summary>
        <content type="html"><![CDATA[<p>In this release, we've introduced a new "Series Charts" mode in the history section, enhanced the UI on the import events page, added support for multiple expected results, and included a new button to limit Y-axis values to their minimum and maximum range.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v1.10.1#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="history-series-charts-mode">History Series Charts Mode<a href="https://ts-factory.github.io/blog/release-v1.10.1#history-series-charts-mode" class="hash-link" aria-label="Direct link to History Series Charts Mode" title="Direct link to History Series Charts Mode" translate="no">​</a></h3>
<p>The new mode lets you view serial measurements for all iterations matching your search query.
You can select charts and switch to stacked mode to display them on the same axises for easier comparison.</p>
<p><img decoding="async" loading="lazy" alt="Series Charts" src="https://ts-factory.github.io/assets/images/series-charts-7be01f0a660e7a6ae1ee4c522c3ed6af.webp" width="3376" height="2074" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="improved-import">Improved Import<a href="https://ts-factory.github.io/blog/release-v1.10.1#improved-import" class="hash-link" aria-label="Direct link to Improved Import" title="Direct link to Improved Import" translate="no">​</a></h3>
<p>Added "RECIEVED" and "STARTED" import event types support</p>
<p><img decoding="async" loading="lazy" alt="Import" src="https://ts-factory.github.io/assets/images/import-9666ea664cfe91a441868b8b4bd7f173.webp" width="5118" height="2178" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="multiple-expected">Multiple Expected<a href="https://ts-factory.github.io/blog/release-v1.10.1#multiple-expected" class="hash-link" aria-label="Direct link to Multiple Expected" title="Direct link to Multiple Expected" translate="no">​</a></h3>
<p>Added support for multiple expected results</p>
<p><img decoding="async" loading="lazy" alt="Multiple Expected" src="https://ts-factory.github.io/assets/images/results-b9ef92f8b6d5ca3abd0a2d38bf69b33a.webp" width="3376" height="2030" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="limit-axis-y-values">Limit axis y values<a href="https://ts-factory.github.io/blog/release-v1.10.1#limit-axis-y-values" class="hash-link" aria-label="Direct link to Limit axis y values" title="Direct link to Limit axis y values" translate="no">​</a></h3>
<p>Added toggle button to limit axis y values for charts</p>
<p><img decoding="async" loading="lazy" alt="Limit axis y values" src="https://ts-factory.github.io/assets/images/limit-715b93c605ac79650a1fd3bc17c59419.webp" width="3376" height="2074" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v1.10.1#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<p>Bublik can now import logs from <em>bublik.json</em> generated by TE.</p>
<div class="theme-admonition theme-admonition-warning admonition__kCM alert alert--warning"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</div><div class="admonitionContent_ZufO"><p>This version is compatible with TE versions 1.45 and 1.47, but <strong>incompatible with version 1.46</strong></p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v1.10.1#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.10.1</code></li>
<li class=""><code>./scripts/deploy --steps run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v1.10.1#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.10.1</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v1.10.1#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.10.1</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-updatee">Docker Instance Updatee<a href="https://ts-factory.github.io/blog/release-v1.10.1#docker-instance-updatee" class="hash-link" aria-label="Direct link to Docker Instance Updatee" title="Direct link to Docker Instance Updatee" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v1.10.1#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v1.10.1#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.10.1#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> [charts] add new mode for measurements by result (<a href="https://github.com/ts-factory/bublik-ui/commit/d17f7d572957d0e9eae6a8dac7f21780e873f714" target="_blank" rel="noopener noreferrer" class="">d17f7d5</a>)</li>
<li class=""><strong>history:</strong> [charts] add new section with measurement series chart data (<a href="https://github.com/ts-factory/bublik-ui/commit/07a027cf9e06109498e2b59d7ae07adf18ffbdc7" target="_blank" rel="noopener noreferrer" class="">07a027c</a>)</li>
<li class=""><strong>history:</strong> [charts] add selected group in search params for persistence (<a href="https://github.com/ts-factory/bublik-ui/commit/b2e6b6d8f828d9744c1a0cfbd8566a269a76a756" target="_blank" rel="noopener noreferrer" class="">b2e6b6d</a>)</li>
<li class=""><strong>history:</strong> add help for "Series Charts" history mode (<a href="https://github.com/ts-factory/bublik-ui/commit/ee98b3aec3aa59cb7686702489aa8ec2e61aff81" target="_blank" rel="noopener noreferrer" class="">ee98b3a</a>)</li>
<li class=""><strong>history:</strong> adjust history measurements API for new response type (<a href="https://github.com/ts-factory/bublik-ui/commit/031b2e1e04ede39ee4570f563b276699face081e" target="_blank" rel="noopener noreferrer" class="">031b2e1</a>)</li>
<li class=""><strong>import:</strong> handle <code>RECEIVED</code> and <code>STARTED</code> statuses (<a href="https://github.com/ts-factory/bublik-ui/commit/1a82e3cdc4549f070dfe886fe49ab2f3e36309da" target="_blank" rel="noopener noreferrer" class="">1a82e3c</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/347" target="_blank" rel="noopener noreferrer" class="">#347</a></li>
<li class=""><strong>report,measurements:</strong> add toggle to limit min/max values for plot (<a href="https://github.com/ts-factory/bublik-ui/commit/c0e2cc659915dfd0ec83b876a54adcc138d3887f" target="_blank" rel="noopener noreferrer" class="">c0e2cc6</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/350" target="_blank" rel="noopener noreferrer" class="">#350</a></li>
<li class=""><strong>report:</strong> allow empty <code>series</code> and <code>series_labels</code> (<a href="https://github.com/ts-factory/bublik-ui/commit/0efffbf61a25b651a0e9cb76e308ed566e997ba4" target="_blank" rel="noopener noreferrer" class="">0efffbf</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/349" target="_blank" rel="noopener noreferrer" class="">#349</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.10.1#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> [series] show only results which have measurements (<a href="https://github.com/ts-factory/bublik-ui/commit/1698f254dd90149eaba045eebb34c80ebb1e30cd" target="_blank" rel="noopener noreferrer" class="">1698f25</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v1.10.1#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>history,run:</strong> [results] allow multiple <code>expected_results</code> (<a href="https://github.com/ts-factory/bublik-ui/commit/6cc385c2597062cd37065d2bc73db26f8a4652c3" target="_blank" rel="noopener noreferrer" class="">6cc385c</a>)</li>
<li class=""><strong>measurements:</strong> allow empty values and add <code>start</code> for result info block (<a href="https://github.com/ts-factory/bublik-ui/commit/8da566db73629fc95d02d3598ab7ff43518e4b94" target="_blank" rel="noopener noreferrer" class="">8da566d</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v1.10.1#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>history,measurements:</strong> cleanup (<a href="https://github.com/ts-factory/bublik-ui/commit/02af5dacf898ada8ea3037a9a25ade035d57421a" target="_blank" rel="noopener noreferrer" class="">02af5da</a>)</li>
<li class=""><strong>report:</strong> add missing parameter to dependency effect array (<a href="https://github.com/ts-factory/bublik-ui/commit/c2c2cf66c0d6fd7871ec341ee365ee9e5311f785" target="_blank" rel="noopener noreferrer" class="">c2c2cf6</a>)</li>
<li class=""><strong>report:</strong> remove deprecated <code>nonscrict</code> call (<a href="https://github.com/ts-factory/bublik-ui/commit/5de3b95cd944f3e2aa6d7efa372f1f12b29ee98f" target="_blank" rel="noopener noreferrer" class="">5de3b95</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v1.10.1#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.10.1#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> fix task parameter validation logic (<a href="https://github.com/ts-factory/bublik/commit/59c06cb6ee9656438bf7dc1320935d69bd83b3b9" target="_blank" rel="noopener noreferrer" class="">59c06cb</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.10.1#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>middleware:</strong> auto-categorize metas on config update (<a href="https://github.com/ts-factory/bublik/commit/772a45b180e7028602c3a1a0dcea3a08322fcb25" target="_blank" rel="noopener noreferrer" class="">772a45b</a>)</li>
<li class=""><strong>event:</strong> update import events list with recieved and started events (<a href="https://github.com/ts-factory/bublik/commit/5eedec9c5069800bee18efb63f2c818aba29120c" target="_blank" rel="noopener noreferrer" class="">5eedec9</a>), closes <a href="https://github.com/ts-factory/bublik/issues/130" target="_blank" rel="noopener noreferrer" class="">#130</a>, <a href="https://github.com/ts-factory/bublik/issues/131" target="_blank" rel="noopener noreferrer" class="">#131</a></li>
<li class=""><strong>report:</strong> improve visualization of single-series data (<a href="https://github.com/ts-factory/bublik/commit/50dc80752052044b13614d27e60cfb43420bdbd2" target="_blank" rel="noopener noreferrer" class="">50dc807</a>), closes <a href="https://github.com/ts-factory/bublik/issues/111" target="_blank" rel="noopener noreferrer" class="">#111</a></li>
<li class=""><strong>measurements:</strong> add API for per-result series measurement charts (<a href="https://github.com/ts-factory/bublik/commit/91d66becb36b8e444e4572c60d2800405e3dd074" target="_blank" rel="noopener noreferrer" class="">91d66be</a>)</li>
<li class=""><strong>importruns:</strong> update run log JSON structure (<a href="https://github.com/ts-factory/bublik/commit/ab6c242cdeba2e87eb337e07a2f8abf54a5901ba" target="_blank" rel="noopener noreferrer" class="">ab6c242</a>)</li>
<li class=""><strong>importruns:</strong> add JSON log import (<a href="https://github.com/ts-factory/bublik/commit/f587231c66db8e8821feb529f052cd437e709b61" target="_blank" rel="noopener noreferrer" class="">f587231</a>)</li>
<li class=""><strong>results:</strong> extend data structure for multiple expected results (<a href="https://github.com/ts-factory/bublik/commit/6c0222513f0eda98d05bb87dc0665107b8f87dac" target="_blank" rel="noopener noreferrer" class="">6c02225</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v1.10.1#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>event:</strong> improve semantic clarity (<a href="https://github.com/ts-factory/bublik/commit/14b5c691f609a6a444d0b389d736dc467a93c90d" target="_blank" rel="noopener noreferrer" class="">14b5c69</a>)</li>
<li class=""><strong>event:</strong> improve event queryset flexibility (<a href="https://github.com/ts-factory/bublik/commit/3fed72488de616075bcc7f10812b66c28db0a281" target="_blank" rel="noopener noreferrer" class="">3fed724</a>)</li>
<li class=""><strong>event:</strong> make import event list retrieval cleaner and DRY (<a href="https://github.com/ts-factory/bublik/commit/4e36e17999d941c9c2d79b44134447fe81869a75" target="_blank" rel="noopener noreferrer" class="">4e36e17</a>)</li>
<li class=""><strong>measurements:</strong> encapsulate measurement charts generation for reuse (<a href="https://github.com/ts-factory/bublik/commit/7a7cb58c14d1638c9f640092f19f40c29b70e4c3" target="_blank" rel="noopener noreferrer" class="">7a7cb58</a>)</li>
<li class=""><strong>measurements:</strong> rename trend chart data endpoint for semantic accuracy (<a href="https://github.com/ts-factory/bublik/commit/17828c1b0c94693dbc9e4eb9cfe432ac3516aee8" target="_blank" rel="noopener noreferrer" class="">17828c1</a>)</li>
<li class=""><strong>importruns:</strong> reduce nesting for clearer logic (<a href="https://github.com/ts-factory/bublik/commit/5819e2999ac3b9b8951dfc7b3c3d56aafbe48da4" target="_blank" rel="noopener noreferrer" class="">5819e29</a>)</li>
<li class=""><strong>results:</strong> unify the expected result structure (<a href="https://github.com/ts-factory/bublik/commit/b34a1581d6ca79e117488d0a000f34b5bb2fbcc9" target="_blank" rel="noopener noreferrer" class="">b34a158</a>)</li>
<li class=""><strong>results:</strong> ensure naming consistency (<a href="https://github.com/ts-factory/bublik/commit/b0a0435d4ff700ede1eaac320bf89df0f2564ae1" target="_blank" rel="noopener noreferrer" class="">b0a0435</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v1.10.1#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>event:</strong> clean up error messages (<a href="https://github.com/ts-factory/bublik/commit/74271a523866a2527c6f78e5b608a95098afc4ca" target="_blank" rel="noopener noreferrer" class="">74271a5</a>)</li>
<li class=""><strong>core:</strong> fix imported modules order (<a href="https://github.com/ts-factory/bublik/commit/6c47fa7099b60db553625ac1e40151a9a9058934" target="_blank" rel="noopener noreferrer" class="">6c47fa7</a>)</li>
<li class=""><strong>core:</strong> reduce technical debt (<a href="https://github.com/ts-factory/bublik/commit/880664b05c4b345fc89e0218b775affe543afe08" target="_blank" rel="noopener noreferrer" class="">880664b</a>)</li>
<li class=""><strong>importruns:</strong> format long function call for readability (<a href="https://github.com/ts-factory/bublik/commit/a861caf9f5a580bee185c012f360823f4460f73b" target="_blank" rel="noopener noreferrer" class="">a861caf</a>)</li>
<li class=""><strong>history:</strong> improve code style (<a href="https://github.com/ts-factory/bublik/commit/3ab391126bb4fa074694792f28cd74d0966d6b62" target="_blank" rel="noopener noreferrer" class="">3ab3911</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores-1">📦 Chores<a href="https://ts-factory.github.io/blog/release-v1.10.1#-chores-1" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> improve traceability of downloaded logs (<a href="https://github.com/ts-factory/bublik/commit/68e93f350b3cc9cc80ec05e522b1b4b26ce03908" target="_blank" rel="noopener noreferrer" class="">68e93f3</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v1.9.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v1.9.0</id>
        <link href="https://ts-factory.github.io/blog/release-v1.9.0"/>
        <updated>2025-06-19T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[Bublik v1.9.0 is a small release that fixes a longstanding issue with database migrations.]]></summary>
        <content type="html"><![CDATA[<p>Bublik v1.9.0 is a small release that fixes a longstanding issue with database migrations.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v1.9.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v1.9.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class="">Navigate to the backend directory: <code>cd bublik</code></li>
<li class="">Fetch updates from all remote repositories: <code>git remote update</code></li>
<li class="">Check out the latest stable release before the new one: <code>git checkout v1.8.0</code></li>
<li class="">Ensure all migrations are created and applied: <code>./scripts/deploy --steps migrate_db</code></li>
<li class="">⚠️ Backup the database to ensure rollback is possible in case of issues.</li>
<li class="">⚠️ Backup the migrations folder (bublik/data/migrations/), in case they are needed for rollback or comparison.</li>
<li class="">Delete all migration files from the migrations folder (except &nbsp;<em>__init__.py</em>): <code>find . -path "*/bublik/data/migrations/*.py" -not -name "__init__.py" -delete</code></li>
<li class="">Check out this release: <code>git checkout v1.9.0</code>.</li>
<li class="">Activate the virtual environment: <code>source .env/bin/activate</code></li>
<li class="">Delete all migration records from the database: <code>python3 manage.py dbshell -- -c 'TRUNCATE "django_migrations";'</code>.</li>
<li class="">Apply migrations without executing SQL (mark as applied): <code>python3 manage.py migrate --fake</code></li>
<li class="">Restart the services: <code>./scripts/deploy --steps run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v1.9.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.9.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v1.9.0#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.9.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-updatee">Docker Instance Updatee<a href="https://ts-factory.github.io/blog/release-v1.9.0#docker-instance-updatee" class="hash-link" aria-label="Direct link to Docker Instance Updatee" title="Direct link to Docker Instance Updatee" translate="no">​</a></h3>
<ol>
<li class=""><code>task backup:create</code></li>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
<li class=""><code>task migrations:transition_1.8.0_to_1.9.0</code></li>
<li class=""><code>task up</code></li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v1.9.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v1.9.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v1.9.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>database:</strong> track and commit database migrations in Git (<a href="https://github.com/ts-factory/bublik/commit/c0a469906fd20b7675f4e1142849f41f59f3135c" target="_blank" rel="noopener noreferrer" class="">c0a4699</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v1.8.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v1.8.0</id>
        <link href="https://ts-factory.github.io/blog/release-v1.8.0"/>
        <updated>2025-05-21T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[In this release we've added scenario from log to new bug modal and date range picker with duration based selection to runs page.]]></summary>
        <content type="html"><![CDATA[<p>In this release we've added scenario from log to new bug modal and date range picker with duration based selection to runs page. <br>
Also fixed some small issues with charts and run page sorting and source button.
Added new config option to allow reading configs without admin permissions.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="-whats-new">🔍 What's New?<a href="https://ts-factory.github.io/blog/release-v1.8.0#-whats-new" class="hash-link" aria-label="Direct link to 🔍 What's New?" title="Direct link to 🔍 What's New?" translate="no">​</a></h2>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="flexible-permissions-for-reading-configs">Flexible Permissions For Reading Configs<a href="https://ts-factory.github.io/blog/release-v1.8.0#flexible-permissions-for-reading-configs" class="hash-link" aria-label="Direct link to Flexible Permissions For Reading Configs" title="Direct link to Flexible Permissions For Reading Configs" translate="no">​</a></h4>
<p>It is now possible to allow configuration reading without requiring admin permissions. To enable this, include the <code>read_configs</code> action in the <code>NOT_PERMISSION_REQUIRED_ACTIONS</code> list in the main configuration.</p>
<p><img decoding="async" loading="lazy" alt="Flexible Permissions For Reading Configs" src="https://ts-factory.github.io/assets/images/perms-1fab47fd208396876cedaea1c1e2951b.webp" width="3244" height="2076" class="img_yd8J"></p>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="log-filters">Log Filters<a href="https://ts-factory.github.io/blog/release-v1.8.0#log-filters" class="hash-link" aria-label="Direct link to Log Filters" title="Direct link to Log Filters" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="Log Filters" src="https://ts-factory.github.io/assets/images/filter-buttons-1ef83b7a41cfbc677c9810fecec8e02a.webp" width="1802" height="1642" class="img_yd8J"></p>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="date-range-picker">Date Range Picker<a href="https://ts-factory.github.io/blog/release-v1.8.0#date-range-picker" class="hash-link" aria-label="Direct link to Date Range Picker" title="Direct link to Date Range Picker" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="Date Range Picker" src="https://ts-factory.github.io/assets/images/range-picker-206c2f875d13018226ae9ac82fcbc45f.webp" width="2122" height="1320" class="img_yd8J"></p>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="run-in-progress">Run In Progress<a href="https://ts-factory.github.io/blog/release-v1.8.0#run-in-progress" class="hash-link" aria-label="Direct link to Run In Progress" title="Direct link to Run In Progress" translate="no">​</a></h4>
<p><img decoding="async" loading="lazy" alt="Run In Progress" src="https://ts-factory.github.io/assets/images/log-running-d02f73ebaeb8ad07087664a18bcdf957.webp" width="4530" height="2458" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v1.8.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v1.8.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.8.0</code></li>
<li class=""><code>./scripts/deploy --steps run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v1.8.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.8.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v1.8.0#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.8.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-instance-update">Docker Instance Update<a href="https://ts-factory.github.io/blog/release-v1.8.0#docker-instance-update" class="hash-link" aria-label="Direct link to Docker Instance Update" title="Direct link to Docker Instance Update" translate="no">​</a></h3>
<ol>
<li class=""><code>task pull</code></li>
<li class=""><code>task up</code></li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v1.8.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v1.8.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.8.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>log:</strong> [new-bug] add log filters for scenario and verdict (<a href="https://github.com/ts-factory/bublik-ui/commit/c1a7827b1346fcf100cf5b86463397c13d25dbdd" target="_blank" rel="noopener noreferrer" class="">c1a7827</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/246" target="_blank" rel="noopener noreferrer" class="">#246</a></li>
<li class=""><strong>result:</strong> [measurements] add selection popover for combined charts (<a href="https://github.com/ts-factory/bublik-ui/commit/0d29de320d457b42467f5c78b1174570a83140da" target="_blank" rel="noopener noreferrer" class="">0d29de3</a>)</li>
<li class=""><strong>runs:</strong> add ability to select dates based on duration (<a href="https://github.com/ts-factory/bublik-ui/commit/0fb0dbe7b7ea90924da6fe65a1bbef95c997905a" target="_blank" rel="noopener noreferrer" class="">0fb0dbe</a>)</li>
<li class=""><strong>runs:</strong> add scroll to top on page change (<a href="https://github.com/ts-factory/bublik-ui/commit/c8a91ef15b7670dadee08b49c5401d98d3501b3a" target="_blank" rel="noopener noreferrer" class="">c8a91ef</a>)</li>
<li class=""><strong>ui:</strong> [date-range-picker] add mode for selection dates based on duration (<a href="https://github.com/ts-factory/bublik-ui/commit/627c3614bd79c0ecbe8af6eb4eff108d694888a0" target="_blank" rel="noopener noreferrer" class="">627c361</a>)</li>
<li class=""><strong>ui:</strong> [date-range-picker] make range buttons select sliding window (<a href="https://github.com/ts-factory/bublik-ui/commit/81bd2ddcd9364f5bf3406c751057530dbcaf0ee5" target="_blank" rel="noopener noreferrer" class="">81bd2dd</a>)</li>
<li class=""><strong>utils:</strong> add function to parse ISO8601 duration format (<a href="https://github.com/ts-factory/bublik-ui/commit/112d73b98ab8730ee12e15391b51e352cfdf7876" target="_blank" rel="noopener noreferrer" class="">112d73b</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v1.8.0#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>result:</strong> [measurement] fix selection popover overlap with table header (<a href="https://github.com/ts-factory/bublik-ui/commit/f9d4f4663f1e548311fe715a8c9588f8973f6022" target="_blank" rel="noopener noreferrer" class="">f9d4f46</a>)</li>
<li class=""><strong>run:</strong> change padding for all popovers (<a href="https://github.com/ts-factory/bublik-ui/commit/255d6e15b5a9c917b00b5e300abd3b611e3703fe" target="_blank" rel="noopener noreferrer" class="">255d6e1</a>)</li>
<li class=""><strong>runs:</strong> align "Name" and "Start" labels vertically in list item (<a href="https://github.com/ts-factory/bublik-ui/commit/466a349b92607d35587367c0cb6d3b33802ec41e" target="_blank" rel="noopener noreferrer" class="">466a349</a>)</li>
<li class=""><strong>ui:</strong> [date-range-picker] fix hover styles for cells (<a href="https://github.com/ts-factory/bublik-ui/commit/b2e50ea2814a68a9e071f07f9783f8ea107bdcb4" target="_blank" rel="noopener noreferrer" class="">b2e50ea</a>)</li>
<li class=""><strong>ui:</strong> [date-range-picker] prevent jumping when changing mode (<a href="https://github.com/ts-factory/bublik-ui/commit/c172c6893f41dd3676f6ce06b2cc541f94cb4d82" target="_blank" rel="noopener noreferrer" class="">c172c68</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.8.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>ci:</strong> ignore <code>.pnpm-store</code> while checking formatting (<a href="https://github.com/ts-factory/bublik-ui/commit/19fd7f48f767a9dfc874f5f9d072ab620169f47c" target="_blank" rel="noopener noreferrer" class="">19fd7f4</a>)</li>
<li class=""><strong>configs:</strong> [editor] prevent monaco editor getting source from CDN (<a href="https://github.com/ts-factory/bublik-ui/commit/09690597175663d56a2345044e112687e9850a37" target="_blank" rel="noopener noreferrer" class="">0969059</a>)</li>
<li class=""><strong>log:</strong> [mi] ensure last data point is included in chart (<a href="https://github.com/ts-factory/bublik-ui/commit/72742dd433109b2855c41a13a627da255eecffe4" target="_blank" rel="noopener noreferrer" class="">72742dd</a>)</li>
<li class=""><strong>log:</strong> [mi] fix incorrect distance proportion between points (<a href="https://github.com/ts-factory/bublik-ui/commit/e00d6f7ab9d740b1f9381be9db8dfb3b1e2cdcce" target="_blank" rel="noopener noreferrer" class="">e00d6f7</a>)</li>
<li class=""><strong>log:</strong> [new-bug] escape <code>|</code> in log to properly format markdown table (<a href="https://github.com/ts-factory/bublik-ui/commit/bbaf57d63bbffc46c292d8f18525a0516858e4f7" target="_blank" rel="noopener noreferrer" class="">bbaf57d</a>)</li>
<li class=""><strong>report,result:</strong> [chart] incorrect distance proprtions in charts (<a href="https://github.com/ts-factory/bublik-ui/commit/13b7592e2170e1b70fa7841ae7b8536d9c57b95f" target="_blank" rel="noopener noreferrer" class="">13b7592</a>)</li>
<li class=""><strong>report:</strong> missing tab title when reloading page (<a href="https://github.com/ts-factory/bublik-ui/commit/c1a1e19d0b18aa54e1b4e8dde3cfd03d0f8847e6" target="_blank" rel="noopener noreferrer" class="">c1a1e19</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/321" target="_blank" rel="noopener noreferrer" class="">#321</a></li>
<li class=""><strong>run,log:</strong> disable link in case no URL for source available (<a href="https://github.com/ts-factory/bublik-ui/commit/973689c8a71c26b306d80c6b534e9e29d4355878" target="_blank" rel="noopener noreferrer" class="">973689c</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/243" target="_blank" rel="noopener noreferrer" class="">#243</a></li>
<li class=""><strong>run:</strong> remove auto-sort on "Preview NOK" button click (<a href="https://github.com/ts-factory/bublik-ui/commit/e8bbb8fca3b0df2d59b9768f45d89ef56bd0a35c" target="_blank" rel="noopener noreferrer" class="">e8bbb8f</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/320" target="_blank" rel="noopener noreferrer" class="">#320</a></li>
<li class=""><strong>run:</strong> use correct endpoint for getting bug storage url (<a href="https://github.com/ts-factory/bublik-ui/commit/fc9f8b028f3f6e44811d7339a2935fb138449468" target="_blank" rel="noopener noreferrer" class="">fc9f8b0</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v1.8.0#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> [measurements] use selection state popover from shared lib (<a href="https://github.com/ts-factory/bublik-ui/commit/727aaadc4115ac6eef16cc7b5af60d6e2a6e5f97" target="_blank" rel="noopener noreferrer" class="">727aaad</a>)</li>
<li class=""><strong>log:</strong> allow dynamically to get initial filter options (<a href="https://github.com/ts-factory/bublik-ui/commit/c7cf0207448f21d932a50b57fb3037af172332eb" target="_blank" rel="noopener noreferrer" class="">c7cf020</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v1.8.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>log:</strong> [attachments] improve filename generation (<a href="https://github.com/ts-factory/bublik-ui/commit/57f1ec82158db81b936d5e29afaaa268b78aebc1" target="_blank" rel="noopener noreferrer" class="">57f1ec8</a>)</li>
<li class=""><strong>log:</strong> delete duplicated code for log source button component (<a href="https://github.com/ts-factory/bublik-ui/commit/0a2f7fb394c1ded7cd65be5c97584bb2984193c3" target="_blank" rel="noopener noreferrer" class="">0a2f7fb</a>)</li>
<li class=""><strong>log:</strong> extract new bug button component (<a href="https://github.com/ts-factory/bublik-ui/commit/5dd6e8e1967c14b1da5bf6fe94087a1757c99ac8" target="_blank" rel="noopener noreferrer" class="">5dd6e8e</a>)</li>
<li class=""><strong>log:</strong> remove duplicated new bug button component usage (<a href="https://github.com/ts-factory/bublik-ui/commit/4de5b286d6eb6fb340db13aff7bac1da098b8f5a" target="_blank" rel="noopener noreferrer" class="">4de5b28</a>)</li>
<li class=""><strong>log:</strong> remove new bug button component (<a href="https://github.com/ts-factory/bublik-ui/commit/2708628092af43ed62c302e84e6a6d6ad651ca61" target="_blank" rel="noopener noreferrer" class="">2708628</a>)</li>
<li class=""><strong>measurements:</strong> extract selection popover for charts to shared lib (<a href="https://github.com/ts-factory/bublik-ui/commit/5867d11caad7022e6ef0dc8acf061a7be0505ad4" target="_blank" rel="noopener noreferrer" class="">5867d11</a>)</li>
<li class=""><strong>redux:</strong> upgrade redux and zod to latest (<a href="https://github.com/ts-factory/bublik-ui/commit/54be9d132b65ee65ffc6aba84402c41a501de059" target="_blank" rel="noopener noreferrer" class="">54be9d1</a>)</li>
<li class=""><strong>runs:</strong> remove max selection limit to view merged runs (<a href="https://github.com/ts-factory/bublik-ui/commit/27ef3c17e9cfaa06c52fa22fa9b48936a69131b0" target="_blank" rel="noopener noreferrer" class="">27ef3c1</a>)</li>
<li class=""><strong>ui:</strong> [date-range-picker] adjust types for duration picker (<a href="https://github.com/ts-factory/bublik-ui/commit/e442a0bcef0de69773eeb5e730716b8dca34c2eb" target="_blank" rel="noopener noreferrer" class="">e442a0b</a>)</li>
<li class=""><strong>ui:</strong> [date-range-picker] extract shared constants and types (<a href="https://github.com/ts-factory/bublik-ui/commit/35e8a63bd5824b6732bd86ac5d09fe13aa088148" target="_blank" rel="noopener noreferrer" class="">35e8a63</a>)</li>
<li class=""><strong>ui:</strong> [icons] add gear icon (<a href="https://github.com/ts-factory/bublik-ui/commit/2c958bdf35fc0e112dfcb823b59571c32b1e68df" target="_blank" rel="noopener noreferrer" class="">2c958bd</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v1.8.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.8.0#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>run stats:</strong> fix revision references retrieval (<a href="https://github.com/ts-factory/bublik/commit/2e49c3c256ebef627b7fedd2cf0fbcf2a4b2c3b3" target="_blank" rel="noopener noreferrer" class="">2e49c3c</a>)</li>
<li class=""><strong>run stats:</strong> fix marking runs as compromised (<a href="https://github.com/ts-factory/bublik/commit/f1e2bae2921cdad3a785ac04a37c8889498fc4dc" target="_blank" rel="noopener noreferrer" class="">f1e2bae</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.8.0#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> make config read permission check configurable (<a href="https://github.com/ts-factory/bublik/commit/8a16abad35f00a9767772073b46c8cb5a7af37b7" target="_blank" rel="noopener noreferrer" class="">8a16aba</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores-1">📦 Chores<a href="https://ts-factory.github.io/blog/release-v1.8.0#-chores-1" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>ci:</strong> fix deprecation warning for ruff (<a href="https://github.com/ts-factory/bublik/commit/19ef6e24270903cbe45b004fc4e720e193122a0c" target="_blank" rel="noopener noreferrer" class="">19ef6e2</a>), closes <a href="https://github.com/ts-factory/bublik/issues/125" target="_blank" rel="noopener noreferrer" class="">#125</a></li>
<li class=""><strong>ci:</strong> add code quality check workflow (<a href="https://github.com/ts-factory/bublik/commit/d4658134b59642b731b21c8c80d5b60700bb213d" target="_blank" rel="noopener noreferrer" class="">d465813</a>)</li>
<li class=""><strong>config:</strong> clarify main config expectations in schema (<a href="https://github.com/ts-factory/bublik/commit/b74636bc45dedb5a701217c34aab71bafed7f021" target="_blank" rel="noopener noreferrer" class="">b74636b</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v1.7.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v1.7.0</id>
        <link href="https://ts-factory.github.io/blog/release-v1.7.0"/>
        <updated>2025-04-18T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release introduces numerous improvements to URL handling, deployment configurations, and log management.]]></summary>
        <content type="html"><![CDATA[<p>This release introduces numerous improvements to URL handling, deployment configurations, and log management. <br>
Key updates include fixes for URL syntax and construction, and improved deployment processes with integrated documentation support. <br>
A notable addition is the new Docker-based deployment option, offering a streamlined way to set up Bublik instances.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="-whats-new">🔍 What's New?<a href="https://ts-factory.github.io/blog/release-v1.7.0#-whats-new" class="hash-link" aria-label="Direct link to 🔍 What's New?" title="Direct link to 🔍 What's New?" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.7.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="docker-deploy">Docker Deploy<a href="https://ts-factory.github.io/blog/release-v1.7.0#docker-deploy" class="hash-link" aria-label="Direct link to Docker Deploy" title="Direct link to Docker Deploy" translate="no">​</a></h4>
<p>We've implemented Docker container support for simplified <strong>Bublik</strong> deployment and setup.<br>
For detailed instructions on setting up a Bublik instance with Docker, please refer to our <a class="" href="https://ts-factory.github.io/docker/setup">documentation</a></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v1.7.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v1.7.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.7.0</code></li>
<li class=""><code>./scripts/deploy --steps general_conf</code></li>
<li class="">Update the value of <code>BUBLIK_DOCS_DIST</code> in <code>bublik/general.conf</code> to match the name of the distribution you are using, if necessary</li>
<li class=""><code>./scripts/deploy --steps django_settings run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v1.7.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.7.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation-update">Documentation Update<a href="https://ts-factory.github.io/blog/release-v1.7.0#documentation-update" class="hash-link" aria-label="Direct link to Documentation Update" title="Direct link to Documentation Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository</li>
<li class="">Synchronize the mirrors</li>
<li class=""><code>cd bublik-docs</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.7.0</code></li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v1.7.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v1.7.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v1.7.0#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h3>
<ul>
<li class=""><strong>logs:</strong> rename 'Artifacts' to 'Attachments' (<a href="https://github.com/ts-factory/bublik-ui/commit/07d566768c125b8d4976d9e7cb54b5a7779721c8" target="_blank" rel="noopener noreferrer" class="">07d5667</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v1.7.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.7.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>urls:</strong> fix syntax warning (<a href="https://github.com/ts-factory/bublik/commit/342e605c96953070c369ce90171c2781cb825763" target="_blank" rel="noopener noreferrer" class="">342e605</a>)</li>
<li class=""><strong>urls:</strong> fix absolute URL construction (<a href="https://github.com/ts-factory/bublik/commit/a54eee44b32d39ead53758128ddad96808007152" target="_blank" rel="noopener noreferrer" class="">a54eee4</a>)</li>
<li class=""><strong>urls:</strong> fix URL prefix construction (<a href="https://github.com/ts-factory/bublik/commit/c648492dcfe8a1d5af7e2d27ff1fa4bff9d63a91" target="_blank" rel="noopener noreferrer" class="">c648492</a>)</li>
<li class=""><strong>log:</strong> add proxy logic for JSON logs to fix CORS issues (<a href="https://github.com/ts-factory/bublik/commit/32e35dcf4871f97bd19f7220879d898d2e1eb488" target="_blank" rel="noopener noreferrer" class="">32e35dc</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.7.0#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>log:</strong> add proxy endpoint to resolve CORS issues with remote logs (<a href="https://github.com/ts-factory/bublik/commit/add49cfbcf6c9b3f836547ec1560e6a2824be05f" target="_blank" rel="noopener noreferrer" class="">add49cf</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v1.7.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>deploy:</strong> specify path to the static docs (<a href="https://github.com/ts-factory/bublik/commit/391ddb4ff38f8465fc1f117c06d8f24d3d3f4537" target="_blank" rel="noopener noreferrer" class="">391ddb4</a>)</li>
<li class=""><strong>importruns:</strong> normalize response data dict keys (<a href="https://github.com/ts-factory/bublik/commit/2f8e1fe8991c5a789f0e50c1a165d90433497ad7" target="_blank" rel="noopener noreferrer" class="">2f8e1fe</a>)</li>
<li class=""><strong>log:</strong> rename 'artifacts' to 'attachments' in log API (<a href="https://github.com/ts-factory/bublik/commit/e17b52d0f8372a2b6da9ebd3eac5f41382d8c5e9" target="_blank" rel="noopener noreferrer" class="">e17b52d</a>)</li>
<li class=""><strong>deploy:</strong> fix Bublik UI static location (<a href="https://github.com/ts-factory/bublik/commit/4f4b3e0a95cb86a6bb32f57a7ff3066f45336f03" target="_blank" rel="noopener noreferrer" class="">4f4b3e0</a>)</li>
<li class=""><strong>deploy:</strong> integrate Bublik docs into initial deployment (<a href="https://github.com/ts-factory/bublik/commit/9d94b960ed7b22f5e769e8eea4045086a699057b" target="_blank" rel="noopener noreferrer" class="">9d94b96</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v1.6.1]]></title>
        <id>https://ts-factory.github.io/blog/release-v1.6.1</id>
        <link href="https://ts-factory.github.io/blog/release-v1.6.1"/>
        <updated>2025-03-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[This release introduces key improvements, including enhanced run page filtering capabilities, requirements filtering.]]></summary>
        <content type="html"><![CDATA[<p>This release introduces key improvements, including enhanced run page filtering capabilities, requirements filtering.
It also includes UI polish and various code refactoring changes.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="-whats-new">🔍 What's New?<a href="https://ts-factory.github.io/blog/release-v1.6.1#-whats-new" class="hash-link" aria-label="Direct link to 🔍 What's New?" title="Direct link to 🔍 What's New?" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.6.1#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h3>
<ul>
<li class=""><strong>Requirements Filter</strong>: Added new filtering capabilities for run requirements</li>
<li class=""><strong>Log Artifacts</strong>: Added log artifacts dropdown menu to log page and log preview</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v1.6.1#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="new-run-page-filtering">New Run Page Filtering<a href="https://ts-factory.github.io/blog/release-v1.6.1#new-run-page-filtering" class="hash-link" aria-label="Direct link to New Run Page Filtering" title="Direct link to New Run Page Filtering" translate="no">​</a></h3>
<p>We've added new filtering capabilities for run requirements and columns for results table.</p>
<p><img decoding="async" loading="lazy" alt="New Run Page Filtering" src="https://ts-factory.github.io/assets/images/run-filters-44bb9d8153bc5f1fa0842ca9317f0a58.webp" width="3424" height="2124" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="log-artifacts">Log Artifacts<a href="https://ts-factory.github.io/blog/release-v1.6.1#log-artifacts" class="hash-link" aria-label="Direct link to Log Artifacts" title="Direct link to Log Artifacts" translate="no">​</a></h3>
<p>We've enhanced the log viewing experience by adding a new dropdown menu for artifacts on both the log page and log preview. <br>
This feature allows you to easily access and manage custom test artifacts. <br>
For the start we provide a way to just open the artifacts in the browser, but in the future we will support multiple artifact types and ways to view them.</p>
<p><img decoding="async" loading="lazy" alt="Log Artifacts" src="https://ts-factory.github.io/assets/images/artifacts-aa1e4c713e54fa591e2512dca5e10e07.webp" width="3424" height="2124" class="img_yd8J"></p>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="adding-artifacts">Adding Artifacts<a href="https://ts-factory.github.io/blog/release-v1.6.1#adding-artifacts" class="hash-link" aria-label="Direct link to Adding Artifacts" title="Direct link to Adding Artifacts" translate="no">​</a></h4>
<p>To include artifacts in your logs:</p>
<ol>
<li class="">Create an <code>artifacts.json</code> file</li>
<li class="">Place it at <code>/artifacts/node_&lt;id&gt;/artifacts.json</code> in your log structure</li>
<li class="">Format it according to our <a href="https://github.com/okt-limonikas/bublik-log-viewer/blob/main/internal/command/schemas/artifact.json" target="_blank" rel="noopener noreferrer" class="">schema</a></li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="validating-artifacts">Validating Artifacts<a href="https://ts-factory.github.io/blog/release-v1.6.1#validating-artifacts" class="hash-link" aria-label="Direct link to Validating Artifacts" title="Direct link to Validating Artifacts" translate="no">​</a></h4>
<p>You can validate your <code>artifacts.json</code> file using the <a href="https://github.com/okt-limonikas/bublik-log-viewer" target="_blank" rel="noopener noreferrer" class="">Bublik Log Viewer tool</a>:</p>
<div class="language-bash codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-bash codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token plain">blv validate </span><span class="token parameter variable" style="color:#36acaa">--type</span><span class="token plain"> artifacts </span><span class="token operator" style="color:#393A34">&lt;</span><span class="token plain">path/to/artifacts.json_or_folder</span><span class="token operator" style="color:#393A34">&gt;</span><br></div></code></pre></div></div>
<p>Read more about artifacts in our <a class="" href="https://ts-factory.github.io/publish/attachments">documentation</a>.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v1.6.1#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v1.6.1#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.6.1</code></li>
<li class=""><code>./scripts/deploy --steps pip_requirements django_settings run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v1.6.1#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository.</li>
<li class="">Synchronize the mirrors.</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.6.1</code></li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v1.6.1#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v1.6.1#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.6.1#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class="">add query delimiter to global config (<a href="https://github.com/ts-factory/bublik-ui/commit/d7d8fae798ce279687f3e83f9c287237aeca3bd9" target="_blank" rel="noopener noreferrer" class="">d7d8fae</a>)</li>
<li class=""><strong>run:</strong> add global url requirements filter provider (<a href="https://github.com/ts-factory/bublik-ui/commit/22b120125d7edab39156cceb18f6f15a9b35aff3" target="_blank" rel="noopener noreferrer" class="">22b1201</a>)</li>
<li class=""><strong>run:</strong> add requirements filter (<a href="https://github.com/ts-factory/bublik-ui/commit/c54fcabe677b98a54b29730c83e0638d91dc451c" target="_blank" rel="noopener noreferrer" class="">c54fcab</a>)</li>
<li class=""><strong>run:</strong> re-enable parameters diff mode (<a href="https://github.com/ts-factory/bublik-ui/commit/9c7da003f45cd61ef1ca7204ed024c6813a29f42" target="_blank" rel="noopener noreferrer" class="">9c7da00</a>)</li>
<li class=""><strong>config:</strong> get available config types from rest api (<a href="https://github.com/ts-factory/bublik-ui/commit/86ccf095eacfe66c3d55fb42c98bb1af3dca7ac4" target="_blank" rel="noopener noreferrer" class="">86ccf09</a>)</li>
<li class=""><strong>history:</strong> [measurements] mark results with <code>has_error</code> with green/red marks (<a href="https://github.com/ts-factory/bublik-ui/commit/a3321ef9ed7a16e881d6b1e71b21d27ef9b65ea6" target="_blank" rel="noopener noreferrer" class="">a3321ef</a>)</li>
<li class=""><strong>log:</strong> add artifacts dropdown menu to log page and log preview (<a href="https://github.com/ts-factory/bublik-ui/commit/2e7a4eeb3b99b429ab1891d38f6a91e4c3edb40c" target="_blank" rel="noopener noreferrer" class="">2e7a4ee</a>)</li>
<li class=""><strong>log:</strong> add endpoint to fetch <code>artifacts.json</code> (<a href="https://github.com/ts-factory/bublik-ui/commit/0565219a8e5f4b3226755196b2d7edfdf830808e" target="_blank" rel="noopener noreferrer" class="">0565219</a>)</li>
<li class=""><strong>log:</strong> add log-artifacts dropdown menu component (<a href="https://github.com/ts-factory/bublik-ui/commit/3353a0683594e6462fef1183bb6ad2621c0c6ade" target="_blank" rel="noopener noreferrer" class="">3353a06</a>)</li>
<li class=""><strong>ui:</strong> add icon for download (<a href="https://github.com/ts-factory/bublik-ui/commit/3b38881a10de1a8c29ae2308d9fbe790db76fa4a" target="_blank" rel="noopener noreferrer" class="">3b38881</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.6.1#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> [linear] reset filters on "Preview" button click (<a href="https://github.com/ts-factory/bublik-ui/commit/ed2304b1a26224b68ee74ed98f351ebb8fa769d4" target="_blank" rel="noopener noreferrer" class="">ed2304b</a>)</li>
<li class=""><strong>import:</strong> don't modify response from API (<a href="https://github.com/ts-factory/bublik-ui/commit/aa968966c797c11def219b0c14b8b14b184023e9" target="_blank" rel="noopener noreferrer" class="">aa96896</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v1.6.1#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>run:</strong> adjust offsets for results table toolbar (<a href="https://github.com/ts-factory/bublik-ui/commit/65c95c184cc576261e1ee76bb6f69331ef49908c" target="_blank" rel="noopener noreferrer" class="">65c95c1</a>)</li>
<li class=""><strong>run:</strong> change button style to show result filters toolbar (<a href="https://github.com/ts-factory/bublik-ui/commit/a3f0a78912d02f06b4f424eb2962c42a4fd0fb4a" target="_blank" rel="noopener noreferrer" class="">a3f0a78</a>)</li>
<li class=""><strong>measurements:</strong> remove red and green colors from theme for lines (<a href="https://github.com/ts-factory/bublik-ui/commit/ffc8aa94c2e456632b37513cfc167aac865c535f" target="_blank" rel="noopener noreferrer" class="">ffc8aa9</a>)</li>
<li class=""><strong>report:</strong> chart use empty circle for results without <code>has_error</code> (<a href="https://github.com/ts-factory/bublik-ui/commit/5ad1d2b191a4069942e31a08c88ae1e925202099" target="_blank" rel="noopener noreferrer" class="">5ad1d2b</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v1.6.1#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>api:</strong> change API for fetching runs (<a href="https://github.com/ts-factory/bublik-ui/commit/12851cc07cbc5a7a5f59605eff186f8a5909b7ae" target="_blank" rel="noopener noreferrer" class="">12851cc</a>)</li>
<li class=""><strong>run:</strong> add <code>abnormal</code> to unexpected columns for expansion (<a href="https://github.com/ts-factory/bublik-ui/commit/a4ffac048a07cf22aa9da6b09e8d97bcfdebb452" target="_blank" rel="noopener noreferrer" class="">a4ffac0</a>)</li>
<li class=""><strong>run:</strong> add migration for url query expanded state (<a href="https://github.com/ts-factory/bublik-ui/commit/0b9f3b6ff77a1e7442cb9fce415cf8ee47aeb7a4" target="_blank" rel="noopener noreferrer" class="">0b9f3b6</a>)</li>
<li class=""><strong>run:</strong> adjust getting row id (<a href="https://github.com/ts-factory/bublik-ui/commit/9fbd4a3f3160e50c8e1ad622183829758dbb9b4d" target="_blank" rel="noopener noreferrer" class="">9fbd4a3</a>)</li>
<li class=""><strong>run:</strong> show filter options based on filtered data (<a href="https://github.com/ts-factory/bublik-ui/commit/c3c66b11aaea1a164357c8eb17661098a1e336a5" target="_blank" rel="noopener noreferrer" class="">c3c66b1</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v1.6.1#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>run:</strong> fix types and some style changes (<a href="https://github.com/ts-factory/bublik-ui/commit/04e7977b4cc91afd5935475fefc9d35a4e83f889" target="_blank" rel="noopener noreferrer" class="">04e7977</a>)</li>
<li class=""><strong>types:</strong> adjust incorrect types (<a href="https://github.com/ts-factory/bublik-ui/commit/81b167faeb88e2b1efc91b5d8952fdbbb983d807" target="_blank" rel="noopener noreferrer" class="">81b167f</a>)</li>
<li class=""><strong>ui:</strong> extract data table faceted filter to shared lib (<a href="https://github.com/ts-factory/bublik-ui/commit/0e977a482d87bbbb6b56783f24852ae5cfebf887" target="_blank" rel="noopener noreferrer" class="">0e977a4</a>)</li>
<li class=""><strong>log:</strong> change button label for viewing legacy log (<a href="https://github.com/ts-factory/bublik-ui/commit/057e3dbf890cde3f701979a52053cf621265f7f3" target="_blank" rel="noopener noreferrer" class="">057e3db</a>)</li>
<li class=""><strong>log:</strong> generate log-artifacts library (<a href="https://github.com/ts-factory/bublik-ui/commit/9ace68a2b8ebc4f85c40498123540b9e23d10370" target="_blank" rel="noopener noreferrer" class="">9ace68a</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v1.6.1#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.6.1#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>run stats:</strong> fix issue link building (<a href="https://github.com/ts-factory/bublik/commit/f4bcbdc13095d4f342243461f363f9d2741e3559" target="_blank" rel="noopener noreferrer" class="">f4bcbdc</a>)</li>
<li class=""><strong>requirements:</strong> update packages versions to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/b2869000ec8e9e0ae03eb6d32bcc45c79e0a8149" target="_blank" rel="noopener noreferrer" class="">b286900</a>)</li>
<li class=""><strong>history:</strong> fix filtering by test arguments (<a href="https://github.com/ts-factory/bublik/commit/9492e2591e34d668c0b23ea36f803ccaa2b90186" target="_blank" rel="noopener noreferrer" class="">9492e25</a>), closes <a href="https://github.com/ts-factory/bublik/issues/115" target="_blank" rel="noopener noreferrer" class="">#115</a></li>
<li class=""><strong>event:</strong> sort the list of events (<a href="https://github.com/ts-factory/bublik/commit/1214b62636117aaccd2ba4e8d1bf096eaf4198dd" target="_blank" rel="noopener noreferrer" class="">1214b62</a>)</li>
<li class=""><strong>requirements:</strong> update packages versions to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/9f4974c4ea89ef97ec1ef73465785e2a09eef2d3" target="_blank" rel="noopener noreferrer" class="">9f4974c</a>)</li>
<li class=""><strong>requirements:</strong> update packages versions to pick up bug fixes (<a href="https://github.com/ts-factory/bublik/commit/7bb17eb27da7d4cf8d851bedfbffa42c1ecadc27" target="_blank" rel="noopener noreferrer" class="">7bb17eb</a>)</li>
<li class=""><strong>importruns:</strong> fix the date format mismatch (<a href="https://github.com/ts-factory/bublik/commit/04fa978da81f4c9e43df9d9f72b2d4f315d50bf8" target="_blank" rel="noopener noreferrer" class="">04fa978</a>)</li>
<li class=""><strong>deploy:</strong> fix requirements install (<a href="https://github.com/ts-factory/bublik/commit/a7a7ce102fd8ee40a8cbb2b70824a864f623b3b5" target="_blank" rel="noopener noreferrer" class="">a7a7ce1</a>)</li>
<li class=""><strong>deploy:</strong> fix logilab-astng install (<a href="https://github.com/ts-factory/bublik/commit/3f611c5d04331c88206c6fadc645cb644762f07f" target="_blank" rel="noopener noreferrer" class="">3f611c5</a>)</li>
<li class=""><strong>event:</strong> fix event list sorting (<a href="https://github.com/ts-factory/bublik/commit/5361db0dbcafdb22e977ab999d5850f174a97378" target="_blank" rel="noopener noreferrer" class="">5361db0</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-2">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.6.1#-new-feature-2" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>measurements:</strong> update dynamic charts points data (<a href="https://github.com/ts-factory/bublik/commit/acbf692af780df2b85066f554807cb149ccf631e" target="_blank" rel="noopener noreferrer" class="">acbf692</a>), closes <a href="https://github.com/ts-factory/bublik/issues/139" target="_blank" rel="noopener noreferrer" class="">#139</a></li>
<li class=""><strong>run stats:</strong> add filtering by requirements (<a href="https://github.com/ts-factory/bublik/commit/73424594273c964df81cba5081312a6c7dec0180" target="_blank" rel="noopener noreferrer" class="">7342459</a>), closes <a href="https://github.com/ts-factory/bublik/issues/136" target="_blank" rel="noopener noreferrer" class="">#138</a>, <a href="https://github.com/ts-factory/bublik/issues/156" target="_blank" rel="noopener noreferrer" class="">#156</a></li>
<li class=""><strong>run stats:</strong> add endpoint to retrieve run requirements (<a href="https://github.com/ts-factory/bublik/commit/d1a5f2c9726bb937af377cd5031a1a0ac81ea2de" target="_blank" rel="noopener noreferrer" class="">d1a5f2c</a>), closes <a href="https://github.com/ts-factory/bublik/issues/155" target="_blank" rel="noopener noreferrer" class="">#155</a></li>
<li class=""><strong>config:</strong> add endpoint to retrieve available types and names (<a href="https://github.com/ts-factory/bublik/commit/cd73f1a5a66dd2beacf1b098638ce11293195c80" target="_blank" rel="noopener noreferrer" class="">cd73f1a</a>), closes <a href="https://github.com/ts-factory/bublik/issues/144" target="_blank" rel="noopener noreferrer" class="">#144</a></li>
<li class=""><strong>event:</strong> enable event list sorting (<a href="https://github.com/ts-factory/bublik/commit/ec5d105a8526c67cce78c0279b13e9895890bf01" target="_blank" rel="noopener noreferrer" class="">ec5d105</a>), closes <a href="https://github.com/ts-factory/bublik/issues/132" target="_blank" rel="noopener noreferrer" class="">#132</a></li>
<li class=""><strong>log:</strong> ensure support for displaying test artifacts (<a href="https://github.com/ts-factory/bublik/commit/5b09d6178e3b83d9374678430a2cd3d3fe90ad13" target="_blank" rel="noopener noreferrer" class="">5b09d61</a>), closes <a href="https://github.com/ts-factory/bublik/issues/157" target="_blank" rel="noopener noreferrer" class="">#157</a></li>
<li class=""><strong>config:</strong> add the schedule config type (<a href="https://github.com/ts-factory/bublik/commit/4a9c923f3d27944e5b40c326e701c946f9268366" target="_blank" rel="noopener noreferrer" class="">4a9c923</a>), closes <a href="https://github.com/ts-factory/bublik/issues/161" target="_blank" rel="noopener noreferrer" class="">#161</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-performance">⚡ Performance<a href="https://ts-factory.github.io/blog/release-v1.6.1#-performance" class="hash-link" aria-label="Direct link to ⚡ Performance" title="Direct link to ⚡ Performance" translate="no">​</a></h4>
<ul>
<li class=""><strong>event:</strong> optimize event list retrieval (<a href="https://github.com/ts-factory/bublik/commit/2fcfba979d3df5653af79ed5a2ec512f975975bd" target="_blank" rel="noopener noreferrer" class="">2fcfba9</a>), closes <a href="https://github.com/ts-factory/bublik/issues/132" target="_blank" rel="noopener noreferrer" class="">#132</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v1.6.1#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> centralize global configs names and descriptions (<a href="https://github.com/ts-factory/bublik/commit/c864b4fa736e7b2eedb33df46f2645d4d796fedc" target="_blank" rel="noopener noreferrer" class="">c864b4f</a>)</li>
<li class=""><strong>config:</strong> update global configs descriptions source (<a href="https://github.com/ts-factory/bublik/commit/d1cb6a22014fd411e6b5a937de0e8441c043a16b" target="_blank" rel="noopener noreferrer" class="">d1cb6a2</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v1.6.1#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> improve code style and maintainability (<a href="https://github.com/ts-factory/bublik/commit/7dab2bdddd9fd0e2a99ca01e76f683b25f21fdef" target="_blank" rel="noopener noreferrer" class="">7dab2bd</a>)</li>
<li class=""><strong>cleanup:</strong> ensure correct type annotations (<a href="https://github.com/ts-factory/bublik/commit/64ce40f2d59d113bc7d492be608a89a4fa1dedb4" target="_blank" rel="noopener noreferrer" class="">64ce40f</a>)</li>
<li class=""><strong>results:</strong> remove unused pagination (<a href="https://github.com/ts-factory/bublik/commit/d2983b713bf3f8f98b4d97d72b72e04714c86142" target="_blank" rel="noopener noreferrer" class="">d2983b7</a>)</li>
<li class=""><strong>cleanup:</strong> fix imported modules order (<a href="https://github.com/ts-factory/bublik/commit/61ae528b3a716f05f6aee0cb4a21f1d3e2ca4c70" target="_blank" rel="noopener noreferrer" class="">61ae528</a>)</li>
<li class=""><strong>deploy:</strong> cleanup DB packages to install (<a href="https://github.com/ts-factory/bublik/commit/4325516bd78372a58dcdf9b8e98606bcbcc474c1" target="_blank" rel="noopener noreferrer" class="">4325516</a>), closes <a href="https://github.com/ts-factory/bublik/issues/136" target="_blank" rel="noopener noreferrer" class="">#136</a></li>
<li class=""><strong>deploy:</strong> cleanup server packages to install (<a href="https://github.com/ts-factory/bublik/commit/597a3fb5e6a9e6fe0b0622b632f9fb9b65fbeee6" target="_blank" rel="noopener noreferrer" class="">597a3fb</a>), closes <a href="https://github.com/ts-factory/bublik/issues/136" target="_blank" rel="noopener noreferrer" class="">#136</a></li>
<li class=""><strong>importruns:</strong> reduce technical debt (<a href="https://github.com/ts-factory/bublik/commit/0046da6e155c9d79b34d9c789b38e724c71e8d70" target="_blank" rel="noopener noreferrer" class="">0046da6</a>)</li>
<li class=""><strong>urls:</strong> fix typo (<a href="https://github.com/ts-factory/bublik/commit/831e56438bb8e1303488bb4edf5d61355a3f18be" target="_blank" rel="noopener noreferrer" class="">831e564</a>)</li>
<li class=""><strong>urls:</strong> fix URL shortener docstring (<a href="https://github.com/ts-factory/bublik/commit/b1cd2bb2145367822a0c1255e16a4653b2ecfa7f" target="_blank" rel="noopener noreferrer" class="">b1cd2bb</a>)</li>
<li class=""><strong>urls:</strong> make splitting result predictable (<a href="https://github.com/ts-factory/bublik/commit/2cd56adf437f992c597b29f33c126f4c22e5c2b6" target="_blank" rel="noopener noreferrer" class="">2cd56ad</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v1.3.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v1.3.0</id>
        <link href="https://ts-factory.github.io/blog/release-v1.3.0"/>
        <updated>2025-02-27T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[🎉 Exciting Updates in the Latest Release! 🎉]]></summary>
        <content type="html"><![CDATA[<p>🎉 <strong>Exciting Updates in the Latest Release!</strong> 🎉</p>
<p>This release introduces key improvements, including enhanced report visualization, bug fixes, and optimizations for a smoother experience. It also updates deployment and simplifies configuration management.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="-whats-new">🔍 What's New?<a href="https://ts-factory.github.io/blog/release-v1.3.0#-whats-new" class="hash-link" aria-label="Direct link to 🔍 What's New?" title="Direct link to 🔍 What's New?" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.3.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h3>
<ul>
<li class=""><strong>Report Charts</strong>: Failed results are now highlighted in red with a diamond symbol, making it easier to identify issues at a glance.</li>
<li class=""><strong>Config Management</strong>: Now, the configuration manager allows you to manage all configurations, including references, meta, and tags.</li>
<li class=""><strong>Initial Deployment</strong>: Now, Bublik can be deployed without specifying a configuration and creating a configuration directory.</li>
<li class=""><strong>References Config</strong>: The new configuration structure allows specifying multiple log databases.</li>
<li class=""><strong>External Links</strong>: Now, the latest URI from the corresponding log database in the references configuration is used for generating links.</li>
<li class=""><strong>Log Preview</strong>: Added button to preview log on the history page just like on the run page</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fixes">🐛 Bug Fixes<a href="https://ts-factory.github.io/blog/release-v1.3.0#-bug-fixes" class="hash-link" aria-label="Direct link to 🐛 Bug Fixes" title="Direct link to 🐛 Bug Fixes" translate="no">​</a></h3>
<ul>
<li class=""><strong>Run Table</strong>: Fixed an issue where column visibility was not properly retained in the URL state.</li>
<li class=""><strong>Middleware</strong>: A global issue has been resolved that occurred when attempting to retrieve dynamic settings from a missing main project configuration.</li>
<li class=""><strong>Parameter Value Formatting</strong>: improve parameter value formatting for different types of parameters (indentation for JSON-like structures and code)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores--maintenance">📦 Chores &amp; Maintenance<a href="https://ts-factory.github.io/blog/release-v1.3.0#-chores--maintenance" class="hash-link" aria-label="Direct link to 📦 Chores &amp; Maintenance" title="Direct link to 📦 Chores &amp; Maintenance" translate="no">​</a></h3>
<ul>
<li class="">Removed a redundant config migration check to streamline configuration handling.</li>
<li class="">As part of <code>per_project_conf</code> deployment step, a command has been implemented to migrate all existing configurations to the database, as well as to initialize the required configurations in the database, if they have not been migrated.</li>
</ul>
<p>These updates enhance usability, improve reliability, and ensure a more seamless experience. 🚀</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v1.3.0#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="history-log-preview">History Log Preview<a href="https://ts-factory.github.io/blog/release-v1.3.0#history-log-preview" class="hash-link" aria-label="Direct link to History Log Preview" title="Direct link to History Log Preview" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="History Log Preview" src="https://ts-factory.github.io/assets/images/history-log-preview-cbf7a0a1574bc354bf8e51a7d855491d.webp" width="3376" height="1570" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="new-config-types">New Config Types<a href="https://ts-factory.github.io/blog/release-v1.3.0#new-config-types" class="hash-link" aria-label="Direct link to New Config Types" title="Direct link to New Config Types" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="New Config Types" src="https://ts-factory.github.io/assets/images/config-new-types-beac82f9225bccb098a57770d4f3f4a7.webp" width="2854" height="2076" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="report-charts">Report Charts<a href="https://ts-factory.github.io/blog/release-v1.3.0#report-charts" class="hash-link" aria-label="Direct link to Report Charts" title="Direct link to Report Charts" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Report Charts" src="https://ts-factory.github.io/assets/images/report-chart-5a63c0ff90fa314a67e9bccc33ab10b2.webp" width="2446" height="912" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v1.3.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v1.3.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.3.0</code></li>
<li class=""><code>./scripts/deploy --steps migrate_db per_project_conf django_settings run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v1.3.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository.</li>
<li class="">Synchronize the mirrors.</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.3.0</code></li>
</ol>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v1.3.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v1.3.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.3.0#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>report:</strong> [chart] highlight failed results with red and symbol (<a href="https://github.com/ts-factory/bublik-ui/commit/cf91f2c8e9b97e4201e37f2aa6a2d5b7b9922d5a" target="_blank" rel="noopener noreferrer" class="">cf91f2c</a>)</li>
<li class=""><strong>build:</strong> add check that json logs is buildable to CI (<a href="https://github.com/ts-factory/bublik-ui/commit/7f5ffa8c5d5d7cf9f32536f8b3d6d1c109ab2c91" target="_blank" rel="noopener noreferrer" class="">7f5ffa8</a>)</li>
<li class=""><strong>config:</strong> add ability to create configs for references, meta, tags (<a href="https://github.com/ts-factory/bublik-ui/commit/d1b5d23af5f01ccc652ef5bc799f396e3070bbcc" target="_blank" rel="noopener noreferrer" class="">d1b5d23</a>)</li>
<li class=""><strong>history:</strong> add shortcut to view log on linear history (<a href="https://github.com/ts-factory/bublik-ui/commit/1ee797bf113a55cef4fd8f9371896a4ece72aa4f" target="_blank" rel="noopener noreferrer" class="">1ee797b</a>)</li>
<li class=""><strong>log:</strong> add application for local json logs (<a href="https://github.com/ts-factory/bublik-ui/commit/6608e67946e01dcf947f0df2bd9d80086fe32264" target="_blank" rel="noopener noreferrer" class="">6608e67</a>)</li>
<li class=""><strong>run:</strong> [table] add help dialog with usage information (<a href="https://github.com/ts-factory/bublik-ui/commit/33690f7887a499a5132b46e452e674cbcd3dbc12" target="_blank" rel="noopener noreferrer" class="">33690f7</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.3.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>docker:</strong> disable check for prettier (<a href="https://github.com/ts-factory/bublik-ui/commit/17a31adcb949c6e81fbf91c0f3acdbde2104f37c" target="_blank" rel="noopener noreferrer" class="">17a31ad</a>)</li>
<li class=""><strong>docker:</strong> fix corepack keyid mismatch issue (<a href="https://github.com/ts-factory/bublik-ui/commit/31d4dc203c031eea0d3588cde9df9d3b45a7101b" target="_blank" rel="noopener noreferrer" class="">31d4dc2</a>)</li>
<li class=""><strong>run:</strong> [table] missing column visibility url state (<a href="https://github.com/ts-factory/bublik-ui/commit/a63a725f7bc1a97700e6b5d44ddae3a3f948e980" target="_blank" rel="noopener noreferrer" class="">a63a725</a>)</li>
<li class=""><strong>log:</strong> don't camelize keys to improve compatability (<a href="https://github.com/ts-factory/bublik-ui/commit/9c64f2ec3dad33ca3e407b24a3bcc37239d995bf" target="_blank" rel="noopener noreferrer" class="">9c64f2e</a>)</li>
<li class=""><strong>log:</strong> improve parameter value formatting in log meta block (<a href="https://github.com/ts-factory/bublik-ui/commit/a6c2399c2003a821a6c7dd65701ed7a05b461e7d" target="_blank" rel="noopener noreferrer" class="">a6c2399</a>)</li>
<li class=""><strong>run:</strong> display missing link to result (<a href="https://github.com/ts-factory/bublik-ui/commit/c7275eaaea3ca008bbc72070324f3048bbc8e23b" target="_blank" rel="noopener noreferrer" class="">c7275ea</a>)</li>
<li class=""><strong>types:</strong> fix typescript issues for tanstack react table (<a href="https://github.com/ts-factory/bublik-ui/commit/1b8d911064afdba01d0c8ee228f0a891221b15eb" target="_blank" rel="noopener noreferrer" class="">1b8d911</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v1.3.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> remove redundant config migration check (<a href="https://github.com/ts-factory/bublik-ui/commit/e03016d53b6a868b50fb26e52678526a9a70a200" target="_blank" rel="noopener noreferrer" class="">e03016d</a>)</li>
<li class=""><strong>log:</strong> [preview] change order of links (<a href="https://github.com/ts-factory/bublik-ui/commit/d37b6c9499697ab190fcd7935a0b2ebb70c7e713" target="_blank" rel="noopener noreferrer" class="">d37b6c9</a>)</li>
<li class="">remove redundant import (<a href="https://github.com/ts-factory/bublik-ui/commit/2de7d60338f92d9e537a6ae94084eeb9a21bfa57" target="_blank" rel="noopener noreferrer" class="">2de7d60</a>)</li>
<li class=""><strong>result:</strong> rename links from "measure" to "result" (<a href="https://github.com/ts-factory/bublik-ui/commit/d27d2b3c789c9f8270bc9111fc1a6230a283a87f" target="_blank" rel="noopener noreferrer" class="">d27d2b3</a>)</li>
<li class=""><strong>types:</strong> remove <code>test_name</code> from linear history data type (<a href="https://github.com/ts-factory/bublik-ui/commit/3eb226ecffe606d3e344d248cc771ee79b2c50b5" target="_blank" rel="noopener noreferrer" class="">3eb226e</a>)</li>
<li class=""><strong>ui:</strong> move help dialog to shared lib (<a href="https://github.com/ts-factory/bublik-ui/commit/ccaef6b27ba879e4fab1cdee2466446e776c40ec" target="_blank" rel="noopener noreferrer" class="">ccaef6b</a>)</li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v1.3.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.3.0#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>deploy:</strong> fix DB deploy (<a href="https://github.com/ts-factory/bublik/commit/a830c784b6d93745d1dc77c2e6db9ee6a6c28c91" target="_blank" rel="noopener noreferrer" class="">a830c78</a>), closes <a href="https://github.com/ts-factory/bublik/issues/135" target="_blank" rel="noopener noreferrer" class="">#135</a></li>
<li class=""><strong>importruns:</strong> fix objectives parsing (<a href="https://github.com/ts-factory/bublik/commit/aa1bb215665bcf9ede0a29477b0c3b647623f49e" target="_blank" rel="noopener noreferrer" class="">aa1bb21</a>)</li>
<li class=""><strong>middleware:</strong> fix the retrieval of dynamic settings (<a href="https://github.com/ts-factory/bublik/commit/482af58943a0673e4144d97feb6e1907835d39c8" target="_blank" rel="noopener noreferrer" class="">482af58</a>)</li>
<li class=""><strong>references:</strong> fix default value for issues (<a href="https://github.com/ts-factory/bublik/commit/89b8dd60b50441a58d3ba3556c4f1b59b1edb9d7" target="_blank" rel="noopener noreferrer" class="">89b8dd6</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-performance">⚡ Performance<a href="https://ts-factory.github.io/blog/release-v1.3.0#-performance" class="hash-link" aria-label="Direct link to ⚡ Performance" title="Direct link to ⚡ Performance" translate="no">​</a></h4>
<ul>
<li class=""><strong>middleware:</strong> improve performance (<a href="https://github.com/ts-factory/bublik/commit/ddd23f2f4a67207c2923e3ba0076d6cf778166d5" target="_blank" rel="noopener noreferrer" class="">ddd23f2</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-2">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.3.0#-new-feature-2" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>report:</strong> enhance point metadata with result type (<a href="https://github.com/ts-factory/bublik/commit/ec89a6f7969009cc5d9a3d8809f4f4203e933ab6" target="_blank" rel="noopener noreferrer" class="">ec89a6f</a>), closes <a href="https://github.com/ts-factory/bublik/issues/108" target="_blank" rel="noopener noreferrer" class="">#108</a></li>
<li class=""><strong>management:</strong> add reformatting step to align config with schema (<a href="https://github.com/ts-factory/bublik/commit/dc1ae033ed92e662b36d928d5b65c498344d8d37" target="_blank" rel="noopener noreferrer" class="">dc1ae03</a>)</li>
<li class=""><strong>auth:</strong> add system user support (<a href="https://github.com/ts-factory/bublik/commit/0e157b788d81502700ca2e86580c8691a8de57bc" target="_blank" rel="noopener noreferrer" class="">0e157b7</a>)</li>
<li class=""><strong>config:</strong> add references config object support (<a href="https://github.com/ts-factory/bublik/commit/b5495db6f93af8405fb7092fe67d85e94f31fbbf" target="_blank" rel="noopener noreferrer" class="">b5495db</a>)</li>
<li class=""><strong>config:</strong> add references config content validation (<a href="https://github.com/ts-factory/bublik/commit/3cabf8e2d3fda8b97dd377d40564e0940271e9a6" target="_blank" rel="noopener noreferrer" class="">3cabf8e</a>)</li>
<li class=""><strong>management:</strong> make it possible to migrate references config (<a href="https://github.com/ts-factory/bublik/commit/82594b2c16098340135522e68b6d80280b1b3aed" target="_blank" rel="noopener noreferrer" class="">82594b2</a>)</li>
<li class=""><strong>config:</strong> improve references content structure (<a href="https://github.com/ts-factory/bublik/commit/b285be7cc0cbb4e7466d2c0d6177ba42fd7280ff" target="_blank" rel="noopener noreferrer" class="">b285be7</a>)</li>
<li class=""><strong>management:</strong> add references content reformatting step (<a href="https://github.com/ts-factory/bublik/commit/576aae090aa13f7381bb441c778f4d38856a0e82" target="_blank" rel="noopener noreferrer" class="">576aae0</a>)</li>
<li class=""><strong>config:</strong> add meta and tags config objects support (<a href="https://github.com/ts-factory/bublik/commit/9d74fa06ea88d05d9d5679abe107ac3de332b4ff" target="_blank" rel="noopener noreferrer" class="">9d74fa0</a>)</li>
<li class=""><strong>config:</strong> add meta and tags config content validation (<a href="https://github.com/ts-factory/bublik/commit/e66af99e1809fd249b7bc16945df71491fe7f551" target="_blank" rel="noopener noreferrer" class="">e66af99</a>)</li>
<li class=""><strong>management:</strong> make it possible to migrate meta and tags configs (<a href="https://github.com/ts-factory/bublik/commit/2a906f72760cc2167f4d8ba64aae3e03159ac2ee" target="_blank" rel="noopener noreferrer" class="">2a906f7</a>)</li>
<li class=""><strong>deploy:</strong> update deployment to initialize configs in the DB (<a href="https://github.com/ts-factory/bublik/commit/56dfec2863ba3c7a0ff709f25f7383e328b962c1" target="_blank" rel="noopener noreferrer" class="">56dfec2</a>)</li>
<li class=""><strong>config:</strong> make meta and tags configs optional (<a href="https://github.com/ts-factory/bublik/commit/c6bbf9463bfdb8c18f4b16c6b37c92d5ffae31c4" target="_blank" rel="noopener noreferrer" class="">c6bbf94</a>)</li>
<li class=""><strong>deploy:</strong> make config directory creation optional (<a href="https://github.com/ts-factory/bublik/commit/faabb974569fbceeb2835bb58509f490377279c8" target="_blank" rel="noopener noreferrer" class="">faabb97</a>)</li>
<li class=""><strong>deploy:</strong> make config specification optional (<a href="https://github.com/ts-factory/bublik/commit/9d179adbd87db5e28bb383e7157153b1119dcc43" target="_blank" rel="noopener noreferrer" class="">9d179ad</a>)</li>
<li class=""><strong>urls:</strong> make external links configurable (<a href="https://github.com/ts-factory/bublik/commit/f1663959735b8780828bb2254c98f58f43f2afeb" target="_blank" rel="noopener noreferrer" class="">f166395</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v1.3.0#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>config:</strong> improve maintainability of config management (<a href="https://github.com/ts-factory/bublik/commit/458304a65a1531d3b29272644d91ca6ff0d422a4" target="_blank" rel="noopener noreferrer" class="">458304a</a>)</li>
<li class=""><strong>config:</strong> simplify config retrieval function names (<a href="https://github.com/ts-factory/bublik/commit/d61b2b0522c1a25ab21fee9f93f55eeee0c4224c" target="_blank" rel="noopener noreferrer" class="">d61b2b0</a>)</li>
<li class=""><strong>config:</strong> improve global config retrieval reusability (<a href="https://github.com/ts-factory/bublik/commit/04d33fa6280e11cbb48daa74e1def1fdb0a86571" target="_blank" rel="noopener noreferrer" class="">04d33fa</a>)</li>
<li class=""><strong>config:</strong> centralize and improve config services (<a href="https://github.com/ts-factory/bublik/commit/7772de7263917acbd303472fae00c8c43971ffeb" target="_blank" rel="noopener noreferrer" class="">7772de7</a>)</li>
<li class=""><strong>settings:</strong> make simple logger format more readable (<a href="https://github.com/ts-factory/bublik/commit/dbc6734219f18985d970b16cffa4208725835751" target="_blank" rel="noopener noreferrer" class="">dbc6734</a>)</li>
<li class=""><strong>management:</strong> simplify configs reformatting analysis (<a href="https://github.com/ts-factory/bublik/commit/f9b0c21eff58df09bf7146c05fa9eea042a88b8c" target="_blank" rel="noopener noreferrer" class="">f9b0c21</a>)</li>
<li class=""><strong>management:</strong> make config reformating more scalable (<a href="https://github.com/ts-factory/bublik/commit/075f1d80717ab517d539d60e4aabc5bfdcdf5d5a" target="_blank" rel="noopener noreferrer" class="">075f1d8</a>)</li>
<li class=""><strong>config:</strong> improve config handling encapsulation (<a href="https://github.com/ts-factory/bublik/commit/ad1b2a438d88fb20bd6ceb78b1c4f650812dd416" target="_blank" rel="noopener noreferrer" class="">ad1b2a4</a>)</li>
<li class=""><strong>config:</strong> encapsulate config initialization logic (<a href="https://github.com/ts-factory/bublik/commit/fa6fb50785786efdc082b0ae13294b82d442a641" target="_blank" rel="noopener noreferrer" class="">fa6fb50</a>)</li>
<li class=""><strong>config/management:</strong> simplify and make config migration extensible (<a href="https://github.com/ts-factory/bublik/commit/00841c486dc506dd12c934d97fa7ba95f4b9fb8c" target="_blank" rel="noopener noreferrer" class="">00841c4</a>)</li>
<li class=""><strong>management:</strong> centralize config descriptions for migration (<a href="https://github.com/ts-factory/bublik/commit/973129968ac4e94420f4080532d8851f015536d1" target="_blank" rel="noopener noreferrer" class="">9731299</a>)</li>
<li class=""><strong>config:</strong> align attr retrieval with references config source (<a href="https://github.com/ts-factory/bublik/commit/8cda71a84de7a9c4f8e6fd50ce5d6c4057ab29c2" target="_blank" rel="noopener noreferrer" class="">8cda71a</a>)</li>
<li class=""><strong>utils:</strong> refactor possible int conversion (<a href="https://github.com/ts-factory/bublik/commit/4d0f48592b2b62b18d6eba8872bf04fd0729a6b4" target="_blank" rel="noopener noreferrer" class="">4d0f485</a>)</li>
<li class=""><strong>config:</strong> align attr retrieval with meta and tags configs source (<a href="https://github.com/ts-factory/bublik/commit/bb1946529cb2fc39f2081f241308490588ba076b" target="_blank" rel="noopener noreferrer" class="">bb19465</a>), closes <a href="https://github.com/ts-factory/bublik/issues/118" target="_blank" rel="noopener noreferrer" class="">#118</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v1.3.0#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>cleanup:</strong> improve code style and maintainability (<a href="https://github.com/ts-factory/bublik/commit/8cbfc58d01d1e7ff5790b22279fd1fcf39c727a5" target="_blank" rel="noopener noreferrer" class="">8cbfc58</a>)</li>
<li class=""><strong>settings:</strong> remove retrieval of unused modules (<a href="https://github.com/ts-factory/bublik/commit/3880756b15436efbb241cae0c9032206f97637d2" target="_blank" rel="noopener noreferrer" class="">3880756</a>)</li>
<li class=""><strong>management:</strong> make function name more accurate (<a href="https://github.com/ts-factory/bublik/commit/488d9bbb99024247dfe2f8412c182b9d5e806983" target="_blank" rel="noopener noreferrer" class="">488d9bb</a>)</li>
<li class=""><strong>management:</strong> ensure consistent output style (<a href="https://github.com/ts-factory/bublik/commit/e0bf4d50647750c575d78c92b9628381e1e6d9e8" target="_blank" rel="noopener noreferrer" class="">e0bf4d5</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v1.1.0]]></title>
        <id>https://ts-factory.github.io/blog/release-v1.1.0</id>
        <link href="https://ts-factory.github.io/blog/release-v1.1.0"/>
        <updated>2025-01-29T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[🎉 Exciting Updates in the Latest Release! 🎉]]></summary>
        <content type="html"><![CDATA[<p>🎉 <strong>Exciting Updates in the Latest Release!</strong> 🎉</p>
<p>This release introduces several new features, design improvements, and bug fixes, with a special focus on enhancing the log experience and sidebar usability.</p>
<p>🔍 <strong>Key Highlights</strong>:</p>
<ul>
<li class="">
<p><strong>Log Enhancements</strong>:</p>
<ul>
<li class="">Added a loading skeleton for log loading to improve user experience during wait times.</li>
<li class="">Introduced a scroll-to-top button on the log page for easier navigation.</li>
<li class="">Reworked the log header and table design, including a new nested log tree indicator and improved toolbar functionality.</li>
</ul>
</li>
<li class="">
<p><strong>Sidebar Improvements</strong>:</p>
<ul>
<li class="">Added help dialogs for sidebar links, making it easier for users to access guidance directly from the sidebar.</li>
<li class="">Included a tip on how to access the help dialog from the sidebar, enhancing user onboarding.</li>
</ul>
</li>
<li class="">
<p><strong>Import Functionality</strong>:</p>
<ul>
<li class="">Added links to flower, run, and log from the import log, streamlining navigation.</li>
<li class="">Allowed URL links to specific logs, improving accessibility and sharing capabilities.</li>
<li class="">Improved the styling of the import table and form for a more polished look.</li>
</ul>
</li>
<li class="">
<p><strong>Bug Fixes &amp; Performance</strong>:</p>
<ul>
<li class="">Fixed various caching issues to ensure data is up-to-date and accurate.</li>
<li class="">Addressed UI inconsistencies, such as missing separator borders and overflowing content in tables.</li>
</ul>
</li>
</ul>
<p>These updates aim to provide a smoother, more intuitive user experience, with particular attention to the log and sidebar interactions.</p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v1.1.0#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="updated-log-design">Updated Log Design<a href="https://ts-factory.github.io/blog/release-v1.1.0#updated-log-design" class="hash-link" aria-label="Direct link to Updated Log Design" title="Direct link to Updated Log Design" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Updated Log Design" src="https://ts-factory.github.io/assets/images/log-shortcut-8b63e52195a7712e4b853f7cc759bdaa.webp" width="3354" height="2076" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="new-help-messages">New Help Messages<a href="https://ts-factory.github.io/blog/release-v1.1.0#new-help-messages" class="hash-link" aria-label="Direct link to New Help Messages" title="Direct link to New Help Messages" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Help Sidebar" src="https://ts-factory.github.io/assets/images/help-sidebar-bdfab6252c4a115dd5709819c1dc2242.webp" width="3376" height="2014" class="img_yd8J"></p>
<p><img decoding="async" loading="lazy" alt="Help Dialog" src="https://ts-factory.github.io/assets/images/help-dialog-81896c355f5a14935e2e99a407318f3d.webp" width="3376" height="2010" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v1.1.0#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v1.1.0#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.1.0</code></li>
<li class=""><code>./scripts/deploy --steps pip_requirements django_settings run_services</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v1.1.0#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository.</li>
<li class="">Synchronize the mirrors.</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.1.0</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="documentation">Documentation<a href="https://ts-factory.github.io/blog/release-v1.1.0#documentation" class="hash-link" aria-label="Direct link to Documentation" title="Direct link to Documentation" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-warning admonition__kCM alert alert--warning"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</div><div class="admonitionContent_ZufO"><p>This documentation is a work in progress. While we ensure all current information is accurate, we're actively expanding and refining the content.</p></div></div>
<p>Static documentation has been added to enhance user experience and provide comprehensive guidance for Bublik instance deployment and usage. This documentation can be hosted alongside your Bublik instance for easy reference.</p>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="installation-steps">Installation Steps<a href="https://ts-factory.github.io/blog/release-v1.1.0#installation-steps" class="hash-link" aria-label="Direct link to Installation Steps" title="Direct link to Installation Steps" translate="no">​</a></h4>
<ol>
<li class="">
<p>Clone the Bublik Documentation Deps repository:</p>
<div class="language-bash codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-bash codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">git</span><span class="token plain"> clone https://github.com/ts-factory/bublik-docs.git</span><br></div></code></pre></div></div>
</li>
<li class="">
<p>Select needed folder from <code>./dist/&lt;built_docs&gt;</code></p>
</li>
<li class="">
<p>Update your Bublik configuration by adding the documentation path to <code>settings.py</code>:</p>
<div class="language-python codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-python codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token plain">BUBLIK_UI_DOCS_DIR </span><span class="token operator" style="color:#393A34">=</span><span class="token plain"> </span><span class="token string" style="color:#e3116c">"/path/to/your/build/directory/dist/ts-factory"</span><br></div></code></pre></div></div>
</li>
<li class="">
<p>Verify the configuration by checking the path in settings, run commands inside bublik django cloned repo:</p>
<div class="language-bash codeBlockContainer_VDOa theme-code-block" style="--prism-color:#393A34;--prism-background-color:#f6f8fa"><div class="codeBlockContent_nLrD"><pre tabindex="0" class="prism-code language-bash codeBlock_kdyN thin-scrollbar" style="color:#393A34;background-color:#f6f8fa"><code class="codeBlockLines_uI9L"><div class="token-line" style="color:#393A34"><span class="token function" style="color:#d73a49">cat</span><span class="token plain"> ./bublik/settings.py </span><span class="token operator" style="color:#393A34">|</span><span class="token plain"> </span><span class="token function" style="color:#d73a49">grep</span><span class="token plain"> BUBLIK_UI_DOCS_DIR</span><br></div></code></pre></div></div>
</li>
</ol>
<p>After completing these steps, the documentation will be accessible through your Bublik instance, providing users with immediate access to guides, API references, and usage instructions.</p>
<hr>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v1.1.0#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v1.1.0#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.1.0#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>docs:</strong> add docs link to sidebar under help section (<a href="https://github.com/ts-factory/bublik-ui/commit/f3668075b372a5012ab5e82f9c7751a8b76bd683" target="_blank" rel="noopener noreferrer" class="">f366807</a>)</li>
<li class=""><strong>help:</strong> add tip on how to access help dialog from sidebar (<a href="https://github.com/ts-factory/bublik-ui/commit/a2aceeff45af59c1bcbc71d951d89a2f9f8f788f" target="_blank" rel="noopener noreferrer" class="">a2aceef</a>)</li>
<li class=""><strong>import:</strong> add links to flower, run, log from import log (<a href="https://github.com/ts-factory/bublik-ui/commit/6897567658fdc8b76f941c2efe44befe5dabae55" target="_blank" rel="noopener noreferrer" class="">6897567</a>)</li>
<li class=""><strong>import:</strong> allow url links to specific logs (<a href="https://github.com/ts-factory/bublik-ui/commit/ef7210a707544bd06f58d9936553271369aec6ed" target="_blank" rel="noopener noreferrer" class="">ef7210a</a>)</li>
<li class=""><strong>import:</strong> invalidate import events table on submit (<a href="https://github.com/ts-factory/bublik-ui/commit/6dfdcf8c5f984a6137fc0ec5981f7af8d1c71fbe" target="_blank" rel="noopener noreferrer" class="">6dfdcf8</a>)</li>
<li class=""><strong>log:</strong> add loading skeleton for log loading (<a href="https://github.com/ts-factory/bublik-ui/commit/f367cd070fbaae3e3f9f11ba90ecc44dd8a319ca" target="_blank" rel="noopener noreferrer" class="">f367cd0</a>)</li>
<li class=""><strong>log:</strong> add scroll to top button on log page (<a href="https://github.com/ts-factory/bublik-ui/commit/45ae4a27ccca84e6e159957caf05939af4a5fc52" target="_blank" rel="noopener noreferrer" class="">45ae4a2</a>)</li>
<li class=""><strong>run:</strong> [objective] add popover with full content (<a href="https://github.com/ts-factory/bublik-ui/commit/63abe5ad8484f2f7fe252d4c8a0ff16c439e7c92" target="_blank" rel="noopener noreferrer" class="">63abe5a</a>)</li>
<li class=""><strong>sidebar:</strong> add help dialogs for sidebar links (<a href="https://github.com/ts-factory/bublik-ui/commit/2c8e162fdf92802de6a42072ba14d6c12b039f5f" target="_blank" rel="noopener noreferrer" class="">2c8e162</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v1.1.0#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>layout:</strong> fix sidebar and drawer height on tablets (<a href="https://github.com/ts-factory/bublik-ui/commit/b59056db8da6b83f18ea69276ec194a409f7b65c" target="_blank" rel="noopener noreferrer" class="">b59056d</a>)</li>
<li class=""><strong>log:</strong> [header] fix wrap for multiline objective (<a href="https://github.com/ts-factory/bublik-ui/commit/ee4a06655d0b24ced80fe5f2a5499937c0c8dc64" target="_blank" rel="noopener noreferrer" class="">ee4a066</a>)</li>
<li class=""><strong>log:</strong> [table] change font size to 13px (<a href="https://github.com/ts-factory/bublik-ui/commit/e40d0890e7848702daf0dd476eca5168e732d7c3" target="_blank" rel="noopener noreferrer" class="">e40d089</a>)</li>
<li class=""><strong>log:</strong> [table] make colors dimmer (<a href="https://github.com/ts-factory/bublik-ui/commit/ef17d4038ce82e8a289d40241853ce085e1811cd" target="_blank" rel="noopener noreferrer" class="">ef17d40</a>)</li>
<li class=""><strong>log:</strong> add Geist Mono font as default monospace (<a href="https://github.com/ts-factory/bublik-ui/commit/4277aac70696c7bcfa09fe6ed10249837dd5d4d7" target="_blank" rel="noopener noreferrer" class="">4277aac</a>)</li>
<li class=""><strong>log:</strong> reduce margin bottom and set mono font for log (<a href="https://github.com/ts-factory/bublik-ui/commit/93f637c3a574c1da98c86b79ba837ce1974b84b6" target="_blank" rel="noopener noreferrer" class="">93f637c</a>)</li>
<li class=""><strong>run:</strong> [table] make cell padding smaller (<a href="https://github.com/ts-factory/bublik-ui/commit/9929dba7b23d0db97d41269a1dc5ae39f9337a81" target="_blank" rel="noopener noreferrer" class="">9929dba</a>)</li>
<li class=""><strong>runs:</strong> [charts] add better separation between different charts (<a href="https://github.com/ts-factory/bublik-ui/commit/852413199eed648db16a662d577ddc620e227c25" target="_blank" rel="noopener noreferrer" class="">8524131</a>)</li>
<li class=""><strong>runs:</strong> add icon for submit and change button order (<a href="https://github.com/ts-factory/bublik-ui/commit/3f6c71294977adb3036facd12134796397d1edf4" target="_blank" rel="noopener noreferrer" class="">3f6c712</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.1.0#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>build:</strong> add <code>.nx</code> and <code>dist</code> folders to <code>.dockerignore</code> (<a href="https://github.com/ts-factory/bublik-ui/commit/902e27c3dc52e73910df9406800d8fe2202b22ac" target="_blank" rel="noopener noreferrer" class="">902e27c</a>)</li>
<li class=""><strong>dashboard:</strong> refetch dashboard on mount and bypass browser cache (<a href="https://github.com/ts-factory/bublik-ui/commit/c665f8eedb5c7096d631462980ce808980f9fdb7" target="_blank" rel="noopener noreferrer" class="">c665f8e</a>)</li>
<li class=""><strong>history:</strong> invalidate cache on submit click (<a href="https://github.com/ts-factory/bublik-ui/commit/328130c2c72466d6b1ee09f49096dae6bf57e73d" target="_blank" rel="noopener noreferrer" class="">328130c</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/90" target="_blank" rel="noopener noreferrer" class="">#90</a></li>
<li class=""><strong>import:</strong> bypass browser cache when polling logs (<a href="https://github.com/ts-factory/bublik-ui/commit/e8dc121093006437ce208ea73e2cd0fcab482833" target="_blank" rel="noopener noreferrer" class="">e8dc121</a>)</li>
<li class=""><strong>import:</strong> fix import log events table caching (<a href="https://github.com/ts-factory/bublik-ui/commit/5c79e7b29ee30cc4684a35d977e3010218208909" target="_blank" rel="noopener noreferrer" class="">5c79e7b</a>)</li>
<li class=""><strong>log:</strong> [table] include #T: Verdict in scenario filter (<a href="https://github.com/ts-factory/bublik-ui/commit/e6847dfc7db34d5a3075d70cddfa785918286683" target="_blank" rel="noopener noreferrer" class="">e6847df</a>)</li>
<li class=""><strong>log:</strong> don't use custom redirect for JSON logs in development (<a href="https://github.com/ts-factory/bublik-ui/commit/6e03bf01ceadfe04f291a443c39d14509d52b856" target="_blank" rel="noopener noreferrer" class="">6e03bf0</a>)</li>
<li class=""><strong>run:</strong> fix test row overflowing results when objective too big (<a href="https://github.com/ts-factory/bublik-ui/commit/566a518b281f722a3d807c15cfb7094f06edad7e" target="_blank" rel="noopener noreferrer" class="">566a518</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/251" target="_blank" rel="noopener noreferrer" class="">#251</a></li>
<li class=""><strong>runs:</strong> [table] invalidate cached data on submit (<a href="https://github.com/ts-factory/bublik-ui/commit/1ea7a3c6afd71fcd2c5cd9021cff1c621edbcf88" target="_blank" rel="noopener noreferrer" class="">1ea7a3c</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/90" target="_blank" rel="noopener noreferrer" class="">#90</a></li>
<li class=""><strong>runs:</strong> refetch runs list on mount and bypass browser cache (<a href="https://github.com/ts-factory/bublik-ui/commit/ca9c98412bf5b0aa39cf77ddddb51bdf2d5cdf64" target="_blank" rel="noopener noreferrer" class="">ca9c984</a>)</li>
<li class=""><strong>ui:</strong> missing separator border (<a href="https://github.com/ts-factory/bublik-ui/commit/4c13552e5ec947373db170c010344c1126cbe100" target="_blank" rel="noopener noreferrer" class="">4c13552</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-code-refactoring">♻ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v1.1.0#-code-refactoring" class="hash-link" aria-label="Direct link to ♻ Code Refactoring" title="Direct link to ♻ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>import:</strong> improve styling of import table and form (<a href="https://github.com/ts-factory/bublik-ui/commit/b1aa6d37e6ac55a1101fb7297acb79b098142296" target="_blank" rel="noopener noreferrer" class="">b1aa6d3</a>)</li>
<li class=""><strong>log:</strong> [header] full refactor of log meta (<a href="https://github.com/ts-factory/bublik-ui/commit/50ce8d9a911616c64d3c4d14e740ab5508a5e1d2" target="_blank" rel="noopener noreferrer" class="">50ce8d9</a>)</li>
<li class=""><strong>log:</strong> [table] add log tree nest indicator, integrate toolbar (<a href="https://github.com/ts-factory/bublik-ui/commit/83453f63598d3f4f703ec1da8d15a56b18db791e" target="_blank" rel="noopener noreferrer" class="">83453f6</a>)</li>
<li class=""><strong>log:</strong> [toolbar] fix bugs with toolbar scrolling and jumping (<a href="https://github.com/ts-factory/bublik-ui/commit/fde2d21fcde62d59c8ebd05a485aba98a61487fe" target="_blank" rel="noopener noreferrer" class="">fde2d21</a>)</li>
<li class=""><strong>log:</strong> display packages test lists as table (<a href="https://github.com/ts-factory/bublik-ui/commit/1c528f6994cc878998ae333b5950aa37cb01e1fb" target="_blank" rel="noopener noreferrer" class="">1c528f6</a>)</li>
<li class=""><strong>ui:</strong> allow greater composability for scroll to top component (<a href="https://github.com/ts-factory/bublik-ui/commit/26d84e185179c8a34413beecb414e1dbb963f971" target="_blank" rel="noopener noreferrer" class="">26d84e1</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v1.1.0#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>build:</strong> bump docker images to node 22.13-alpine LTS (<a href="https://github.com/ts-factory/bublik-ui/commit/49285b8ccde4a9ede0d1dacb8b3f8e259550093f" target="_blank" rel="noopener noreferrer" class="">49285b8</a>)</li>
<li class=""><strong>docs:</strong> remove changelog from react app (<a href="https://github.com/ts-factory/bublik-ui/commit/4423025d12bfde034299d27ab3b84d3605184fc2" target="_blank" rel="noopener noreferrer" class="">4423025</a>)</li>
<li class=""><strong>log:</strong> add <code>requirements</code> to log header schema (<a href="https://github.com/ts-factory/bublik-ui/commit/a426c2977ded408277637c89663db8209b7561f0" target="_blank" rel="noopener noreferrer" class="">a426c29</a>)</li>
<li class=""><strong>log:</strong> apply format (<a href="https://github.com/ts-factory/bublik-ui/commit/0786e4dc3693ca35b3d96b2475ceac97f9e5cd98" target="_blank" rel="noopener noreferrer" class="">0786e4d</a>)</li>
<li class=""><strong>log:</strong> remove toast with delta anchor line information (<a href="https://github.com/ts-factory/bublik-ui/commit/f7f316276c3d2123909af3a3c65f6be771d08276" target="_blank" rel="noopener noreferrer" class="">f7f3162</a>)</li>
<li class=""><strong>sidebar:</strong> change labels for history, measurements for clarity (<a href="https://github.com/ts-factory/bublik-ui/commit/d29c4287a338813ccf750b0bc2cddc9588588843" target="_blank" rel="noopener noreferrer" class="">d29c428</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/259" target="_blank" rel="noopener noreferrer" class="">#259</a></li>
</ul>
<hr>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v1.1.0#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.1.0#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>requirements:</strong> fix debug toolbar after Django version upgrade (<a href="https://github.com/ts-factory/bublik/commit/f55b9a3e522e4e2b839010f9ecfd7cf608ab155a" target="_blank" rel="noopener noreferrer" class="">f55b9a3</a>)</li>
<li class=""><strong>report:</strong> fix x-axis argument values retrieval (<a href="https://github.com/ts-factory/bublik/commit/78a0046263da611de95ea17038abefd1d43d9d52" target="_blank" rel="noopener noreferrer" class="">78a0046</a>)</li>
<li class=""><strong>report:</strong> fix chart wagnings retrieval (<a href="https://github.com/ts-factory/bublik/commit/b0ad30cb647b7259f665c7a8fa532ac0a0f79dba" target="_blank" rel="noopener noreferrer" class="">b0ad30c</a>)</li>
<li class=""><strong>report:</strong> fix argument type conversion (<a href="https://github.com/ts-factory/bublik/commit/020277fd6d3f187435e09a45433d98e8598d1d14" target="_blank" rel="noopener noreferrer" class="">020277f</a>)</li>
<li class=""><strong>report:</strong> fix common arguments detection (<a href="https://github.com/ts-factory/bublik/commit/a0e47fafaf626af1349105909949a2505319e24a" target="_blank" rel="noopener noreferrer" class="">fafaf62</a>), closes <a href="https://github.com/ts-factory/bublik/issues/110" target="_blank" rel="noopener noreferrer" class="">#110</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature-1">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.1.0#-new-feature-1" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>docs:</strong> serve static files for documentation (<a href="https://github.com/ts-factory/bublik/commit/8eef1901508b74b441a4efecaf59574438915b73" target="_blank" rel="noopener noreferrer" class="">8eef190</a>)</li>
<li class=""><strong>settings:</strong> enhance email configuration flexibility (<a href="https://github.com/ts-factory/bublik/commit/e3b6b42a584026b988e53fa49b77bfd5ebf2757a" target="_blank" rel="noopener noreferrer" class="">e3b6b42</a>), closes <a href="https://github.com/ts-factory/bublik/issues/116" target="_blank" rel="noopener noreferrer" class="">#116</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v1.1.0#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>chore:</strong> sort exports from api_v2 module (<a href="https://github.com/ts-factory/bublik/commit/d65fefc09743664ab3e34743d7a8ed74df68da1d" target="_blank" rel="noopener noreferrer" class="">d65fefc</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
    <entry>
        <title type="html"><![CDATA[Release v1.0.2]]></title>
        <id>https://ts-factory.github.io/blog/release-v1.0.2</id>
        <link href="https://ts-factory.github.io/blog/release-v1.0.2"/>
        <updated>2024-12-04T00:00:00.000Z</updated>
        <summary type="html"><![CDATA[🎉 We are thrilled to announce Bublik v1.0.2! 🎉]]></summary>
        <content type="html"><![CDATA[<p>🎉 <strong>We are thrilled to announce Bublik v1.0.2!</strong> 🎉</p>
<p>This release brings mainly internal changes with some enhancements to report and measurements views.</p>
<p>🔍 <strong>Key Highlights</strong>:</p>
<ul>
<li class=""><strong>Log Preview</strong>: Easily open the log preview by clicking on a report table cell or a chart point.</li>
<li class=""><strong>Run Header Group Labels</strong>: Added labels for expected and unexpected results to make columns easier to understand and reduce confusion.</li>
<li class=""><strong>Import Performance</strong>: The speed of importing runs with streaming measurements has increased 3.5 times.</li>
<li class=""><strong>Measurements</strong>: All measurement results are displayed, with the format adapted to views and their specific context.</li>
</ul>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="highlights">Highlights<a href="https://ts-factory.github.io/blog/release-v1.0.2#highlights" class="hash-link" aria-label="Direct link to Highlights" title="Direct link to Highlights" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="report-table--chart">Report Table &amp; Chart<a href="https://ts-factory.github.io/blog/release-v1.0.2#report-table--chart" class="hash-link" aria-label="Direct link to Report Table &amp; Chart" title="Direct link to Report Table &amp; Chart" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-info admonition__kCM alert alert--info"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 14 16"><path fill-rule="evenodd" d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"></path></svg></span>info</div><div class="admonitionContent_ZufO"><p>Press <code>Ctrl</code> to scroll inside table or zoom chart</p></div></div>
<p><img decoding="async" loading="lazy" alt="Report" src="https://ts-factory.github.io/assets/images/report-table-6b8554321e689daf9f9958ab5d269e4e.webp" width="3376" height="2012" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="report-log-preview">Report Log Preview<a href="https://ts-factory.github.io/blog/release-v1.0.2#report-log-preview" class="hash-link" aria-label="Direct link to Report Log Preview" title="Direct link to Report Log Preview" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Report Preview" src="https://ts-factory.github.io/assets/images/report-log-preview-79f88a77de5571dbeabe3a6b867ff37b.webp" width="3408" height="2034" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="history-preview">History Preview<a href="https://ts-factory.github.io/blog/release-v1.0.2#history-preview" class="hash-link" aria-label="Direct link to History Preview" title="Direct link to History Preview" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="History Preview" src="https://ts-factory.github.io/assets/images/history-preview-5c1e7590530cd5a0d6a56c53884158bf.webp" width="3376" height="2012" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="run-header-groups">Run Header Groups<a href="https://ts-factory.github.io/blog/release-v1.0.2#run-header-groups" class="hash-link" aria-label="Direct link to Run Header Groups" title="Direct link to Run Header Groups" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Run Header Groups" src="https://ts-factory.github.io/assets/images/run-headers-619cfbbc4053550d50fcb0efa0c77836.webp" width="3413" height="2035" class="img_yd8J"></p>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="measurement-results">Measurement Results<a href="https://ts-factory.github.io/blog/release-v1.0.2#measurement-results" class="hash-link" aria-label="Direct link to Measurement Results" title="Direct link to Measurement Results" translate="no">​</a></h3>
<p><img decoding="async" loading="lazy" alt="Measurement Results" src="https://ts-factory.github.io/assets/images/measurements-778618622a38c1419da3016b4672d21f.webp" width="4564" height="2748" class="img_yd8J"></p>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="admin-section">Admin Section<a href="https://ts-factory.github.io/blog/release-v1.0.2#admin-section" class="hash-link" aria-label="Direct link to Admin Section" title="Direct link to Admin Section" translate="no">​</a></h2>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>Before starting the update, create a database backup to ensure data safety in case of any unexpected issues during the process.</p></div></div>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend-update">Backend Update<a href="https://ts-factory.github.io/blog/release-v1.0.2#backend-update" class="hash-link" aria-label="Direct link to Backend Update" title="Direct link to Backend Update" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="base-steps">Base Steps<a href="https://ts-factory.github.io/blog/release-v1.0.2#base-steps" class="hash-link" aria-label="Direct link to Base Steps" title="Direct link to Base Steps" translate="no">​</a></h4>
<ol>
<li class=""><code>cd bublik</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.0.2</code></li>
<li class=""><code>./scripts/deploy --steps pip_requirements migrate_db django_settings run_services</code></li>
</ol>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="additional-steps">Additional Steps<a href="https://ts-factory.github.io/blog/release-v1.0.2#additional-steps" class="hash-link" aria-label="Direct link to Additional Steps" title="Direct link to Additional Steps" translate="no">​</a></h4>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>Since data migration can take a long time, stop side services to avoid potential disruptions or conflicts during the migration process: <code>./scripts/deploy --steps run_side_servers</code> + <code>stop</code>. Restart them once the process is complete: <code>./scripts/deploy --steps run_side_servers</code> + <code>start</code>.</p></div></div>
<div class="theme-admonition theme-admonition-tip admonition__kCM alert alert--success"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M6.5 0C3.48 0 1 2.19 1 5c0 .92.55 2.25 1 3 1.34 2.25 1.78 2.78 2 4v1h5v-1c.22-1.22.66-1.75 2-4 .45-.75 1-2.08 1-3 0-2.81-2.48-5-5.5-5zm3.64 7.48c-.25.44-.47.8-.67 1.11-.86 1.41-1.25 2.06-1.45 3.23-.02.05-.02.11-.02.17H5c0-.06 0-.13-.02-.17-.2-1.17-.59-1.83-1.45-3.23-.2-.31-.42-.67-.67-1.11C2.44 6.78 2 5.65 2 5c0-2.2 2.02-4 4.5-4 1.22 0 2.36.42 3.22 1.19C10.55 2.94 11 3.94 11 5c0 .66-.44 1.78-.86 2.48zM4 14h5c-.23 1.14-1.3 2-2.5 2s-2.27-.86-2.5-2z"></path></svg></span>tip</div><div class="admonitionContent_ZufO"><p>During the update, use <code>tmux</code> or <code>screen</code> to keep your session running in the background, ensuring it won’t be interrupted if the connection is lost.</p></div></div>
<ol>
<li class="">Activate the virtual environment: <code>source .env/bin/activate</code></li>
<li class="">Call the configuration reformatting command: <code>python manage.py reformat_configs</code>
<div class="theme-admonition theme-admonition-warning admonition__kCM alert alert--warning"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8.893 1.5c-.183-.31-.52-.5-.887-.5s-.703.19-.886.5L.138 13.499a.98.98 0 0 0 0 1.001c.193.31.53.501.886.501h13.964c.367 0 .704-.19.877-.5a1.03 1.03 0 0 0 .01-1.002L8.893 1.5zm.133 11.497H6.987v-2.003h2.039v2.003zm0-3.004H6.987V5.987h2.039v4.006z"></path></svg></span>warning</div><div class="admonitionContent_ZufO"><p>Configurations whose automatic formatting has failed will not be supported by Bublik. Either reformat them manually or delete.</p></div></div>
</li>
<li class="">Call the database cleanup command: <code>python manage.py cleanup_db</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend-update">Frontend Update<a href="https://ts-factory.github.io/blog/release-v1.0.2#frontend-update" class="hash-link" aria-label="Direct link to Frontend Update" title="Direct link to Frontend Update" translate="no">​</a></h3>
<ol>
<li class="">Trigger the workflow in your frontend repository.</li>
<li class="">Synchronize the mirrors.</li>
<li class=""><code>cd bublik-ui</code></li>
<li class=""><code>git remote update</code></li>
<li class=""><code>git checkout v1.0.2</code></li>
</ol>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="additional">Additional<a href="https://ts-factory.github.io/blog/release-v1.0.2#additional" class="hash-link" aria-label="Direct link to Additional" title="Direct link to Additional" translate="no">​</a></h3>
<div class="theme-admonition theme-admonition-danger admonition__kCM alert alert--danger"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>danger</div><div class="admonitionContent_ZufO"><p>It is necessary to re-import runs that was imported when Bublik was using versions v0.6.0 to v1.0.0 to avoid potential errors in statistical calculations and charts in history.</p></div></div>
<div class="theme-admonition theme-admonition-danger admonition__kCM alert alert--danger"><div class="admonitionHeading_ESr_"><span class="admonitionIcon_fD2b"><svg viewBox="0 0 12 16"><path fill-rule="evenodd" d="M5.05.31c.81 2.17.41 3.38-.52 4.31C3.55 5.67 1.98 6.45.9 7.98c-1.45 2.05-1.7 6.53 3.53 7.7-2.2-1.16-2.67-4.52-.3-6.61-.61 2.03.53 3.33 1.94 2.86 1.39-.47 2.3.53 2.27 1.67-.02.78-.31 1.44-1.13 1.81 3.42-.59 4.78-3.42 4.78-5.56 0-2.84-2.53-3.22-1.25-5.61-1.52.13-2.03 1.13-1.89 2.75.09 1.08-1.02 1.8-1.86 1.33-.67-.41-.66-1.19-.06-1.78C8.18 5.31 8.68 2.45 5.05.32L5.03.3l.02.01z"></path></svg></span>danger</div><div class="admonitionContent_ZufO"><p>Avoid reverting to earlier versions after upgrading to v1.0.*, as this could lead to irreversible data loss.</p></div></div>
<h2 class="anchor anchorTargetStickyNavbar_7zQ1" id="changelog">Changelog<a href="https://ts-factory.github.io/blog/release-v1.0.2#changelog" class="hash-link" aria-label="Direct link to Changelog" title="Direct link to Changelog" translate="no">​</a></h2>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="frontend">Frontend<a href="https://ts-factory.github.io/blog/release-v1.0.2#frontend" class="hash-link" aria-label="Direct link to Frontend" title="Direct link to Frontend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-feature">🚀 New Feature<a href="https://ts-factory.github.io/blog/release-v1.0.2#-new-feature" class="hash-link" aria-label="Direct link to 🚀 New Feature" title="Direct link to 🚀 New Feature" translate="no">​</a></h4>
<ul>
<li class=""><strong>measurements:</strong> added endpoint and types for single measurement plot (<a href="https://github.com/ts-factory/bublik-ui/commit/3b8df42ec891fab6b79d03753b94268c3cee6085" target="_blank" rel="noopener noreferrer" class="">3b8df42</a>)</li>
<li class=""><strong>measurements:</strong> added new chart component (<a href="https://github.com/ts-factory/bublik-ui/commit/68f68c5be72bbaa6b0dc513ad78491e5e0fa52f9" target="_blank" rel="noopener noreferrer" class="">68f68c5</a>)</li>
<li class=""><strong>measurements:</strong> added new stacked chart component (<a href="https://github.com/ts-factory/bublik-ui/commit/513d5812575adda43befa13cecf06b23bdacc57d" target="_blank" rel="noopener noreferrer" class="">513d581</a>)</li>
<li class=""><strong>report:</strong> [chart] open point info dialog when clicking on point (<a href="https://github.com/ts-factory/bublik-ui/commit/840d9f9a90859f7c50ac2aaa0d515931a1c56507" target="_blank" rel="noopener noreferrer" class="">840d9f9</a>)</li>
<li class=""><strong>report:</strong> [table] open point info dialog when clicking on table cell (<a href="https://github.com/ts-factory/bublik-ui/commit/a1c8dcb6e8cf9744eb4546cba09aeddc4774ceab" target="_blank" rel="noopener noreferrer" class="">a1c8dcb</a>)</li>
<li class=""><strong>report:</strong> added drawer with point information component (<a href="https://github.com/ts-factory/bublik-ui/commit/c8c9450371d8b60bf62da361b356d4be5b1acbbe" target="_blank" rel="noopener noreferrer" class="">c8c9450</a>)</li>
<li class=""><strong>run:</strong> added header groups to show difference between columns (<a href="https://github.com/ts-factory/bublik-ui/commit/505d798b82843075b4f26ed49d8be1a0c98da20a" target="_blank" rel="noopener noreferrer" class="">505d798</a>), closes <a href="https://github.com/ts-factory/bublik-ui/issues/175" target="_blank" rel="noopener noreferrer" class="">#175</a></li>
<li class=""><strong>run:</strong> added screen reader only label for "add note" button (<a href="https://github.com/ts-factory/bublik-ui/commit/9ba01208a6cca5ed5b5650280cfb6c5a6dcc3e69" target="_blank" rel="noopener noreferrer" class="">9ba0120</a>)</li>
<li class=""><strong>ui:</strong> [chart] allowed to override default options for chart (<a href="https://github.com/ts-factory/bublik-ui/commit/bd65b92df0a6eefd25a64b204fb6271f7969bbf9" target="_blank" rel="noopener noreferrer" class="">bd65b92</a>)</li>
<li class=""><strong>utils:</strong> added controllable state hook (<a href="https://github.com/ts-factory/bublik-ui/commit/dc885ddb4b5b5e91f90b772030a1429472636c80" target="_blank" rel="noopener noreferrer" class="">dc885dd</a>)</li>
<li class=""><strong>utils:</strong> added platform specific ctrl key hook (<a href="https://github.com/ts-factory/bublik-ui/commit/3e92144c76159513f4e8c6a511d7d9e49ecffaf1" target="_blank" rel="noopener noreferrer" class="">3e92144</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish">💅 Polish<a href="https://ts-factory.github.io/blog/release-v1.0.2#-polish" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>report:</strong> [chart] made chart take as much space as possible (<a href="https://github.com/ts-factory/bublik-ui/commit/74df1e52d89436cd740233dfa81176f9e0e2abee" target="_blank" rel="noopener noreferrer" class="">74df1e5</a>)</li>
<li class=""><strong>report:</strong> [table] made columns take 50% of width when only have one series (<a href="https://github.com/ts-factory/bublik-ui/commit/b04ce9b81ed5f36785f3fcddb706d68891005dfc" target="_blank" rel="noopener noreferrer" class="">b04ce9b</a>)</li>
<li class=""><strong>run:</strong> adjusted offset for sticky rows (<a href="https://github.com/ts-factory/bublik-ui/commit/bf47f87fb3d0d1f11fc1f007dae3bf20f43f0ed5" target="_blank" rel="noopener noreferrer" class="">bf47f87</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.0.2#-bug-fix" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> fixed history chart resetting zoom when releasing modifier key (<a href="https://github.com/ts-factory/bublik-ui/commit/a8c47cad6c461f1c0a52789324fc83dd6c4711f6" target="_blank" rel="noopener noreferrer" class="">a8c47ca</a>)</li>
<li class=""><strong>log:</strong> fixed crash when failing to retrieve node name (<a href="https://github.com/ts-factory/bublik-ui/commit/5cf78e924fc308257086e826447176bd51cafe61" target="_blank" rel="noopener noreferrer" class="">5cf78e9</a>)</li>
<li class=""><strong>report:</strong> [chart] added margin between legend and grid (<a href="https://github.com/ts-factory/bublik-ui/commit/cda1f195f8bcaa732d6266134bf200e0ec10a0a3" target="_blank" rel="noopener noreferrer" class="">cda1f19</a>)</li>
<li class=""><strong>report:</strong> [chart] display y_axis label when <code>series_label</code> is <code>null</code> (<a href="https://github.com/ts-factory/bublik-ui/commit/567b05900a22adb7c90bf01982a6f73a3ae83bc7" target="_blank" rel="noopener noreferrer" class="">567b059</a>)</li>
<li class=""><strong>report:</strong> [chart] don't show legend when series label is <code>null</code> (<a href="https://github.com/ts-factory/bublik-ui/commit/f96bcc48d3944ced1621440f1ea35e211c66a23e" target="_blank" rel="noopener noreferrer" class="">f96bcc4</a>)</li>
<li class=""><strong>report:</strong> [chart] fixed incorrect values on x axis (<a href="https://github.com/ts-factory/bublik-ui/commit/1ee4da5c75189e3535f895c82871f00c9971764f" target="_blank" rel="noopener noreferrer" class="">1ee4da5</a>)</li>
<li class=""><strong>report:</strong> [chart] fixed zoom reset on ctrl + scroll (<a href="https://github.com/ts-factory/bublik-ui/commit/fbb976bf300866a9555e26dfdf25ef3004fb0de2" target="_blank" rel="noopener noreferrer" class="">fbb976b</a>)</li>
<li class=""><strong>report:</strong> [table] incorrect table first series name (<a href="https://github.com/ts-factory/bublik-ui/commit/55d576cb4e2004b9066c048b45b67f48fa48b70b" target="_blank" rel="noopener noreferrer" class="">55d576c</a>)</li>
<li class=""><strong>run:</strong> fixed text comment popover being on partially shown (<a href="https://github.com/ts-factory/bublik-ui/commit/e803cd9e8589ba5b042cfb598fb6601acaf1e6ed" target="_blank" rel="noopener noreferrer" class="">e803cd9</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v1.0.2#%EF%B8%8F-code-refactoring" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> adjusted history for new data, types and components (<a href="https://github.com/ts-factory/bublik-ui/commit/38b2aab81aa23c90798f8cb3536fad0392a22e81" target="_blank" rel="noopener noreferrer" class="">38b2aab</a>)</li>
<li class=""><strong>history:</strong> changed to new log preview for stacked charts (<a href="https://github.com/ts-factory/bublik-ui/commit/a3d00d3204c766610a272b7d10ae2fb6b1abd55e" target="_blank" rel="noopener noreferrer" class="">a3d00d3</a>)</li>
<li class=""><strong>history:</strong> swap for new preview drawer modal (<a href="https://github.com/ts-factory/bublik-ui/commit/6e40b79522bc1d40445488b21e66ffa87a955fbc" target="_blank" rel="noopener noreferrer" class="">6e40b79</a>)</li>
<li class=""><strong>history:</strong> use new stacked chart for history stacked mode (<a href="https://github.com/ts-factory/bublik-ui/commit/1734d698e896eb3c18944f5eb0e04df309850a77" target="_blank" rel="noopener noreferrer" class="">1734d69</a>)</li>
<li class=""><strong>log:</strong> extracted log preview component to separate lib (<a href="https://github.com/ts-factory/bublik-ui/commit/89007fb3b78dccdd0cdf2b00b592e87c1c266e12" target="_blank" rel="noopener noreferrer" class="">89007fb</a>)</li>
<li class=""><strong>measurements:</strong> adjusted export logic for new types and data (<a href="https://github.com/ts-factory/bublik-ui/commit/ea2e5a42b270b732882eec444072a89a913ade60" target="_blank" rel="noopener noreferrer" class="">ea2e5a4</a>)</li>
<li class=""><strong>measurements:</strong> adjusted getting chart name (<a href="https://github.com/ts-factory/bublik-ui/commit/9d94e70a9ae371bba8f569b9b6bd0963be209f6e" target="_blank" rel="noopener noreferrer" class="">9d94e70</a>)</li>
<li class=""><strong>measurements:</strong> adjusted measurement charts for new types and data (<a href="https://github.com/ts-factory/bublik-ui/commit/4687d47b57d00e657fd677e2b2de0ed5633f9832" target="_blank" rel="noopener noreferrer" class="">4687d47</a>)</li>
<li class=""><strong>measurements:</strong> adjusted measurements page for new data and types (<a href="https://github.com/ts-factory/bublik-ui/commit/20bc843a2d8672283ec02418e81f804b418da104" target="_blank" rel="noopener noreferrer" class="">20bc843</a>)</li>
<li class=""><strong>measurements:</strong> adjusted table for new data and types (<a href="https://github.com/ts-factory/bublik-ui/commit/245e37033f11658a65e2959452a8305c850d1d36" target="_blank" rel="noopener noreferrer" class="">245e370</a>)</li>
<li class=""><strong>measurements:</strong> use new stacked chart component for overlay mode (<a href="https://github.com/ts-factory/bublik-ui/commit/343abce62608a3cf0f707920de34881edbea7148" target="_blank" rel="noopener noreferrer" class="">343abce</a>)</li>
<li class=""><strong>report:</strong> [chart] allow zoom only when metaKey is pressed (<a href="https://github.com/ts-factory/bublik-ui/commit/d3e7fe0b24662b41cf906d53f9a0362c9c907cc8" target="_blank" rel="noopener noreferrer" class="">d3e7fe0</a>)</li>
<li class=""><strong>report:</strong> [chart] updated chart for API changes (<a href="https://github.com/ts-factory/bublik-ui/commit/b427854469a28ed2d4cb5f5fa9ae7e7628a89207" target="_blank" rel="noopener noreferrer" class="">b427854</a>)</li>
<li class=""><strong>report:</strong> [table] allow scroll only when ctrl or meta key is pressed (<a href="https://github.com/ts-factory/bublik-ui/commit/0451a1f566d802ea3c7eb98ba2a939f9611539aa" target="_blank" rel="noopener noreferrer" class="">0451a1f</a>)</li>
<li class=""><strong>report:</strong> adjusted logic for determining labels (<a href="https://github.com/ts-factory/bublik-ui/commit/0193a07051372b4b467c55820c2257cd4a89f36e" target="_blank" rel="noopener noreferrer" class="">0193a07</a>)</li>
<li class=""><strong>report:</strong> adjusted props to chart and table (<a href="https://github.com/ts-factory/bublik-ui/commit/ba47278b888932ca5da501280d2a00304a40e33b" target="_blank" rel="noopener noreferrer" class="">ba47278</a>)</li>
<li class=""><strong>report:</strong> changed location of warnings hover cards (<a href="https://github.com/ts-factory/bublik-ui/commit/154d577cfeadd4f93ab41dce14e600cbac3b113d" target="_blank" rel="noopener noreferrer" class="">154d577</a>)</li>
<li class=""><strong>report:</strong> use shared drawer dialog for log preview (<a href="https://github.com/ts-factory/bublik-ui/commit/03f4d05b8babca7555bd8e881323548092e9396b" target="_blank" rel="noopener noreferrer" class="">03f4d05</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-chores">📦 Chores<a href="https://ts-factory.github.io/blog/release-v1.0.2#-chores" class="hash-link" aria-label="Direct link to 📦 Chores" title="Direct link to 📦 Chores" translate="no">​</a></h4>
<ul>
<li class=""><strong>history:</strong> removed old plot point dialog (<a href="https://github.com/ts-factory/bublik-ui/commit/5613e2faf081e68a8770a2ecfb1357830bdcd359" target="_blank" rel="noopener noreferrer" class="">5613e2f</a>)</li>
<li class=""><strong>measurements,history:</strong> remove old dead code and types (<a href="https://github.com/ts-factory/bublik-ui/commit/fc200338d2cf08c8c2426642bb775d18c7d8b939" target="_blank" rel="noopener noreferrer" class="">fc20033</a>)</li>
<li class=""><strong>report:</strong> adjusted report types for new API changes (<a href="https://github.com/ts-factory/bublik-ui/commit/b58ed3b18d9ce93132cb4b12713afba67a095e34" target="_blank" rel="noopener noreferrer" class="">b58ed3b</a>)</li>
<li class=""><strong>report:</strong> changed labels for list of arguments (<a href="https://github.com/ts-factory/bublik-ui/commit/69ababb263794ab628cb4fd56f10b11d88f13186" target="_blank" rel="noopener noreferrer" class="">69ababb</a>)</li>
<li class=""><strong>report:</strong> display spinner when loading report (<a href="https://github.com/ts-factory/bublik-ui/commit/2833e2e405a47b3f0cc6ed0c30458307f11a2247" target="_blank" rel="noopener noreferrer" class="">2833e2e</a>)</li>
<li class=""><strong>report:</strong> removed old point dialog drawer component (<a href="https://github.com/ts-factory/bublik-ui/commit/c27c22583811e95d02c4002696b83f10ad816aea" target="_blank" rel="noopener noreferrer" class="">c27c225</a>)</li>
</ul>
<h3 class="anchor anchorTargetStickyNavbar_7zQ1" id="backend">Backend<a href="https://ts-factory.github.io/blog/release-v1.0.2#backend" class="hash-link" aria-label="Direct link to Backend" title="Direct link to Backend" translate="no">​</a></h3>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-issue-fix">🔨 Issue Fix<a href="https://ts-factory.github.io/blog/release-v1.0.2#-issue-fix" class="hash-link" aria-label="Direct link to 🔨 Issue Fix" title="Direct link to 🔨 Issue Fix" translate="no">​</a></h4>
<ul>
<li class="">Add API spec docs (OpenAPI Specification v3.x) <a href="https://github.com/ts-factory/bublik/issues/38" target="_blank" rel="noopener noreferrer" class="">#38</a></li>
<li class="">Report: add navigation from points <a href="https://github.com/ts-factory/bublik/issues/74" target="_blank" rel="noopener noreferrer" class="">#74</a></li>
<li class="">Measurements: improve the processing and storage of sequences of results <a href="https://github.com/ts-factory/bublik/issues/79" target="_blank" rel="noopener noreferrer" class="">#79</a></li>
<li class="">Measurements: update the structure of data to display <a href="https://github.com/ts-factory/bublik/issues/80" target="_blank" rel="noopener noreferrer" class="">#80</a></li>
<li class="">Update the requirements <a href="https://github.com/ts-factory/bublik/issues/90" target="_blank" rel="noopener noreferrer" class="">#90</a></li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-bug-fix-1">🐛 Bug Fix<a href="https://ts-factory.github.io/blog/release-v1.0.2#-bug-fix-1" class="hash-link" aria-label="Direct link to 🐛 Bug Fix" title="Direct link to 🐛 Bug Fix" translate="no">​</a></h4>
<ul>
<li class=""><strong>importruns:</strong> fix iteration end date calculation (<a href="https://github.com/ts-factory/bublik/commit/2b82deaa26f6fa518c28f2ff7a4b4d0274cc088b" target="_blank" rel="noopener noreferrer" class="">2b82dea</a>)</li>
<li class=""><strong>importruns:</strong> fix iteration start and end dates calculation (<a href="https://github.com/ts-factory/bublik/commit/56d7bd21f7d5e0a30e99c5fde523e784da36be9e" target="_blank" rel="noopener noreferrer" class="">56d7bd2</a>)</li>
<li class=""><strong>importruns:</strong> fix views saving (<a href="https://github.com/ts-factory/bublik/commit/d2ee1abd1fc0f7273d1aa2ff2c557386b7d187d7" target="_blank" rel="noopener noreferrer" class="">d2ee1ab</a>)</li>
<li class=""><strong>importruns:</strong> fix views handling (<a href="https://github.com/ts-factory/bublik/commit/7b94b98e524f539b131ecd1c34b5e237cbf3592a" target="_blank" rel="noopener noreferrer" class="">7b94b98</a>)</li>
<li class=""><strong>measurements:</strong> fix response for the case of an error (<a href="https://github.com/ts-factory/bublik/commit/4133a7ee477e022f48993f36f12552e4683c4fc8" target="_blank" rel="noopener noreferrer" class="">4133a7e</a>)</li>
<li class=""><strong>report:</strong> fix the calculation of percentages (<a href="https://github.com/ts-factory/bublik/commit/0601f1b68d848ac01e1674b1ab937f488390e22f" target="_blank" rel="noopener noreferrer" class="">0601f1b</a>)</li>
<li class=""><strong>report:</strong> fix f-string quotes error (<a href="https://github.com/ts-factory/bublik/commit/0acb5d937816e7790128850d344045165be1532f" target="_blank" rel="noopener noreferrer" class="">0acb5d9</a>)</li>
<li class=""><strong>measurements:</strong> fix dynamic chart points order (<a href="https://github.com/ts-factory/bublik/commit/770700601d06c4a677ce0d4e4aac561edde25e58" target="_blank" rel="noopener noreferrer" class="">7707006</a>)</li>
<li class=""><strong>auth:</strong> fix password reset (<a href="https://github.com/ts-factory/bublik/commit/69178269221812e819be0e1fc6f3a8c9aa63301f" target="_blank" rel="noopener noreferrer" class="">6917826</a>)</li>
<li class=""><strong>management:</strong> fix mmr sequences migration (<a href="https://github.com/ts-factory/bublik/commit/a9a152746d83c0615b908d085866e4e7f829dc48" target="_blank" rel="noopener noreferrer" class="">a9a1527</a>)</li>
<li class=""><strong>measurements:</strong> fix charts merging (<a href="https://github.com/ts-factory/bublik/commit/0659b5956911d66a27b93ea06c13a00e9dea2270" target="_blank" rel="noopener noreferrer" class="">0659b59</a>)</li>
<li class=""><strong>results:</strong> fix measurement chart building (<a href="https://github.com/ts-factory/bublik/commit/46817d8b4e7ebb149e720ad81c8a3211ba24a603" target="_blank" rel="noopener noreferrer" class="">46817d8</a>)</li>
<li class=""><strong>report:</strong> fix x-axis value retrieval (<a href="https://github.com/ts-factory/bublik/commit/7f21b952852d1ab8b87979962b85f45a313929e7" target="_blank" rel="noopener noreferrer" class="">7f21b95</a>)</li>
<li class=""><strong>report:</strong> fix chart data preparation (<a href="https://github.com/ts-factory/bublik/commit/28485ab0897af6e8c63948b913747821ddba07db" target="_blank" rel="noopener noreferrer" class="">28485ab</a>)</li>
<li class=""><strong>report:</strong> fix result merging by measurements (<a href="https://github.com/ts-factory/bublik/commit/1749bcbd23be89584afe54da7c92b9c35d9917b3" target="_blank" rel="noopener noreferrer" class="">1749bcb</a>)</li>
<li class=""><strong>results:</strong> fix measurement chart rendering without views (<a href="https://github.com/ts-factory/bublik/commit/c6862be8926db1052bb223d6bccce28b51448cdd" target="_blank" rel="noopener noreferrer" class="">c6862be</a>)</li>
<li class=""><strong>importruns:</strong> fix measurement results processing (<a href="https://github.com/ts-factory/bublik/commit/49be0d6903f8765fec9b5bf845e7436b58d58bd4" target="_blank" rel="noopener noreferrer" class="">49be0d6</a>)</li>
<li class=""><strong>settings:</strong> fix dynamic settings retrieval (<a href="https://github.com/ts-factory/bublik/commit/719912f45720c3dbf5d69fc534f984fe7b41bee2" target="_blank" rel="noopener noreferrer" class="">719912f</a>)</li>
<li class=""><strong>management:</strong> fix creation of invalid mmrls during migration (<a href="https://github.com/ts-factory/bublik/commit/f87e59f1c0194ba94b0f2b27015977ed8eb7b1b4" target="_blank" rel="noopener noreferrer" class="">f87e59f</a>)</li>
<li class=""><strong>management:</strong> fix memory overload error during migration (<a href="https://github.com/ts-factory/bublik/commit/fec86cdda5757038086ea157de8e5a742696dd12" target="_blank" rel="noopener noreferrer" class="">fec86cd</a>)</li>
<li class=""><strong>run stats:</strong> fix test comments addition to detailed statistics (<a href="https://github.com/ts-factory/bublik/commit/38c43cd2394cbae9b61180a61c809f6d93996636" target="_blank" rel="noopener noreferrer" class="">38c43cd</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-performance">⚡ Performance<a href="https://ts-factory.github.io/blog/release-v1.0.2#-performance" class="hash-link" aria-label="Direct link to ⚡ Performance" title="Direct link to ⚡ Performance" translate="no">​</a></h4>
<ul>
<li class=""><strong>report:</strong> simplify points grouping (<a href="https://github.com/ts-factory/bublik/commit/8062a5ac88ac4847e3b14f7bf5342666745fa44e" target="_blank" rel="noopener noreferrer" class="">8062a5a</a>)</li>
<li class=""><strong>management:</strong> optimize incorrect objects deletion (<a href="https://github.com/ts-factory/bublik/commit/43c8682ddbc2c3196b682047be4128e7f2725534" target="_blank" rel="noopener noreferrer" class="">43c8682</a>)</li>
<li class=""><strong>management:</strong> optimize duplicate deletion (<a href="https://github.com/ts-factory/bublik/commit/127d72a901611a33815bfe8fb97edef62a8a0c86" target="_blank" rel="noopener noreferrer" class="">127d72a</a>)</li>
<li class=""><strong>management:</strong> optimize mmr sequences migration (<a href="https://github.com/ts-factory/bublik/commit/3358f3f5d712958c93a03cf5c3656739c77b8ef0" target="_blank" rel="noopener noreferrer" class="">3358f3f</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-new-featire">🚀 New Featire<a href="https://ts-factory.github.io/blog/release-v1.0.2#-new-featire" class="hash-link" aria-label="Direct link to 🚀 New Featire" title="Direct link to 🚀 New Featire" translate="no">​</a></h4>
<ul>
<li class=""><strong>management:</strong> update reformat configs command (<a href="https://github.com/ts-factory/bublik/commit/637b55b4e686d8318cf43df594ecdc0d9b4c2b42" target="_blank" rel="noopener noreferrer" class="">637b55b</a>)</li>
<li class=""><strong>docs(rest):</strong> add dependencies for OpenAPI schema generation (<a href="https://github.com/ts-factory/bublik/commit/a0aeea016aba085238e91f94fce7da3cbc821e83" target="_blank" rel="noopener noreferrer" class="">a0aeea0</a>)</li>
<li class=""><strong>management:</strong> update the database cleanup command (<a href="https://github.com/ts-factory/bublik/commit/dced0684bd71a825b3b8db7b094165181a91adcc" target="_blank" rel="noopener noreferrer" class="">dced068</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="️-code-refactoring-1">♻️ Code Refactoring<a href="https://ts-factory.github.io/blog/release-v1.0.2#%EF%B8%8F-code-refactoring-1" class="hash-link" aria-label="Direct link to ♻️ Code Refactoring" title="Direct link to ♻️ Code Refactoring" translate="no">​</a></h4>
<ul>
<li class=""><strong>auth:</strong> change the source of the main config (<a href="https://github.com/ts-factory/bublik/commit/47a4b22a3b928e2c1740ca20f0814311e0666ad6" target="_blank" rel="noopener noreferrer" class="">47a4b22</a>)</li>
<li class=""><strong>settings:</strong> change the source of dynamic settings (<a href="https://github.com/ts-factory/bublik/commit/bdf03fa8a5efda7e8e45b566b10eced551419c11" target="_blank" rel="noopener noreferrer" class="">bdf03fa</a>)</li>
<li class=""><strong>management(refactor):</strong> improve reformat configs command (<a href="https://github.com/ts-factory/bublik/commit/2a8e737c7c9fc16b5a39722d8b2943c27e8c4f32" target="_blank" rel="noopener noreferrer" class="">2a8e737</a>)</li>
<li class=""><strong>importruns:</strong> refactor measurement results saving (<a href="https://github.com/ts-factory/bublik/commit/57db67c81c47d602d761eca9a3d8e24a26e40f9a" target="_blank" rel="noopener noreferrer" class="">57db67c</a>)</li>
<li class=""><strong>importruns:</strong> refactor measurement result saving (<a href="https://github.com/ts-factory/bublik/commit/81a2a6245f69b4897bc66b02ef12004db6e64055" target="_blank" rel="noopener noreferrer" class="">81a2a62</a>)</li>
<li class=""><strong>results:</strong> separate the plotting of different views (<a href="https://github.com/ts-factory/bublik/commit/d5f46716ccf9d03441725b4a412059debc1770cf" target="_blank" rel="noopener noreferrer" class="">d5f4671</a>)</li>
<li class=""><strong>measurements:</strong> unify getting of iterations mmrs (<a href="https://github.com/ts-factory/bublik/commit/8b3471146f9e7030b08059c7e7b14bb5e7692bd2" target="_blank" rel="noopener noreferrer" class="">8b34711</a>)</li>
<li class=""><strong>measurements:</strong> make results repr func more universal (<a href="https://github.com/ts-factory/bublik/commit/34082f7b07f92ef84bca0160f53391eb86571a1c" target="_blank" rel="noopener noreferrer" class="">34082f7</a>)</li>
<li class=""><strong>refactor(report):</strong> simplify the grouping by args key (<a href="https://github.com/ts-factory/bublik/commit/352ae5664c48e89891efb42ea1a089cca6b8ff76" target="_blank" rel="noopener noreferrer" class="">352ae56</a>)</li>
<li class=""><strong>refactor(report):</strong> update unprocessed iters processing (<a href="https://github.com/ts-factory/bublik/commit/c870104f2e6c08f99e27e3ea48597f7eeee80a0e" target="_blank" rel="noopener noreferrer" class="">c870104</a>)</li>
<li class=""><strong>management:</strong> ensure data integrity during mmr migration (<a href="https://github.com/ts-factory/bublik/commit/8e40382913085c2503fbf717810fe37c8e35a483" target="_blank" rel="noopener noreferrer" class="">8e40382</a>)</li>
<li class=""><strong>measurements:</strong> unify result merging by measurements (<a href="https://github.com/ts-factory/bublik/commit/8088ac9e346f07e8eba281b609ef35575197c150" target="_blank" rel="noopener noreferrer" class="">8088ac9</a>)</li>
<li class=""><strong>management:</strong> reduce cleanup transaction time and contention (<a href="https://github.com/ts-factory/bublik/commit/0816fd68fb44797ca65817bf01370a4d5ac09d34" target="_blank" rel="noopener noreferrer" class="">0816fd6</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-polish-1">💅 Polish<a href="https://ts-factory.github.io/blog/release-v1.0.2#-polish-1" class="hash-link" aria-label="Direct link to 💅 Polish" title="Direct link to 💅 Polish" translate="no">​</a></h4>
<ul>
<li class=""><strong>measurements:</strong> fix chart subtitles (<a href="https://github.com/ts-factory/bublik/commit/db665717fdbbf2a80149987f1efc69eb9aaf5889" target="_blank" rel="noopener noreferrer" class="">db66571</a>)</li>
<li class=""><strong>measurements:</strong> fix incorrect naming of iteration result IDs (<a href="https://github.com/ts-factory/bublik/commit/fa3afc0b77608a61ce6149a14551547ae6276d84" target="_blank" rel="noopener noreferrer" class="">fa3afc0</a>)</li>
</ul>
<h4 class="anchor anchorTargetStickyNavbar_7zQ1" id="-cleanup">🧹 Cleanup<a href="https://ts-factory.github.io/blog/release-v1.0.2#-cleanup" class="hash-link" aria-label="Direct link to 🧹 Cleanup" title="Direct link to 🧹 Cleanup" translate="no">​</a></h4>
<ul>
<li class=""><strong>requirements:</strong> ensure consistent sorting in dependencies (<a href="https://github.com/ts-factory/bublik/commit/6da26655331b8e49c22bdab27124794dbefb3989" target="_blank" rel="noopener noreferrer" class="">6da2665</a>)</li>
<li class=""><strong>cleanup:</strong> add typing of class variables (<a href="https://github.com/ts-factory/bublik/commit/98144d69c5bd03cff99801bb8fec81725466259f" target="_blank" rel="noopener noreferrer" class="">98144d6</a>)</li>
<li class=""><strong>cleanup(report):</strong> clarify comments and remove unused logging (<a href="https://github.com/ts-factory/bublik/commit/3a3a24f7d7c7eb0d984078107b88bdadecdbad97" target="_blank" rel="noopener noreferrer" class="">3a3a24f</a>)</li>
<li class=""><strong>management:</strong> fix DB cleanup log formatting (<a href="https://github.com/ts-factory/bublik/commit/b596b59ea002a7c0c4e4ad8142fb1ce678a10183" target="_blank" rel="noopener noreferrer" class="">b596b59</a>)</li>
<li class=""><strong>cleanup(measurements):</strong> improve code quality (<a href="https://github.com/ts-factory/bublik/commit/24ae37a51f9439c464ecb5a4e3a122c8e2a3874a" target="_blank" rel="noopener noreferrer" class="">24ae37a</a>)</li>
<li class=""><strong>cleanup:</strong> improve measurement models maintainability (<a href="https://github.com/ts-factory/bublik/commit/554dbacb1e30f973400305b5c89a679aa9084aa9" target="_blank" rel="noopener noreferrer" class="">554dbac</a>)</li>
<li class=""><strong>cleanup:</strong> improve report components readability (<a href="https://github.com/ts-factory/bublik/commit/eae822ff9cd2af5e447f00cdb2cb04fcc1054fec" target="_blank" rel="noopener noreferrer" class="">eae822f</a>)</li>
<li class=""><strong>cleanup:</strong> improve readability of retrieved test comments (<a href="https://github.com/ts-factory/bublik/commit/dc25cb859ac0bab8228951bdcf66612683da1821" target="_blank" rel="noopener noreferrer" class="">dc25cb8</a>)</li>
</ul>]]></content>
        <author>
            <name>Kostromin Danil</name>
            <uri>https://github.com/okt-limonikas</uri>
        </author>
        <author>
            <name>Rybchenko Natalia</name>
            <uri>https://github.com/ol-nata</uri>
        </author>
        <category label="release" term="release"/>
    </entry>
</feed>