Skip to content

feat: Add source column to log panels#1166

Merged
allansson merged 11 commits intomainfrom
feat/improved-console-panel
Apr 16, 2026
Merged

feat: Add source column to log panels#1166
allansson merged 11 commits intomainfrom
feat/improved-console-panel

Conversation

@allansson
Copy link
Copy Markdown
Collaborator

@allansson allansson commented Apr 14, 2026

Description

This PR adds a column that shows the source of specific log lines in the logs panel. It is a re-design of the existing panel, making it look more like the console in browser devtools:

  • Table headers are hidden
  • Message is displayed in the first column
  • Source and time are right-aligned
  • Only displays time and not a full UTC string

The new panel also have some options to filter log lines based on the level and source.

Screen.Recording.2026-04-14.at.12.42.15.mov

How to Test

Debugger

  1. Record a browser session and make sure it wrote stuff to the console.
  2. Export a script
  3. Modify the script to include some console.log statements
  4. Run the script in the debugger

Generator

  1. Create a generator
  2. Add some log statements using custom code rules

Checklist

  • I have performed a self-review of my code.
  • I have added tests for my changes.
  • I have commented on my code, particularly in hard-to-understand areas.

Related PR(s)/Issue(s)

Closes #1066


Note

Medium Risk
Updates the log rendering and data schema (LogEntry.process) used across debugger/editor views; while mostly UI, it changes log instrumentation and filtering logic that could hide logs or affect autoscroll behavior.

Overview
Redesigns the validator/browser console log panels to a devtools-like table that shows message plus right-aligned source and formatted time, and adds toggle filters for log level and log source.

Refactors LogsSection into a new module with useConsoleFilter, source-mapping utilities, and AutoScrollArea-based scrolling; integrates this new API into ExecutionDetails, BrowserDebugger, and BrowserTestEditor.

Extends LogEntry with a process field (default k6) and updates browser page instrumentation to emit process: 'browser', enabling reliable source attribution and filtering.

Reviewed by Cursor Bugbot for commit 67e8b6c. Bugbot is set up for automated code reviews on this repo. Configure here.

Copy link
Copy Markdown
Collaborator Author

@allansson allansson left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Self-review

items: unknown,
enabled = true
): MutableRefObject<Element | null> {
): RefObject<Element | null> {
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not really necessary, but it removes a deprecation warning.


export function pageProxy(target: Page): ProxyOptions<Page> {
if (!isPageInstrumented(target)) {
if (shouldInstrument(target)) {
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The condition here was inverted so no logs were actually recorded.

Comment thread src/schemas/k6.ts
source: z.string().optional(),
time: z.string(),
error: z.string().optional(),
process: z.union([z.literal('k6'), z.literal('browser')]).default('k6'),
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The value of the source property reported by k6 seems pretty arbitrary. By adding the process property (which will only be set when reporting browser logs) we get a more reliable way of knowing from where the log came.

Comment on lines +24 to +44
display: grid;
align-items: center;
grid-template-columns: 1fr auto auto;

thead,
tbody,
tr {
display: grid;
grid-column: 1 / -1;
grid-template-columns: subgrid;
}

tr {
padding-right: var(--space-2);
}

td {
font-family: var(--code-font-family);
font-size: 13px;
padding: var(--space-2) var(--space-1);
}
Copy link
Copy Markdown
Collaborator Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Styling it as a grid to get better control over column widths.

@allansson
Copy link
Copy Markdown
Collaborator Author

bugbot run

Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 2 potential issues.

Autofix Details

Bugbot Autofix prepared fixes for both issues found in the latest run.

  • ✅ Fixed: Inner div height: 100% breaks auto-scroll behavior
    • Changed AutoScrollArea inner div from height: 100% to min-height: 100% to allow content overflow while preserving centering for empty states.
  • ✅ Fixed: BrowserTestEditor missing auto-scroll during running state
    • Updated BrowserTestEditor LogsSection to use autoScroll={session.state === 'running'} for consistency with BrowserDebugger.

Create PR

Or push these changes by commenting:

@cursor push 0fa1c6e45e
Preview (0fa1c6e45e)
diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml
--- a/.github/workflows/ci.yml
+++ b/.github/workflows/ci.yml
@@ -19,7 +19,7 @@
       - uses: actions/setup-node@a0853c24544627f65ddf259abe73b1d18a591444 # v5
         with:
           node-version: 24.11
-          cache: "npm"
+          cache: 'npm'
       - run: npm ci
       - run: npm run typecheck
       - run: npm run lint

diff --git a/.github/workflows/release-please.yml b/.github/workflows/release-please.yml
--- a/.github/workflows/release-please.yml
+++ b/.github/workflows/release-please.yml
@@ -13,7 +13,7 @@
       contents: write
       pull-requests: write
       id-token: write
-      
+
     runs-on: ubuntu-latest
     steps:
       - name: Retrieve release app credentials

diff --git a/.github/workflows/release-test-version.yml b/.github/workflows/release-test-version.yml
--- a/.github/workflows/release-test-version.yml
+++ b/.github/workflows/release-test-version.yml
@@ -1,13 +1,13 @@
-name: "Manual Release Test Version"
+name: 'Manual Release Test Version'
 
 on:
   workflow_dispatch:
     inputs:
       version:
-        description: "Specify a version suffix for the test release (limit to 20 characters or windows build will fail)"
+        description: 'Specify a version suffix for the test release (limit to 20 characters or windows build will fail)'
         required: true
         type: string
-        default: "test-version"
+        default: 'test-version'
 
 permissions: {}
 
@@ -75,7 +75,7 @@
       - name: publish macOS arm64
         if: startsWith(matrix.platform, 'macos-latest')
         env:
-          NODE_OPTIONS: "--max_old_space_size=8192"
+          NODE_OPTIONS: '--max_old_space_size=8192'
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           # apple notarization
           APPLE_API_KEY: ./apple_api_key.p8
@@ -89,7 +89,7 @@
       - name: publish macOS x86_64
         if: startsWith(matrix.platform, 'macos-15-intel')
         env:
-          NODE_OPTIONS: "--max_old_space_size=8192"
+          NODE_OPTIONS: '--max_old_space_size=8192'
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           # apple notarization
           APPLE_API_KEY: ./apple_api_key.p8
@@ -124,7 +124,7 @@
         if: startsWith(matrix.platform, 'windows-')
         with:
           # renovate: datasource=dotnet-version depName=dotnet-sdk
-          dotnet-version: "8.0.414"
+          dotnet-version: '8.0.414'
 
       - name: Install Sign CLI tool
         id: install-sign-tool
@@ -132,7 +132,7 @@
         shell: pwsh
         env:
           # renovate: datasource=nuget depName=sign
-          DOTNET_SIGN_VERSION: "0.9.1-beta.25379.1"
+          DOTNET_SIGN_VERSION: '0.9.1-beta.25379.1'
         run: |
           $toolPath = Join-Path -Path ${env:RUNNER_TEMP} -ChildPath (New-Guid).ToString()
           New-Item -ItemType Directory -Path $toolPath | Out-Null
@@ -149,7 +149,7 @@
       - name: publish Windows
         if: startsWith(matrix.platform, 'windows-')
         env:
-          NODE_OPTIONS: "--max_old_space_size=8192"
+          NODE_OPTIONS: '--max_old_space_size=8192'
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           # windows cert
           TRUSTED_SIGNING_ACCOUNT: grafana-premium-eastus
@@ -165,7 +165,7 @@
       - name: publish Linux
         if: startsWith(matrix.platform, 'ubuntu-')
         env:
-          NODE_OPTIONS: "--max_old_space_size=8192"
+          NODE_OPTIONS: '--max_old_space_size=8192'
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           # sentry integration
           # sentry vite plugin integration during build

diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -1,4 +1,4 @@
-name: "Manual Release"
+name: 'Manual Release'
 
 on:
   workflow_dispatch:
@@ -64,7 +64,7 @@
       - name: publish macOS arm64
         if: startsWith(matrix.platform, 'macos-latest')
         env:
-          NODE_OPTIONS: "--max_old_space_size=8192"
+          NODE_OPTIONS: '--max_old_space_size=8192'
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           # apple notarization
           APPLE_API_KEY: ./apple_api_key.p8
@@ -78,7 +78,7 @@
       - name: publish macOS x86_64
         if: startsWith(matrix.platform, 'macos-15-intel')
         env:
-          NODE_OPTIONS: "--max_old_space_size=8192"
+          NODE_OPTIONS: '--max_old_space_size=8192'
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           # apple notarization
           APPLE_API_KEY: ./apple_api_key.p8
@@ -113,7 +113,7 @@
         if: startsWith(matrix.platform, 'windows-')
         with:
           # renovate: datasource=dotnet-version depName=dotnet-sdk
-          dotnet-version: "8.0.414"
+          dotnet-version: '8.0.414'
 
       - name: Install Sign CLI tool
         id: install-sign-tool
@@ -121,7 +121,7 @@
         shell: pwsh
         env:
           # renovate: datasource=nuget depName=sign
-          DOTNET_SIGN_VERSION: "0.9.1-beta.25379.1"
+          DOTNET_SIGN_VERSION: '0.9.1-beta.25379.1'
         run: |
           $toolPath = Join-Path -Path ${env:RUNNER_TEMP} -ChildPath (New-Guid).ToString()
           New-Item -ItemType Directory -Path $toolPath | Out-Null
@@ -135,7 +135,7 @@
       - name: publish Windows
         if: startsWith(matrix.platform, 'windows-')
         env:
-          NODE_OPTIONS: "--max_old_space_size=8192"
+          NODE_OPTIONS: '--max_old_space_size=8192'
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           # windows cert
           TRUSTED_SIGNING_ACCOUNT: grafana-premium-eastus
@@ -151,7 +151,7 @@
       - name: publish Linux
         if: startsWith(matrix.platform, 'ubuntu-')
         env:
-          NODE_OPTIONS: "--max_old_space_size=8192"
+          NODE_OPTIONS: '--max_old_space_size=8192'
           GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
           # sentry integration
           # sentry vite plugin integration during build

diff --git a/AGENTS.md b/AGENTS.md
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -60,6 +60,7 @@
 ### IPC Pattern
 
 Handlers follow `domain:action` naming. Each handler has:
+
 - `index.ts` - ipcMain.handle/on registration
 - `preload.ts` - contextBridge exposure
 - `types.ts` - TypeScript interfaces
@@ -77,8 +78,8 @@
 ## Commit Messages
 
 Conventional Commits format. Sentence case, imperative verb.
+

feat: Add type column to WebLogView
fix: Application crashes when opening HAR file

-

diff --git a/CHANGELOG.md b/CHANGELOG.md
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -2,806 +2,707 @@

## [1.12.0](https://github.com/grafana/k6-studio/compare/v1.11.1...v1.12.0) (2026-03-17)

-
### Features

-* **generator:** Move Validate and Run in Cloud buttons to Header ([#1112](https://github.com/grafana/k6-studio/issues/1112)) ([717fe3d](https://github.com/grafana/k6-studio/commit/717fe3d313ee536b768359557ca4a9c87c908c07))
+- **generator:** Move Validate and Run in Cloud buttons to Header ([#1112](https://github.com/grafana/k6-studio/issues/1112)) ([717fe3d](https://github.com/grafana/k6-studio/commit/717fe3d313ee536b768359557ca4a9c87c908c07))

-
### Bug Fixes

-* **autocorrelation:** Handle quota exceeded error in the UI ([#1113](https://github.com/grafana/k6-studio/issues/1113)) ([4d7c419](https://github.com/grafana/k6-studio/commit/4d7c419308272afca2bb1e10a187ce3f1d3aaa7e))
-* Binary request bodies are inlined as raw binary characters breaking the script ([#1120](https://github.com/grafana/k6-studio/issues/1120)) ([fe38e32](https://github.com/grafana/k6-studio/commit/fe38e32266beda6414e8a7bb96e28a749c543f14))
-* **browser-codegen:** Can't export browser test when recording contains implicit navigations ([#1107](https://github.com/grafana/k6-studio/issues/1107)) ([27f337a](https://github.com/grafana/k6-studio/commit/27f337a956f1996deada32c9a38ba90d3d3400c5))
-* **browser:** Actions are called after `page.close` when multiple actions are performed on same locator ([#1124](https://github.com/grafana/k6-studio/issues/1124)) ([7494257](https://github.com/grafana/k6-studio/commit/7494257695ea0b8c6777cd4a74bf3f695391d691))
-* remove survey banner ([#1125](https://github.com/grafana/k6-studio/issues/1125)) ([033e81a](https://github.com/grafana/k6-studio/commit/033e81aa1ad2eee6b82eabbfed964c2da16df82f))
-* Response is never sent when logs are sent from a browser test ([#1083](https://github.com/grafana/k6-studio/issues/1083)) ([eca2fcf](https://github.com/grafana/k6-studio/commit/eca2fcfdb5ecf23075e3b897c195529176b855b5))
+- **autocorrelation:** Handle quota exceeded error in the UI ([#1113](https://github.com/grafana/k6-studio/issues/1113)) ([4d7c419](https://github.com/grafana/k6-studio/commit/4d7c419308272afca2bb1e10a187ce3f1d3aaa7e))
+- Binary request bodies are inlined as raw binary characters breaking the script ([#1120](https://github.com/grafana/k6-studio/issues/1120)) ([fe38e32](https://github.com/grafana/k6-studio/commit/fe38e32266beda6414e8a7bb96e28a749c543f14))
+- **browser-codegen:** Can't export browser test when recording contains implicit navigations ([#1107](https://github.com/grafana/k6-studio/issues/1107)) ([27f337a](https://github.com/grafana/k6-studio/commit/27f337a956f1996deada32c9a38ba90d3d3400c5))
+- **browser:** Actions are called after `page.close` when multiple actions are performed on same locator ([#1124](https://github.com/grafana/k6-studio/issues/1124)) ([7494257](https://github.com/grafana/k6-studio/commit/7494257695ea0b8c6777cd4a74bf3f695391d691))
+- remove survey banner ([#1125](https://github.com/grafana/k6-studio/issues/1125)) ([033e81a](https://github.com/grafana/k6-studio/commit/033e81aa1ad2eee6b82eabbfed964c2da16df82f))
+- Response is never sent when logs are sent from a browser test ([#1083](https://github.com/grafana/k6-studio/issues/1083)) ([eca2fcf](https://github.com/grafana/k6-studio/commit/eca2fcfdb5ecf23075e3b897c195529176b855b5))

-
### Internal Changes

-* Add assistant feature toggle ([#1100](https://github.com/grafana/k6-studio/issues/1100)) ([e375792](https://github.com/grafana/k6-studio/commit/e3757928e5a21a4223c3b731120c43082ec90d82))
+- Add assistant feature toggle ([#1100](https://github.com/grafana/k6-studio/issues/1100)) ([e375792](https://github.com/grafana/k6-studio/commit/e3757928e5a21a4223c3b731120c43082ec90d82))

-
### Miscellaneous Chores

-* Reduce sentry noise ([#1110](https://github.com/grafana/k6-studio/issues/1110)) ([2644b30](https://github.com/grafana/k6-studio/commit/2644b30a205cae2b13f52fffccdaaca5e82e9176))
+- Reduce sentry noise ([#1110](https://github.com/grafana/k6-studio/issues/1110)) ([2644b30](https://github.com/grafana/k6-studio/commit/2644b30a205cae2b13f52fffccdaaca5e82e9176))

## [1.11.1](https://github.com/grafana/k6-studio/compare/v1.11.0...v1.11.1) (2026-03-10)

-
### Bug Fixes

-* Allow to modify requests in a redirect chain ([#1077](https://github.com/grafana/k6-studio/issues/1077)) ([4951e57](https://github.com/grafana/k6-studio/commit/4951e57af104513721fae687fc1fb534b8fb4095))
-* **browser:** Pages are not disposed of properly at end of test ([#1090](https://github.com/grafana/k6-studio/issues/1090)) ([188008a](https://github.com/grafana/k6-studio/commit/188008a13607e7e9835caa9f0e0d1b7e2be5863d))
+- Allow to modify requests in a redirect chain ([#1077](https://github.com/grafana/k6-studio/issues/1077)) ([4951e57](https://github.com/grafana/k6-studio/commit/4951e57af104513721fae687fc1fb534b8fb4095))
+- **browser:** Pages are not disposed of properly at end of test ([#1090](https://github.com/grafana/k6-studio/issues/1090)) ([188008a](https://github.com/grafana/k6-studio/commit/188008a13607e7e9835caa9f0e0d1b7e2be5863d))

-
### Miscellaneous Chores

-* **deps:** update basic-ftp version ([#1099](https://github.com/grafana/k6-studio/issues/1099)) ([c05d136](https://github.com/grafana/k6-studio/commit/c05d136c75fe9bed26a764436a6e5c20480f581c))
-* Improve error logging ([#1106](https://github.com/grafana/k6-studio/issues/1106)) ([11adece](https://github.com/grafana/k6-studio/commit/11adece5bf2004d27f04cae95de5b7ad74c0389e))
-* Update electron forge to latest version ([#1088](https://github.com/grafana/k6-studio/issues/1088)) ([52471ce](https://github.com/grafana/k6-studio/commit/52471ceaa2336a9b60688358eb7151f33dee084d))
-* Update electron to latest version ([#1089](https://github.com/grafana/k6-studio/issues/1089)) ([b532c38](https://github.com/grafana/k6-studio/commit/b532c3880ac184f51076a9552021bba5b06e8e8d))
+- **deps:** update basic-ftp version ([#1099](https://github.com/grafana/k6-studio/issues/1099)) ([c05d136](https://github.com/grafana/k6-studio/commit/c05d136c75fe9bed26a764436a6e5c20480f581c))
+- Improve error logging ([#1106](https://github.com/grafana/k6-studio/issues/1106)) ([11adece](https://github.com/grafana/k6-studio/commit/11adece5bf2004d27f04cae95de5b7ad74c0389e))
+- Update electron forge to latest version ([#1088](https://github.com/grafana/k6-studio/issues/1088)) ([52471ce](https://github.com/grafana/k6-studio/commit/52471ceaa2336a9b60688358eb7151f33dee084d))
+- Update electron to latest version ([#1089](https://github.com/grafana/k6-studio/issues/1089)) ([b532c38](https://github.com/grafana/k6-studio/commit/b532c3880ac184f51076a9552021bba5b06e8e8d))

-
### Build System

-* Fix macos build error and improve local build/hmr performance ([#1097](https://github.com/grafana/k6-studio/issues/1097)) ([3b5230b](https://github.com/grafana/k6-studio/commit/3b5230bdf65a27c753a0d19a3ef5aa1d2bea0402))
+- Fix macos build error and improve local build/hmr performance ([#1097](https://github.com/grafana/k6-studio/issues/1097)) ([3b5230b](https://github.com/grafana/k6-studio/commit/3b5230bdf65a27c753a0d19a3ef5aa1d2bea0402))

## [1.11.0](https://github.com/grafana/k6-studio/compare/v1.10.0...v1.11.0) (2026-02-04)

-
### Features

-* Add User survey banner ([#1069](https://github.com/grafana/k6-studio/issues/1069)) ([0ad8d20](https://github.com/grafana/k6-studio/commit/0ad8d2008d04960bc56b305a3595a323fa390a76))
-* **browser:** Session replay while debugging browser tests ([#1035](https://github.com/grafana/k6-studio/issues/1035)) ([6ec179a](https://github.com/grafana/k6-studio/commit/6ec179a81e4beae8ffbd9fb687cba68e7270ced7))
+- Add User survey banner ([#1069](https://github.com/grafana/k6-studio/issues/1069)) ([0ad8d20](https://github.com/grafana/k6-studio/commit/0ad8d2008d04960bc56b305a3595a323fa390a76))
+- **browser:** Session replay while debugging browser tests ([#1035](https://github.com/grafana/k6-studio/issues/1035)) ([6ec179a](https://github.com/grafana/k6-studio/commit/6ec179a81e4beae8ffbd9fb687cba68e7270ced7))

-
### Bug Fixes

-* **deps:** update dependency devtools-protocol to ^0.0.1568225 ([#992](https://github.com/grafana/k6-studio/issues/992)) ([b7e98e6](https://github.com/grafana/k6-studio/commit/b7e98e6a7ce09cc37fe3bd07b85a396a6226e5fc))
-* **deps:** update dependency diff to v8 [security] ([#1036](https://github.com/grafana/k6-studio/issues/1036)) ([f603339](https://github.com/grafana/k6-studio/commit/f603339bdc6d2bd770003b8781aadfca28787954))
-* disable vite build concurrency ([#1073](https://github.com/grafana/k6-studio/issues/1073)) ([7315658](https://github.com/grafana/k6-studio/commit/7315658be87cbe818c06720b9f288eafd079048d))
+- **deps:** update dependency devtools-protocol to ^0.0.1568225 ([#992](https://github.com/grafana/k6-studio/issues/992)) ([b7e98e6](https://github.com/grafana/k6-studio/commit/b7e98e6a7ce09cc37fe3bd07b85a396a6226e5fc))
+- **deps:** update dependency diff to v8 [security] ([#1036](https://github.com/grafana/k6-studio/issues/1036)) ([f603339](https://github.com/grafana/k6-studio/commit/f603339bdc6d2bd770003b8781aadfca28787954))
+- disable vite build concurrency ([#1073](https://github.com/grafana/k6-studio/issues/1073)) ([7315658](https://github.com/grafana/k6-studio/commit/7315658be87cbe818c06720b9f288eafd079048d))

-
### Internal Changes

-* **browser:** Add browser test editor UI ([#1005](https://github.com/grafana/k6-studio/issues/1005)) ([ec89b04](https://github.com/grafana/k6-studio/commit/ec89b042d6af79f1e03f5c1d21c372025e26a143))
-* **browser:** Browser action editing MVP ([#1031](https://github.com/grafana/k6-studio/issues/1031)) ([08c15f4](https://github.com/grafana/k6-studio/commit/08c15f46bcd2ac7f1d465098272fbdab74afaac0))
-* **fix:** Session replay does not work in production builds ([#1075](https://github.com/grafana/k6-studio/issues/1075)) ([6558fda](https://github.com/grafana/k6-studio/commit/6558fda53d136b73357a8554baa34e2f98211065))
+- **browser:** Add browser test editor UI ([#1005](https://github.com/grafana/k6-studio/issues/1005)) ([ec89b04](https://github.com/grafana/k6-studio/commit/ec89b042d6af79f1e03f5c1d21c372025e26a143))
+- **browser:** Browser action editing MVP ([#1031](https://github.com/grafana/k6-studio/issues/1031)) ([08c15f4](https://github.com/grafana/k6-studio/commit/08c15f46bcd2ac7f1d465098272fbdab74afaac0))
+- **fix:** Session replay does not work in production builds ([#1075](https://github.com/grafana/k6-studio/issues/1075)) ([6558fda](https://github.com/grafana/k6-studio/commit/6558fda53d136b73357a8554baa34e2f98211065))

-
### Dependency Updates

-* Migrate to React 19 ([#1041](https://github.com/grafana/k6-studio/issues/1041)) ([3fbd16a](https://github.com/grafana/k6-studio/commit/3fbd16ac6a9dd5b7b9f7c70e05214c4f7a2d2ddf))
-* Update `monaco-editor`, `@monaco-editor/react`, and `constrained-editor-plugin` ([#1040](https://github.com/grafana/k6-studio/issues/1040)) ([f7a54af](https://github.com/grafana/k6-studio/commit/f7a54af211dc346e19e34eeba9acb04b6a444d54))
+- Migrate to React 19 ([#1041](https://github.com/grafana/k6-studio/issues/1041)) ([3fbd16a](https://github.com/grafana/k6-studio/commit/3fbd16ac6a9dd5b7b9f7c70e05214c4f7a2d2ddf))
+- Update `monaco-editor`, `@monaco-editor/react`, and `constrained-editor-plugin` ([#1040](https://github.com/grafana/k6-studio/issues/1040)) ([f7a54af](https://github.com/grafana/k6-studio/commit/f7a54af211dc346e19e34eeba9acb04b6a444d54))

-
### Miscellaneous Chores

-* **deps:** update actions/checkout action to v6 ([#1001](https://github.com/grafana/k6-studio/issues/1001)) ([0cd6bfb](https://github.com/grafana/k6-studio/commit/0cd6bfb572b35fcddf817443cc1843d66639582f))
-* **deps:** update actions/create-github-app-token action to v2 ([#1002](https://github.com/grafana/k6-studio/issues/1002)) ([cb92991](https://github.com/grafana/k6-studio/commit/cb9299149f6cf8a55f8a7eb25dd4965ff899b00d))
-* **deps:** update actions/setup-node action to v5 ([#1018](https://github.com/grafana/k6-studio/issues/1018)) ([39370f1](https://github.com/grafana/k6-studio/commit/39370f16db09d4aaa53c8de0d2be5f6b1c12453e))
-* **deps:** update actions/setup-python action to v6 ([#1019](https://github.com/grafana/k6-studio/issues/1019)) ([cccdb97](https://github.com/grafana/k6-studio/commit/cccdb9765818675d81882914ed42207ca174a718))
-* **deps:** update dependency dotenv to v17 ([#1021](https://github.com/grafana/k6-studio/issues/1021)) ([5dc68b0](https://github.com/grafana/k6-studio/commit/5dc68b046e70c70bcad9f671d4b374e187586635))
-* **deps:** update dependency esbuild to ^0.27.0 ([#996](https://github.com/grafana/k6-studio/issues/996)) ([3a7d5fa](https://github.com/grafana/k6-studio/commit/3a7d5fa66bdb4d73592b2327c0242e0a98f93820))
-* **deps:** update dependency eslint-plugin-unused-imports to v4 ([#1028](https://github.com/grafana/k6-studio/issues/1028)) ([e7251bc](https://github.com/grafana/k6-studio/commit/e7251bc469337d0bb2719b3668e2bedd69fd533b))
-* **deps:** update dependency lodash-es to v4.17.23 [security] ([#1034](https://github.com/grafana/k6-studio/issues/1034)) ([85227c1](https://github.com/grafana/k6-studio/commit/85227c1290a38665b6e467a6784ba416a778cdb5))
-* **deps:** update dependency undici to v7.18.2 [security] ([#1012](https://github.com/grafana/k6-studio/issues/1012)) ([ce37d0d](https://github.com/grafana/k6-studio/commit/ce37d0dd21a6f0de2708e9d3114cda0ec7200be8))
-* **deps:** update grafana/shared-workflows/get-vault-secrets action to v1.3.0 ([#998](https://github.com/grafana/k6-studio/issues/998)) ([d8e330c](https://github.com/grafana/k6-studio/commit/d8e330c0b6fd8bf06ce6da42f9d25b1dd88ebe8b))
-* **deps:** update react monorepo ([#991](https://github.com/grafana/k6-studio/issues/991)) ([43999ca](https://github.com/grafana/k6-studio/commit/43999ca17bcd6ab98b308f12006915b253d8f508))
-* **main:** release 1.11.0 ([#1014](https://github.com/grafana/k6-studio/issues/1014)) ([6a4c5af](https://github.com/grafana/k6-studio/commit/6a4c5af4865f762fc8d0a891cd36a81c3878852f))
-* **main:** release 1.11.0 ([#1070](https://github.com/grafana/k6-studio/issues/1070)) ([794261f](https://github.com/grafana/k6-studio/commit/794261f7e5be46a12af20ac61d0f0de2be4043c5))
-* Revert "chore(main): release 1.11.0 ([#1014](https://github.com/grafana/k6-studio/issues/1014))" ([#1072](https://github.com/grafana/k6-studio/issues/1072)) ([b74bac5](https://github.com/grafana/k6-studio/commit/b74bac5550ba8b47f19a5373b3a9f8bc17195d75))
-* Revert "chore(main): release 1.11.0 ([#1070](https://github.com/grafana/k6-studio/issues/1070))" ([#1076](https://github.com/grafana/k6-studio/issues/1076)) ([b4a3b2f](https://github.com/grafana/k6-studio/commit/b4a3b2f779028903369fc5c9d50e0b62374bc3f2))
+- **deps:** update actions/checkout action to v6 ([#1001](https://github.com/grafana/k6-studio/issues/1001)) ([0cd6bfb](https://github.com/grafana/k6-studio/commit/0cd6bfb572b35fcddf817443cc1843d66639582f))
+- **deps:** update actions/create-github-app-token action to v2 ([#1002](https://github.com/grafana/k6-studio/issues/1002)) ([cb92991](https://github.com/grafana/k6-studio/commit/cb9299149f6cf8a55f8a7eb25dd4965ff899b00d))
+- **deps:** update actions/setup-node action to v5 ([#1018](https://github.com/grafana/k6-studio/issues/1018)) ([39370f1](https://github.com/grafana/k6-studio/commit/39370f16db09d4aaa53c8de0d2be5f6b1c12453e))
+- **deps:** update actions/setup-python action to v6 ([#1019](https://github.com/grafana/k6-studio/issues/1019)) ([cccdb97](https://github.com/grafana/k6-studio/commit/cccdb9765818675d81882914ed42207ca174a718))
+- **deps:** update dependency dotenv to v17 ([#1021](https://github.com/grafana/k6-studio/issues/1021)) ([5dc68b0](https://github.com/grafana/k6-studio/commit/5dc68b046e70c70bcad9f671d4b374e187586635))
+- **deps:** update dependency esbuild to ^0.27.0 ([#996](https://github.com/grafana/k6-studio/issues/996)) ([3a7d5fa](https://github.com/grafana/k6-studio/commit/3a7d5fa66bdb4d73592b2327c0242e0a98f93820))
+- **deps:** update dependency eslint-plugin-unused-imports to v4 ([#1028](https://github.com/grafana/k6-studio/issues/1028)) ([e7251bc](https://github.com/grafana/k6-studio/commit/e7251bc469337d0bb2719b3668e2bedd69fd533b))
+- **deps:** update dependency lodash-es to v4.17.23 [security] ([#1034](https://github.com/grafana/k6-studio/issues/1034)) ([85227c1](https://github.com/grafana/k6-studio/commit/85227c1290a38665b6e467a6784ba416a778cdb5))
+- **deps:** update dependency undici to v7.18.2 [security] ([#1012](https://github.com/grafana/k6-studio/issues/1012)) ([ce37d0d](https://github.com/grafana/k6-studio/commit/ce37d0dd21a6f0de2708e9d3114cda0ec7200be8))
+- **deps:** update grafana/shared-workflows/get-vault-secrets action to v1.3.0 ([#998](https://github.com/grafana/k6-studio/issues/998)) ([d8e330c](https://github.com/grafana/k6-studio/commit/d8e330c0b6fd8bf06ce6da42f9d25b1dd88ebe8b))
+- **deps:** update react monorepo ([#991](https://github.com/grafana/k6-studio/issues/991)) ([43999ca](https://github.com/grafana/k6-studio/commit/43999ca17bcd6ab98b308f12006915b253d8f508))
+- **main:** release 1.11.0 ([#1014](https://github.com/grafana/k6-studio/issues/1014)) ([6a4c5af](https://github.com/grafana/k6-studio/commit/6a4c5af4865f762fc8d0a891cd36a81c3878852f))
+- **main:** release 1.11.0 ([#1070](https://github.com/grafana/k6-studio/issues/1070)) ([794261f](https://github.com/grafana/k6-studio/commit/794261f7e5be46a12af20ac61d0f0de2be4043c5))
+- Revert "chore(main): release 1.11.0 ([#1014](https://github.com/grafana/k6-studio/issues/1014))" ([#1072](https://github.com/grafana/k6-studio/issues/1072)) ([b74bac5](https://github.com/grafana/k6-studio/commit/b74bac5550ba8b47f19a5373b3a9f8bc17195d75))
+- Revert "chore(main): release 1.11.0 ([#1070](https://github.com/grafana/k6-studio/issues/1070))" ([#1076](https://github.com/grafana/k6-studio/issues/1076)) ([b4a3b2f](https://github.com/grafana/k6-studio/commit/b4a3b2f779028903369fc5c9d50e0b62374bc3f2))

-
### Code Refactoring

-* **browser:** Make comments emitted by codegen stick to the statement below them ([#1038](https://github.com/grafana/k6-studio/issues/1038)) ([1b93434](https://github.com/grafana/k6-studio/commit/1b934347abb9103a3d6c26981b44334c4ceb25c0))
+- **browser:** Make comments emitted by codegen stick to the statement below them ([#1038](https://github.com/grafana/k6-studio/issues/1038)) ([1b93434](https://github.com/grafana/k6-studio/commit/1b934347abb9103a3d6c26981b44334c4ceb25c0))

-
### Continuous Integration

-* Configure renovate to only upgrade packages with security updates ([#1039](https://github.com/grafana/k6-studio/issues/1039)) ([734f6fc](https://github.com/grafana/k6-studio/commit/734f6fc7fe9542050caf1d19092cbbf47b513794))
-* **windows:** Fix windows release job ([#1071](https://github.com/grafana/k6-studio/issues/1071)) ([7a2da01](https://github.com/grafana/k6-studio/commit/7a2da010ee2d15c4eaed9337c16cf1d83da0c347))
+- Configure renovate to only upgrade packages with security updates ([#1039](https://github.com/grafana/k6-studio/issues/1039)) ([734f6fc](https://github.com/grafana/k6-studio/commit/734f6fc7fe9542050caf1d19092cbbf47b513794))
+- **windows:** Fix windows release job ([#1071](https://github.com/grafana/k6-studio/issues/1071)) ([7a2da01](https://github.com/grafana/k6-studio/commit/7a2da010ee2d15c4eaed9337c16cf1d83da0c347))

## [1.10.0](https://github.com/grafana/k6-studio/compare/v1.9.0...v1.10.0) (2026-01-15)

-
### Features

-* add dialog confirmation for destructive actions ([#928](https://github.com/grafana/k6-studio/issues/928)) ([4fd55d4](https://github.com/grafana/k6-studio/commit/4fd55d417048d85a0ea3c0830543ccb61f211a9f))
-* Autocorrelation public preview ([#947](https://github.com/grafana/k6-studio/issues/947)) ([c640920](https://github.com/grafana/k6-studio/commit/c640920460c34483221d0108a23efe5a7b5870f1))
-* **browser:** Add support for waiting for Element to appear ([#941](https://github.com/grafana/k6-studio/issues/941)) ([c4890ae](https://github.com/grafana/k6-studio/commit/c4890aebe3984862b4dcb22891a4aa5e253c5804))
-* **browser:** Improved debugging experience for browser scripts ([#881](https://github.com/grafana/k6-studio/issues/881)) ([9188e84](https://github.com/grafana/k6-studio/commit/9188e8403182cc146c0ce349a04e4dc0decad46e))
-* Improve autocorrelation error handling ([#933](https://github.com/grafana/k6-studio/issues/933)) ([63726a8](https://github.com/grafana/k6-studio/commit/63726a8f7d972899632061d30d860b0ce0910ee0))
+- add dialog confirmation for destructive actions ([#928](https://github.com/grafana/k6-studio/issues/928)) ([4fd55d4](https://github.com/grafana/k6-studio/commit/4fd55d417048d85a0ea3c0830543ccb61f211a9f))
+- Autocorrelation public preview ([#947](https://github.com/grafana/k6-studio/issues/947)) ([c640920](https://github.com/grafana/k6-studio/commit/c640920460c34483221d0108a23efe5a7b5870f1))
+- **browser:** Add support for waiting for Element to appear ([#941](https://github.com/grafana/k6-studio/issues/941)) ([c4890ae](https://github.com/grafana/k6-studio/commit/c4890aebe3984862b4dcb22891a4aa5e253c5804))
+- **browser:** Improved debugging experience for browser scripts ([#881](https://github.com/grafana/k6-studio/issues/881)) ([9188e84](https://github.com/grafana/k6-studio/commit/9188e8403182cc146c0ce349a04e4dc0decad46e))
+- Improve autocorrelation error handling ([#933](https://github.com/grafana/k6-studio/issues/933)) ([63726a8](https://github.com/grafana/k6-studio/commit/63726a8f7d972899632061d30d860b0ce0910ee0))

-
### Bug Fixes

-* Border can be seen though Sidebar expand button ([#943](https://github.com/grafana/k6-studio/issues/943)) ([37b3201](https://github.com/grafana/k6-studio/commit/37b32015354da0c29e1b5fa6c9c80d325893bc12))
-* close websocket server when browser recording exits ([#985](https://github.com/grafana/k6-studio/issues/985)) ([2100fb1](https://github.com/grafana/k6-studio/commit/2100fb1a89380e89a5d821f4b630c0acbbab17db))
-* **deps:** update dependency lucide-react to ^0.562.0 ([#999](https://github.com/grafana/k6-studio/issues/999)) ([334cffb](https://github.com/grafana/k6-studio/commit/334cffbce328c6e54d9d1c73103a0d735bea36b0))
-* Disable AI message storing, wait for proxy ([#967](https://github.com/grafana/k6-studio/issues/967)) ([1a8220f](https://github.com/grafana/k6-studio/commit/1a8220fcdf10c83d7125675df1e5afe562cc0245))
-* Ipv6 binding error on windows ([#1003](https://github.com/grafana/k6-studio/issues/1003)) ([a9ff571](https://github.com/grafana/k6-studio/commit/a9ff5710371eb9e6818d68f0c33d06022efe2d76))
-* Rules with regex and begin-end selectors replace all occurences of matched value ([#966](https://github.com/grafana/k6-studio/issues/966)) ([85b55b6](https://github.com/grafana/k6-studio/commit/85b55b628898e3c074280a7983771d3338628821))
-* Scripts without k6/execution import cannot be run in Validator ([#946](https://github.com/grafana/k6-studio/issues/946)) ([8cafb9e](https://github.com/grafana/k6-studio/commit/8cafb9e9ac680de29ea08bf40bc7138384dd41cf))
+- Border can be seen though Sidebar expand button ([#943](https://github.com/grafana/k6-studio/issues/943)) ([37b3201](https://github.com/grafana/k6-studio/commit/37b32015354da0c29e1b5fa6c9c80d325893bc12))
+- close websocket server when browser recording exits ([#985](https://github.com/grafana/k6-studio/issues/985)) ([2100fb1](https://github.com/grafana/k6-studio/commit/2100fb1a89380e89a5d821f4b630c0acbbab17db))
+- **deps:** update dependency lucide-react to ^0.562.0 ([#999](https://github.com/grafana/k6-studio/issues/999)) ([334cffb](https://github.com/grafana/k6-studio/commit/334cffbce328c6e54d9d1c73103a0d735bea36b0))
+- Disable AI message storing, wait for proxy ([#967](https://github.com/grafana/k6-studio/issues/967)) ([1a8220f](https://github.com/grafana/k6-studio/commit/1a8220fcdf10c83d7125675df1e5afe562cc0245))
+- Ipv6 binding error on windows ([#1003](https://github.com/grafana/k6-studio/issues/1003)) ([a9ff571](https://github.com/grafana/k6-studio/commit/a9ff5710371eb9e6818d68f0c33d06022efe2d76))
+- Rules with regex and begin-end selectors replace all occurences of matched value ([#966](https://github.com/grafana/k6-studio/issues/966)) ([85b55b6](https://github.com/grafana/k6-studio/commit/85b55b628898e3c074280a7983771d3338628821))
+- Scripts without k6/execution import cannot be run in Validator ([#946](https://github.com/grafana/k6-studio/issues/946)) ([8cafb9e](https://github.com/grafana/k6-studio/commit/8cafb9e9ac680de29ea08bf40bc7138384dd41cf))

-
### Internal Changes

-* Add AI usage disclaimer ([#944](https://github.com/grafana/k6-studio/issues/944)) ([61079d3](https://github.com/grafana/k6-studio/commit/61079d3ba5fa4ec1ff025a8988fe89b98bdfe2da))
-* Add autocorrelation usage tracking ([#926](https://github.com/grafana/k6-studio/issues/926)) ([bd6186a](https://github.com/grafana/k6-studio/commit/bd6186a5bf09a6d11021afd00235c21c56f9997e))
-* **browser:** Create empty browser tests ([#973](https://github.com/grafana/k6-studio/issues/973)) ([5c01cfe](https://github.com/grafana/k6-studio/commit/5c01cfe5595b6dfcf6cd29d2da4dc367a83ffe05))
-* **browser:** Expand drawer when clicking tab in browser debugger ([#1010](https://github.com/grafana/k6-studio/issues/1010)) ([9b44413](https://github.com/grafana/k6-studio/commit/9b44413f5d1e3ce054288cc889409cbf11eab2c6))
-* Don't track script_validated event when validation is triggered automatically  ([#930](https://github.com/grafana/k6-studio/issues/930)) ([aad1da1](https://github.com/grafana/k6-studio/commit/aad1da12b30ebecc5b3954151af19d5f62099147))
-* **fix:** Console drawer in browser debugger is not scrollable ([#964](https://github.com/grafana/k6-studio/issues/964)) ([71cf3ce](https://github.com/grafana/k6-studio/commit/71cf3ceeb6ec1c4fae597af3bf1d48e7ca3aa7b9))
-* Improve correlation prompts and tools ([#920](https://github.com/grafana/k6-studio/issues/920)) ([03a5c68](https://github.com/grafana/k6-studio/commit/03a5c6822fc330baaadca0f8d57465e445b3af53))
-* Prevent autocorrelation dialog closing by clicking outside ([#945](https://github.com/grafana/k6-studio/issues/945)) ([65ee05a](https://github.com/grafana/k6-studio/commit/65ee05aacfe5893bb34096bfe4a65b7c97fd17d1))
-* Sum token usage and show input/output separately ([#949](https://github.com/grafana/k6-studio/issues/949)) ([ff8fa3f](https://github.com/grafana/k6-studio/commit/ff8fa3f504fc145c53ac799e3ab67b02651d6f63))
-* Update autocorrelation copy, add feature preview badge ([#948](https://github.com/grafana/k6-studio/issues/948)) ([2f83a07](https://github.com/grafana/k6-studio/commit/2f83a07f4238a07401d0d9b500b95908f333cef2))
+- Add AI usage disclaimer ([#944](https://github.com/grafana/k6-studio/issues/944)) ([61079d3](https://github.com/grafana/k6-studio/commit/61079d3ba5fa4ec1ff025a8988fe89b98bdfe2da))
+- Add autocorrelation usage tracking ([#926](https://github.com/grafana/k6-studio/issues/926)) ([bd6186a](https://github.com/grafana/k6-studio/commit/bd6186a5bf09a6d11021afd00235c21c56f9997e))
+- **browser:** Create empty browser tests ([#973](https://github.com/grafana/k6-studio/issues/973)) ([5c01cfe](https://github.com/grafana/k6-studio/commit/5c01cfe5595b6dfcf6cd29d2da4dc367a83ffe05))
+- **browser:** Expand drawer when clicking tab in browser debugger ([#1010](https://github.com/grafana/k6-studio/issues/1010)) ([9b44413](https://github.com/grafana/k6-studio/commit/9b44413f5d1e3ce054288cc889409cbf11eab2c6))
+- Don't track script_validated event when validation is triggered automatically ([#930](https://github.com/grafana/k6-studio/issues/930)) ([aad1da1](https://github.com/grafana/k6-studio/commit/aad1da12b30ebecc5b3954151af19d5f62099147))
+- **fix:** Console drawer in browser debugger is not scrollable ([#964](https://github.com/grafana/k6-studio/issues/964)) ([71cf3ce](https://github.com/grafana/k6-studio/commit/71cf3ceeb6ec1c4fae597af3bf1d48e7ca3aa7b9))
+- Improve correlation prompts and tools ([#920](https://github.com/grafana/k6-studio/issues/920)) ([03a5c68](https://github.com/grafana/k6-studio/commit/03a5c6822fc330baaadca0f8d57465e445b3af53))
+- Prevent autocorrelation dialog closing by clicking outside ([#945](https://github.com/grafana/k6-studio/issues/945)) ([65ee05a](https://github.com/grafana/k6-studio/commit/65ee05aacfe5893bb34096bfe4a65b7c97fd17d1))
+- Sum token usage and show input/output separately ([#949](https://github.com/grafana/k6-studio/issues/949)) ([ff8fa3f](https://github.com/grafana/k6-studio/commit/ff8fa3f504fc145c53ac799e3ab67b02651d6f63))
+- Update autocorrelation copy, add feature preview badge ([#948](https://github.com/grafana/k6-studio/issues/948)) ([2f83a07](https://github.com/grafana/k6-studio/commit/2f83a07f4238a07401d0d9b500b95908f333cef2))

-
### Documentation

-* Correct link to Code of Conduct in CONTRIBUTING.md ([#971](https://github.com/grafana/k6-studio/issues/971)) ([2484126](https://github.com/grafana/k6-studio/commit/248412686fce333db8debb702f53462d1e7720a9))
+- Correct link to Code of Conduct in CONTRIBUTING.md ([#971](https://github.com/grafana/k6-studio/issues/971)) ([2484126](https://github.com/grafana/k6-studio/commit/248412686fce333db8debb702f53462d1e7720a9))

-
### Miscellaneous Chores

-* Bump macos runner to 15 ([#952](https://github.com/grafana/k6-studio/issues/952)) ([cd4ff67](https://github.com/grafana/k6-studio/commit/cd4ff67f19d88288c05f275a05912058ec399bcb))
-* **deps:** bump body-parser from 2.2.0 to 2.2.1 ([#909](https://github.com/grafana/k6-studio/issues/909)) ([9619732](https://github.com/grafana/k6-studio/commit/9619732bb773658a89e0f2b6f24a5331ae689220))
-* **deps:** bump express ([#918](https://github.com/grafana/k6-studio/issues/918)) ([2c020b8](https://github.com/grafana/k6-studio/commit/2c020b897a7ff5ba604fa688703a5d0e45f8ccc9))
-* **deps:** bump node-forge from 1.3.1 to 1.3.2 ([#911](https://github.com/grafana/k6-studio/issues/911)) ([d17b188](https://github.com/grafana/k6-studio/commit/d17b188fc360596dcf0f02671731c80b251bf546))
-* **deps:** bump qs and body-parser ([#968](https://github.com/grafana/k6-studio/issues/968)) ([8fbfc91](https://github.com/grafana/k6-studio/commit/8fbfc91481a574d860cdb49e5b3e525e7a700bfe))
-* **deps:** bump react-router and react-router-dom ([#989](https://github.com/grafana/k6-studio/issues/989)) ([6f9bb6d](https://github.com/grafana/k6-studio/commit/6f9bb6d86589650e657c6307a435682e3d7d4e43))
-* **deps:** pin dependencies ([#913](https://github.com/grafana/k6-studio/issues/913)) ([fcd6cf7](https://github.com/grafana/k6-studio/commit/fcd6cf77792f58bf42722512abd2d1587dcb0198))
-* **deps:** pin dependencies ([#995](https://github.com/grafana/k6-studio/issues/995)) ([a8733aa](https://github.com/grafana/k6-studio/commit/a8733aa5c3a080d70e628433694cfa572f8adaf2))
-* **deps:** update actions/setup-dotnet action to v5.0.1 ([#915](https://github.com/grafana/k6-studio/issues/915)) ([7f2973a](https://github.com/grafana/k6-studio/commit/7f2973a5af6c00ecc8ae40f8c6f472477668b989))
-* **deps:** update amannn/action-semantic-pull-request digest to 71b07ef ([#914](https://github.com/grafana/k6-studio/issues/914)) ([ea9b03c](https://github.com/grafana/k6-studio/commit/ea9b03c83afc287bf959a2d117c732553378809e))
-* **deps:** update dependency @ai-sdk/openai to v2.0.86 ([#916](https://github.com/grafana/k6-studio/issues/916)) ([7f24ab3](https://github.com/grafana/k6-studio/commit/7f24ab35e95588d5e6f2d5d57ebf16ec8d7c8517))
-* **deps:** update dependency @ai-sdk/openai to v2.0.89 ([#974](https://github.com/grafana/k6-studio/issues/974)) ([046b0a8](https://github.com/grafana/k6-studio/commit/046b0a82c029b9270b5133704c38bf7b65ef2cd4))
-* **deps:** update dependency @ai-sdk/react to v2.0.107 ([#927](https://github.com/grafana/k6-studio/issues/927)) ([94eae5d](https://github.com/grafana/k6-studio/commit/94eae5db2b2cae9df5a6a45516fbde90bc3dfbf8))
-* **deps:** update dependency @ai-sdk/react to v2.0.108 ([#931](https://github.com/grafana/k6-studio/issues/931)) ([1ec3173](https://github.com/grafana/k6-studio/commit/1ec317375ea7c9da14a6a46fa66d8f9664f97c01))
-* **deps:** update dependency @ai-sdk/react to v2.0.109 ([#937](https://github.com/grafana/k6-studio/issues/937)) ([70ca787](https://github.com/grafana/k6-studio/commit/70ca7873db1bcfb4b98b380fb7ecc11aeb08336a))
-* **deps:** update dependency @sentry/vite-plugin to v2.23.1 ([#929](https://github.com/grafana/k6-studio/issues/929)) ([478d92e](https://github.com/grafana/k6-studio/commit/478d92e7547a980c69cfcfa10ba9448960d4b605))
-* **deps:** update dependency @types/webextension-polyfill to ^0.12.3 ([#932](https://github.com/grafana/k6-studio/issues/932)) ([2798f9c](https://github.com/grafana/k6-studio/commit/2798f9c1222d71689cbce9853e84d25110d8ea1a))
-* **deps:** update dependency allotment to v1.20.4 ([#935](https://github.com/grafana/k6-studio/issues/935)) ([cda68e8](https://github.com/grafana/k6-studio/commit/cda68e86168e65add0f7d70ded3eb74e81a159a6))
-* **deps:** update dependency dom-accessibility-api to v0.7.1 ([#936](https://github.com/grafana/k6-studio/issues/936)) ([3348017](https://github.com/grafana/k6-studio/commit/3348017b95370480553211dd6cfcf0a0c70d240d))
-* **deps:** update dependency find-process to v1.4.11 ([#938](https://github.com/grafana/k6-studio/issues/938)) ([83c0514](https://github.com/grafana/k6-studio/commit/83c0514fb45f57f00bc6ae922e28fd9cee8cf669))
-* **deps:** update googleapis/release-please-action action to v4.4.0 ([#997](https://github.com/grafana/k6-studio/issues/997)) ([67660e7](https://github.com/grafana/k6-studio/commit/67660e71b274c9deb67866dbddfdf8c09f32c88d))
-* Don't allow to use basic-text encryption on linux ([#940](https://github.com/grafana/k6-studio/issues/940)) ([b8790c6](https://github.com/grafana/k6-studio/commit/b8790c69fb0a224401fa1a6f065b50e9d3c23535))
-* Fix shim import path generation on Windows ([#925](https://github.com/grafana/k6-studio/issues/925)) ([d5a163f](https://github.com/grafana/k6-studio/commit/d5a163fca0585e06618381720689a6c5fd7d90c2))
-* **main:** release 1.10.0 ([#907](https://github.com/grafana/k6-studio/issues/907)) ([0926c3d](https://github.com/grafana/k6-studio/commit/0926c3dd26ca9a872128c2c306943045f6fe2b6a))
-* Revert release ([#961](https://github.com/grafana/k6-studio/issues/961)) ([22355f1](https://github.com/grafana/k6-studio/commit/22355f151e205e76cd05c5807c13d24033495616))
-* Use macos-15-intel runner ([#955](https://github.com/grafana/k6-studio/issues/955)) ([0f6b488](https://github.com/grafana/k6-studio/commit/0f6b488b6a67e2e19ad8ec6543a24e64cb8b127e))
+- Bump macos runner to 15 ([#952](https://github.com/grafana/k6-studio/issues/952)) ([cd4ff67](https://github.com/grafana/k6-studio/commit/cd4ff67f19d88288c05f275a05912058ec399bcb))
+- **deps:** bump body-parser from 2.2.0 to 2.2.1 ([#909](https://github.com/grafana/k6-studio/issues/909)) ([9619732](https://github.com/grafana/k6-studio/commit/9619732bb773658a89e0f2b6f24a5331ae689220))
+- **deps:** bump express ([#918](https://github.com/grafana/k6-studio/issues/918)) ([2c020b8](https://github.com/grafana/k6-studio/commit/2c020b897a7ff5ba604fa688703a5d0e45f8ccc9))
+- **deps:** bump node-forge from 1.3.1 to 1.3.2 ([#911](https://github.com/grafana/k6-studio/issues/911)) ([d17b188](https://github.com/grafana/k6-studio/commit/d17b188fc360596dcf0f02671731c80b251bf546))
+- **deps:** bump qs and body-parser ([#968](https://github.com/grafana/k6-studio/issues/968)) ([8fbfc91](https://github.com/grafana/k6-studio/commit/8fbfc91481a574d860cdb49e5b3e525e7a700bfe))
+- **deps:** bump react-router and react-router-dom ([#989](https://github.com/grafana/k6-studio/issues/989)) ([6f9bb6d](https://github.com/grafana/k6-studio/commit/6f9bb6d86589650e657c6307a435682e3d7d4e43))
+- **deps:** pin dependencies ([#913](https://github.com/grafana/k6-studio/issues/913)) ([fcd6cf7](https://github.com/grafana/k6-studio/commit/fcd6cf77792f58bf42722512abd2d1587dcb0198))
+- **deps:** pin dependencies ([#995](https://github.com/grafana/k6-studio/issues/995)) ([a8733aa](https://github.com/grafana/k6-studio/commit/a8733aa5c3a080d70e628433694cfa572f8adaf2))
+- **deps:** update actions/setup-dotnet action to v5.0.1 ([#915](https://github.com/grafana/k6-studio/issues/915)) ([7f2973a](https://github.com/grafana/k6-studio/commit/7f2973a5af6c00ecc8ae40f8c6f472477668b989))
+- **deps:** update amannn/action-semantic-pull-request digest to 71b07ef ([#914](https://github.com/grafana/k6-studio/issues/914)) ([ea9b03c](https://github.com/grafana/k6-studio/commit/ea9b03c83afc287bf959a2d117c732553378809e))
+- **deps:** update dependency @ai-sdk/openai to v2.0.86 ([#916](https://github.com/grafana/k6-studio/issues/916)) ([7f24ab3](https://github.com/grafana/k6-studio/commit/7f24ab35e95588d5e6f2d5d57ebf16ec8d7c8517))
+- **deps:** update dependency @ai-sdk/openai to v2.0.89 ([#974](https://github.com/grafana/k6-studio/issues/974)) ([046b0a8](https://github.com/grafana/k6-studio/commit/046b0a82c029b9270b5133704c38bf7b65ef2cd4))
+- **deps:** update dependency @ai-sdk/react to v2.0.107 ([#927](https://github.com/grafana/k6-studio/issues/927)) ([94eae5d](https://github.com/grafana/k6-studio/commit/94eae5db2b2cae9df5a6a45516fbde90bc3dfbf8))
+- **deps:** update dependency @ai-sdk/react to v2.0.108 ([#931](https://github.com/grafana/k6-studio/issues/931)) ([1ec3173](https://github.com/grafana/k6-studio/commit/1ec317375ea7c9da14a6a46fa66d8f9664f97c01))
+- **deps:** update dependency @ai-sdk/react to v2.0.109 ([#937](https://github.com/grafana/k6-studio/issues/937)) ([70ca787](https://github.com/grafana/k6-studio/commit/70ca7873db1bcfb4b98b380fb7ecc11aeb08336a))
+- **deps:** update dependency @sentry/vite-plugin to v2.23.1 ([#929](https://github.com/grafana/k6-studio/issues/929)) ([478d92e](https://github.com/grafana/k6-studio/commit/478d92e7547a980c69cfcfa10ba9448960d4b605))
+- **deps:** update dependency @types/webextension-polyfill to ^0.12.3 ([#932](https://github.com/grafana/k6-studio/issues/932)) ([2798f9c](https://github.com/grafana/k6-studio/commit/2798f9c1222d71689cbce9853e84d25110d8ea1a))
+- **deps:** update dependency allotment to v1.20.4 ([#935](https://github.com/grafana/k6-studio/issues/935)) ([cda68e8](https://github.com/grafana/k6-studio/commit/cda68e86168e65add0f7d70ded3eb74e81a159a6))
+- **deps:** update dependency dom-accessibility-api to v0.7.1 ([#936](https://github.com/grafana/k6-studio/issues/936)) ([3348017](https://github.com/grafana/k6-studio/commit/3348017b95370480553211dd6cfcf0a0c70d240d))
+- **deps:** update dependency find-process to v1.4.11 ([#938](https://github.com/grafana/k6-studio/issues/938)) ([83c0514](https://github.com/grafana/k6-studio/commit/83c0514fb45f57f00bc6ae922e28fd9cee8cf669))
+- **deps:** update googleapis/release-please-action action to v4.4.0 ([#997](https://github.com/grafana/k6-studio/issues/997)) ([67660e7](https://github.com/grafana/k6-studio/commit/67660e71b274c9deb67866dbddfdf8c09f32c88d))
+- Don't allow to use basic-text encryption on linux ([#940](https://github.com/grafana/k6-studio/issues/940)) ([b8790c6](https://github.com/grafana/k6-studio/commit/b8790c69fb0a224401fa1a6f065b50e9d3c23535))
+- Fix shim import path generation on Windows ([#925](https://github.com/grafana/k6-studio/issues/925)) ([d5a163f](https://github.com/grafana/k6-studio/commit/d5a163fca0585e06618381720689a6c5fd7d90c2))
+- **main:** release 1.10.0 ([#907](https://github.com/grafana/k6-studio/issues/907)) ([0926c3d](https://github.com/grafana/k6-studio/commit/0926c3dd26ca9a872128c2c306943045f6fe2b6a))
+- Revert release ([#961](https://github.com/grafana/k6-studio/issues/961)) ([22355f1](https://github.com/grafana/k6-studio/commit/22355f151e205e76cd05c5807c13d24033495616))
+- Use macos-15-intel runner ([#955](https://github.com/grafana/k6-studio/issues/955)) ([0f6b488](https://github.com/grafana/k6-studio/commit/0f6b488b6a67e2e19ad8ec6543a24e64cb8b127e))

-
### Build System

-* Bump forge packages and update configs to fix macos15-intel build ([#1007](https://github.com/grafana/k6-studio/issues/1007)) ([01c4710](https://github.com/grafana/k6-studio/commit/01c4710906a17acd7b4009313ea0afd92806341e))
+- Bump forge packages and update configs to fix macos15-intel build ([#1007](https://github.com/grafana/k6-studio/issues/1007)) ([01c4710](https://github.com/grafana/k6-studio/commit/01c4710906a17acd7b4009313ea0afd92806341e))

-
### Continuous Integration

-* Disable dependency pinning in Renovate ([#986](https://github.com/grafana/k6-studio/issues/986)) ([8a80f16](https://github.com/grafana/k6-studio/commit/8a80f16f4c11cdcdf3671b639f50708e075001f1))
+- Disable dependency pinning in Renovate ([#986](https://github.com/grafana/k6-studio/issues/986)) ([8a80f16](https://github.com/grafana/k6-studio/commit/8a80f16f4c11cdcdf3671b639f50708e075001f1))

## [1.9.0](https://github.com/grafana/k6-studio/compare/v1.8.0...v1.9.0) (2025-11-25)

-
### Features

-* Add Regex support to Verification rule ([#853](https://github.com/grafana/k6-studio/issues/853)) ([4e2fdd4](https://github.com/grafana/k6-studio/commit/4e2fdd4b7af66dbe15046b17080c424054ac8a23))
-* Add waitForNavigation on link clicks and form submissions ([#879](https://github.com/grafana/k6-studio/issues/879)) ([871b16a](https://github.com/grafana/k6-studio/commit/871b16ac35bc305bd5edba5a9a7af5b0f7676ea8))
-* **browser:** Expand selection to parent elements when adding text assertions ([3d8fc89](https://github.com/grafana/k6-studio/commit/3d8fc898e8cac117b2c93f8832fda957ab84280c))
-* **browser:** Generate `getByAltText`, `getByLabel`, `getByPlaceholder` and `getByTitle` selectors ([#886](https://github.com/grafana/k6-studio/issues/886)) ([2a14290](https://github.com/grafana/k6-studio/commit/2a1429000afaccb622097f2ea09d65c2bdb835b5))
-* **browser:** Generate getByRole selectors ([#877](https://github.com/grafana/k6-studio/issues/877)) ([9404fda](https://github.com/grafana/k6-studio/commit/9404fda33ac3f16c7ca426e957de3beb55abe688))
-* **browser:** Record browser interactions over Chrome DevTools Protocol (experimental) ([#871](https://github.com/grafana/k6-studio/issues/871)) ([af4dc07](https://github.com/grafana/k6-studio/commit/af4dc0751d30184969d33173f50f274eff0fa836))
+- Add Regex support to Verification rule ([#853](https://github.com/grafana/k6-studio/issues/853)) ([4e2fdd4](https://github.com/grafana/k6-studio/commit/4e2fdd4b7af66dbe15046b17080c424054ac8a23))
+- Add waitForNavigation on link clicks and form submissions ([#879](https://github.com/grafana/k6-studio/issues/879)) ([871b16a](https://github.com/grafana/k6-studio/commit/871b16ac35bc305bd5edba5a9a7af5b0f7676ea8))
+- **browser:** Expand selection to parent elements when adding text assertions ([3d8fc89](https://github.com/grafana/k6-studio/commit/3d8fc898e8cac117b2c93f8832fda957ab84280c))
+- **browser:** Generate `getByAltText`, `getByLabel`, `getByPlaceholder` and `getByTitle` selectors ([#886](https://github.com/grafana/k6-studio/issues/886)) ([2a14290](https://github.com/grafana/k6-studio/commit/2a1429000afaccb622097f2ea09d65c2bdb835b5))
+- **browser:** Generate getByRole selectors ([#877](https://github.com/grafana/k6-studio/issues/877)) ([9404fda](https://github.com/grafana/k6-studio/commit/9404fda33ac3f16c7ca426e957de3beb55abe688))
... diff truncated: showing 490 of 1670 lines

You can send follow-ups to the cloud agent here.

Comment thread src/components/AutoScrollArea.tsx
Comment thread src/views/BrowserTestEditor/BrowserTestEditor.tsx
@allansson
Copy link
Copy Markdown
Collaborator Author

bugbot run

Copy link
Copy Markdown
Contributor

@cursor cursor bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Cursor Bugbot has reviewed your changes and found 1 potential issue.

Fix All in Cursor

Bugbot Autofix prepared a fix for the issue found in the latest run.

  • ✅ Fixed: Hidden source toggles silently dropped from filter state
    • Modified useConsoleFilter hook to accept options parameter that excludes hidden sources from initial filter state, ensuring filter state always matches visible UI controls.

Create PR

Or push these changes by commenting:

@cursor push 229326490e
Preview (229326490e)
diff --git a/src/components/Validator/ExecutionDetails.tsx b/src/components/Validator/ExecutionDetails.tsx
--- a/src/components/Validator/ExecutionDetails.tsx
+++ b/src/components/Validator/ExecutionDetails.tsx
@@ -27,7 +27,7 @@
     script !== undefined ? 'script' : 'logs'
   )
 
-  const consoleFilter = useConsoleFilter()
+  const consoleFilter = useConsoleFilter({ browser: false })
 
   const handleTabChange = (value: string) => {
     if (value !== 'logs' && value !== 'checks' && value !== 'script') {

diff --git a/src/components/Validator/LogsSection/LogsSection.tsx b/src/components/Validator/LogsSection/LogsSection.tsx
--- a/src/components/Validator/LogsSection/LogsSection.tsx
+++ b/src/components/Validator/LogsSection/LogsSection.tsx
@@ -23,10 +23,29 @@
   'script',
 ]
 
-export function useConsoleFilter() {
+interface UseConsoleFilterOptions {
+  browser?: boolean
+  script?: boolean
+  runtime?: boolean
+}
+
+export function useConsoleFilter(options?: UseConsoleFilterOptions) {
+  const {
+    browser = true,
+    script = true,
+    runtime = true,
+  } = options ?? {}
+
+  const initialSources = ALL_LOG_SOURCES.filter((source) => {
+    if (source === 'browser') return browser
+    if (source === 'script') return script
+    if (source === 'runtime') return runtime
+    return true
+  })
+
   const [filter, setFilter] = useState<ConsoleFilter>({
     levels: ALL_LOG_LEVELS,
-    sources: ALL_LOG_SOURCES,
+    sources: initialSources,
   })
 
   return {

You can send follow-ups to the cloud agent here.

Reviewed by Cursor Bugbot for commit 67e8b6c. Configure here.

Comment thread src/components/Validator/LogsSection/LogsSection.tsx
@allansson allansson marked this pull request as ready for review April 15, 2026 11:27
@allansson allansson requested a review from a team as a code owner April 15, 2026 11:27
Copy link
Copy Markdown
Collaborator

@going-confetti going-confetti left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM!

@allansson allansson merged commit a5da647 into main Apr 16, 2026
11 checks passed
@allansson allansson deleted the feat/improved-console-panel branch April 16, 2026 09:09
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Add source column to the console panel in the debugger view

2 participants