提交

提交图

991 次代码提交

作者 SHA1 备注 提交日期
Alex Rudenko 8cfd214229 chore: debug in devtools 2026-07-09 15:58:06 +02:00
Alex Rudenko 16db01f79c refactor: clean up page management (#2333)
- remove `#pages` and Puppeteer page getters
- rename methods for clarity
2026-07-09 11:42:11 +00:00
Nikolay Vitkov ca8d219ede revert: support experimental allowlist for navigate tool calls (#1935) (#2203)
This reverts commit d50255778a.
2026-07-09 11:14:55 +00:00
Dominik Inführ 15a6b789da feat: Print object count and total sizes in get_heapsnapshot_details (#2325)
This emits object count and total shallow sizes for
get_heapsnapshot_details.
2026-07-09 10:33:34 +00:00
Alex Rudenko 9bc61b43d6 refactor: make collectors work per page (#2324) 2026-07-09 10:03:03 +00:00
Dominik Inführ 2812902ba9 feat: Support filter with heap snapshots aggregates (#2323)
This exposes DevTools named filters in get_heapsnapshot_details and
get_heapsnapshot_class_nodes tools. This allows the client to list e.g.
all objects retained through detached DOM objects.

Co-authored-by: Dominik Inführ <dinfuehr@chromium.org>
2026-07-09 09:08:29 +00:00
Liohtml c065fd90ce fix(telemetry): resolve enum values through nested schema wrappers (#2315)
## What

`generateToolMetrics` reads an enum parameter's values by unwrapping
**at most
one** `optional` wrapper:

```ts
if (schema._def.values?.length > 0) {
  values = schema._def.values;
} else {
  values = schema._def.innerType._def.values; // only one level
}
```

An enum parameter wrapped in `.default().optional()` (or any nested
`optional`/`default`/`nullable` combination) therefore falls through to
`schema._def.innerType._def.values === undefined`, and `npm run
update-metrics`
(run as part of `npm run gen`) crashes:

```
TypeError: Cannot read properties of undefined (reading '0')
    at validateEnumHomogeneity (build/src/telemetry/metricsRegistry.js:12)
    at generateToolMetrics (build/src/telemetry/metricsRegistry.js:59)
```

## Why it matters

`npm run gen` is required whenever a tool is added or changed (per
`CONTRIBUTING.md`). Declaring an enum parameter with a default — a
natural,
documented zod pattern — silently breaks docs/metrics generation.

## Fix

Add `getEnumValues()` in `transformation.ts` that recursively unwraps
`optional` / `default` / `nullable` / `effects` wrappers, mirroring the
existing
`getZodType()`, and use it in `generateToolMetrics`. Behavior is
unchanged for
the existing bare-enum and single-`optional` cases.

## Tests

- `getEnumValues` unit tests: bare enum, `optional`, `default`, both
orders of
  `default`+`optional`, and throws for a non-enum type.
- `generateToolMetrics` regression test with
`zod.enum(...).default(...).optional()`.
- `npm run typecheck`, the telemetry tests, and `npm run check-format`
pass.

---
First-time contributor here — happy to sign the CLA.
2026-07-09 08:10:05 +00:00
Thomas Bachem c645eee875 fix: keep a still-open selected page instead of falling back to the first page (#2328)
Follow-up to #2304.

`createPagesSnapshot()` reselects `#pages[0]` whenever the selected page
is missing from `#pages`, even when that page is still open. So a live
selection can be silently swapped, not only a closed one.

The case that hit us is a `devtools://` page:

- the server connects with `handleDevToolsAsPage: true`
(`src/browser.ts`), so DevTools frontends are pages and land in
`#mcpPages`
- `#pages` filters `devtools://` out (`src/McpContext.ts`, unless
`experimentalDevToolsDebugging` is set)
- `getPageById()` (used by `select_page`) reads `#mcpPages`, not
`#pages`, so a devtools page can be selected even though `list_pages`
never lists it
- the next snapshot finds it missing from `#pages` and, because the
fallback keys on `#pages` membership rather than `isClosed()`, reselects
`#pages[0]` with the page still open (`isClosed() === false`)

This reproduces on a normal Chrome (details and a repro in #2304).

This change gates the fallback on `isClosed()`, as proposed in #2304. A
still-open selection is kept; a genuinely closed page still
auto-advances, so the browser-like behavior for closed tabs is
unchanged.

One consequence: the "is no longer listed" wording added in #2308
becomes unreachable, since a live page missing from the list no longer
triggers a fallback. I left it in place to keep this diff focused, but
I'm happy to simplify it here or in a follow-up.

The unit test that covered the missing-but-open case now asserts the
selection is retained.

Refs: #2304
2026-07-09 07:09:11 +00:00
Dominik Inführ ed7e95d3e0 fix: Wait until daemon is started (#2327) 2026-07-09 06:13:34 +00:00
herdiyanitdev 6e56c028cf feat: support --allow-unrestricted-paths configuration (#2296)
## Summary

validatePath() in McpContext returned immediately, with no restriction
at all, whenever roots() returned undefined. roots() only returns
undefined when the connecting MCP client never negotiates the optional
roots capability during initialize, which any minimal client can trigger
simply by omitting it from its declared capabilities.

Since roots() already always appends the OS temp directory to whatever
explicit roots are configured, this change makes it return that same
default (temp directory only) instead of undefined when no roots have
been set. This removes the early return in validatePath() entirely, so
path validation now runs unconditionally rather than being conditional
on whether the connecting client happened to negotiate a capability it
was never required to declare per the MCP spec.


Any filePath-accepting tool (take_screenshot, saveFile, and the
performance/Lighthouse export tools that route through the same check)
had its only path-traversal guard silently disabled for the lifetime of
a connection whenever the client omitted the optional roots capability.
Since this server is designed to let an LLM drive a browser, and browsed
page content is not trusted input, this meant a client that simply
doesn't implement roots (a plausible, non-adversarial default for
lightweight or custom MCP clients) removed the only boundary preventing
the connected agent from writing to any path the process can reach.


Added a test that exercises the actual default state of roots (never
calling setRoots()) directly, since the existing tests always call
setRoots(), even with an empty array, before validating. Verified
locally with a minimal MCP client that declares no capabilities: before
this change, take_screenshot with a filePath outside any root wrote a
real file to an arbitrary path with no error; after this change, the
same call is rejected with the existing Access denied error. Also
verified that a client that does declare roots is unaffected, and that
writes to the OS temp directory continue to succeed with no roots
negotiated, matching prior behavior for that path.
2026-07-08 16:49:31 +00:00
Dominik Inführ ff53b7bb82 refactor: Use array instead of Map for idToClassKey (#2321)
Switches idToClassKey to an array since ids are strictly incremented
from 1. This also allows us to drop the id generator use.

Co-authored-by: Dominik Inführ <dinfuehr@chromium.org>
2026-07-08 15:22:44 +00:00
Natasha Gorshunova a8c7c73ca5 chore: add dependabot cooldown option (#2320)
Co-authored-by: Natallia Harshunova <nharshunova@chromium.org>
2026-07-08 11:04:09 +00:00
Thomas Bachem 2c16ac311b fix: report when the selected page was auto-replaced by the fallback (#2308)
Follow-up to #2304 (the "note" part discussed there).

When the selected page disappears from the page list,
`createPagesSnapshot()` silently re-selects the first page. The agent
gets no signal: if its next call is `list_pages` (which is what the
closed-page error message recommends), the listing already shows the new
selection and every subsequent tool call runs against a page the agent
never picked.

This PR records the automatic fallback and surfaces it as a one-line
note in the pages section of the same response:

```
## Pages
Note: the previously selected page was closed. Page 1 is now selected.
1: about:blank [selected]
```

For a selected page that is missing from the list without being closed,
the note reads "is no longer listed" instead. If the expectation from
#2304 holds (a page stays listed as long as it is not closed), that
wording never renders; if the transient case discussed there does occur
in the wild, the note will make it visible.

The fallback behavior itself is unchanged (as discussed in #2304, closed
tabs keep the browser-like auto-selection). No note is emitted on first
connect, when nothing was selected before.

Tests: two unit tests for the fallback bookkeeping (closed page, regular
selection), one for the missing-but-open case via a stubbed page list,
and the one affected snapshot updated (`close_page` now includes the
note).

Refs: #2304
2026-07-08 07:08:26 +00:00
Alex Rudenko ffc6060acf feat: update Lighthouse to 13.4.0 (#2317)
See https://github.com/GoogleChrome/lighthouse/releases/tag/v13.4.0
2026-07-07 16:52:10 +00:00
Nikolay Vitkov b2c63e644e perf: concurrent I/O in Root Path Resolution (#2279)
💡 **What:** Modified `McpContext.validatePath` to resolve the absolute
paths for all configured workspace roots concurrently using
`Promise.allSettled`, replacing the previous sequential iteration.
🎯 **Why:** The previous implementation executed potentially expensive
disk I/O operations (`fs.realpath()`) synchronously one-by-one in a
`for...of` loop. This caused a performance bottleneck when a user had
several configured roots or during heavy file load activity, as each
root had to fully resolve before proceeding to the next.
📊 **Measured Improvement:** Measured with 10 workspace roots (where only
the last one matches). The change reduced execution time for a
1,000-iteration micro-benchmark from ~1,350ms to ~400ms, yielding a 70%
speedup in this code path.

---
*PR created automatically by Jules for task
[14748109266156669449](https://jules.google.com/task/14748109266156669449)
started by @Lightning00Blade*

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-07-06 14:47:59 +00:00
dependabot[bot] 74cea492b6 chore(deps-dev): bump puppeteer from 25.2.1 to 25.3.0 in the bundled group (#2300)
Bumps the bundled group with 1 update:
[puppeteer](https://github.com/puppeteer/puppeteer).

Updates `puppeteer` from 25.2.1 to 25.3.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v25.3.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v25.2.1...puppeteer-core-v25.3.0">25.3.0</a>
(2026-07-01)</h2>
<h3>🎉 Features</h3>
<ul>
<li>support installing extensions for browser contexts (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15164">#15164</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/118d84d2622306f1b9e85ed9acee22b2931f12c7">118d84d</a>)</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>handle swaps without a timer (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15198">#15198</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/2356a15404acca1e00243a4f72408ecdb916ac11">2356a15</a>)</li>
<li>normalize duplicate set-cookie headers using newline (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15173">#15173</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/55787d515570109ba7e5cb97df18499d743923fb">55787d5</a>)</li>
<li>roll to Firefox 152.0.3 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15158">#15158</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/2d648522d4a90ed7fc5c79e6298f36f0dc0781f4">2d64852</a>)</li>
<li>roll to Firefox 152.0.4 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15195">#15195</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/d382a218051c323e1d4d4d1a528c53370a6b1ee7">d382a21</a>)</li>
</ul>
<h3>📄 Documentation</h3>
<ul>
<li>fix the typos on documentation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15167">#15167</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/ab74e6a6720ec05768979e3c2d9b26bcb5cd763f">ab74e6a</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 3.0.5 to 3.0.6</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>puppeteer: v25.3.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.2.1...puppeteer-v25.3.0">25.3.0</a>
(2026-07-01)</h2>
<h3>♻️ Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 3.0.5 to 3.0.6</li>
<li>puppeteer-core bumped from 25.2.1 to 25.3.0</li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md">puppeteer's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.2.1...puppeteer-v25.3.0">25.3.0</a>
(2026-07-01)</h2>
<h3>♻️ Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 3.0.5 to 3.0.6</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>🎉 Features</h3>
<ul>
<li>support installing extensions for browser contexts (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15164">#15164</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/118d84d2622306f1b9e85ed9acee22b2931f12c7">118d84d</a>)</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>handle swaps without a timer (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15198">#15198</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/2356a15404acca1e00243a4f72408ecdb916ac11">2356a15</a>)</li>
<li>normalize duplicate set-cookie headers using newline (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15173">#15173</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/55787d515570109ba7e5cb97df18499d743923fb">55787d5</a>)</li>
<li>roll to Firefox 152.0.3 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15158">#15158</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/2d648522d4a90ed7fc5c79e6298f36f0dc0781f4">2d64852</a>)</li>
<li>roll to Firefox 152.0.4 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15195">#15195</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/d382a218051c323e1d4d4d1a528c53370a6b1ee7">d382a21</a>)</li>
</ul>
<h3>📄 Documentation</h3>
<ul>
<li>fix the typos on documentation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15167">#15167</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/ab74e6a6720ec05768979e3c2d9b26bcb5cd763f">ab74e6a</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/58d9b023ed74c3a1f14ec5fd9315872602270c72"><code>58d9b02</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15165">#15165</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/d382a218051c323e1d4d4d1a528c53370a6b1ee7"><code>d382a21</code></a>
fix: roll to Firefox 152.0.4 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15195">#15195</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/2356a15404acca1e00243a4f72408ecdb916ac11"><code>2356a15</code></a>
fix: handle swaps without a timer (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15198">#15198</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/537232e28297c38023cd4f56db4d110f31cc9e08"><code>537232e</code></a>
chore(webmcp): Clean unnecessary Protocol interfaces (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15199">#15199</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/ab74e6a6720ec05768979e3c2d9b26bcb5cd763f"><code>ab74e6a</code></a>
docs: fix the typos on documentation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15167">#15167</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/9560bcfceb4445db889abb7b735177e13b46eb3a"><code>9560bcf</code></a>
chore(deps-dev): bump the dev-dependencies group across 1 directory with
20 u...</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/04a95878db8eec2263d895fed2e98180a158ec76"><code>04a9587</code></a>
refactor: extract zip archives with yauzl instead of CLI tools (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15085">#15085</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/54143a6c9aacd788679e42ee989e796c69bcff18"><code>54143a6</code></a>
chore: fix the typos on the code test and API documentation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15169">#15169</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/55787d515570109ba7e5cb97df18499d743923fb"><code>55787d5</code></a>
fix: normalize duplicate set-cookie headers using newline (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15173">#15173</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/118d84d2622306f1b9e85ed9acee22b2931f12c7"><code>118d84d</code></a>
feat: support installing extensions for browser contexts (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15164">#15164</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.2.1...puppeteer-v25.3.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=puppeteer&package-manager=npm_and_yarn&previous-version=25.2.1&new-version=25.3.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Natasha Gorshunova <47688881+nattallius@users.noreply.github.com>
2026-07-06 14:05:05 +00:00
dependabot[bot] e17c7cbdc1 chore(deps-dev): bump the dev-dependencies group with 6 updates (#2298)
Bumps the dev-dependencies group with 6 updates:

| Package | From | To |
| --- | --- | --- |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
| `26.0.1` | `26.1.0` |
|
[@types/sinon](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/sinon)
| `21.0.1` | `22.0.0` |
|
[@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)
| `8.62.0` | `8.62.1` |
|
[@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)
| `8.62.0` | `8.62.1` |
| [prettier](https://github.com/prettier/prettier) | `3.9.3` | `3.9.4` |
|
[typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)
| `8.62.0` | `8.62.1` |

Updates `@types/node` from 26.0.1 to 26.1.0
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/sinon` from 21.0.1 to 22.0.0
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/sinon">compare
view</a></li>
</ul>
</details>
<br />

Updates `@typescript-eslint/eslint-plugin` from 8.62.0 to 8.62.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases">@​typescript-eslint/eslint-plugin's
releases</a>.</em></p>
<blockquote>
<h2>v8.62.1</h2>
<h2>8.62.1 (2026-06-29)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [prefer-optional-chain] use
suggestion instead of autofix for trailing binary operator (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12328">#12328</a>)</li>
<li><strong>eslint-plugin:</strong>
[no-unnecessary-boolean-literal-compare] preserve boolean result in
fixer for nullable true comparisons (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12365">#12365</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
parenthesize object literal at left edge of expression statement (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12443">#12443</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12418">#12418</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
<li>mdm317</li>
<li>Patrick Aleite</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md">@​typescript-eslint/eslint-plugin's
changelog</a>.</em></p>
<blockquote>
<h2>8.62.1 (2026-06-29)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
parenthesize object literal at left edge of expression statement (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12443">#12443</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12418">#12418</a>)</li>
<li><strong>eslint-plugin:</strong>
[no-unnecessary-boolean-literal-compare] preserve boolean result in
fixer for nullable true comparisons (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12365">#12365</a>)</li>
<li><strong>eslint-plugin:</strong> [prefer-optional-chain] use
suggestion instead of autofix for trailing binary operator (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12328">#12328</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
<li>mdm317</li>
<li>Patrick Aleite</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/3ea32f4ba5e196c08c6da1095619d7f65ba4905e"><code>3ea32f4</code></a>
chore(release): publish 8.62.1</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/4ecca6d3f9ee1ab6468c8e9d6810ccc1c2f6bcf9"><code>4ecca6d</code></a>
fix(eslint-plugin): [no-unnecessary-type-assertion] parenthesize object
liter...</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/f3a7ec78bf07b42a7e03f2091c98513e05310891"><code>f3a7ec7</code></a>
chore(eslint-plugin-internal): [no-dynamic-tests] restrict where
noFormat can...</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/301f350cd11fecce4940b5be8a2b1146a9c6d58b"><code>301f350</code></a>
fix(eslint-plugin): [no-unnecessary-boolean-literal-compare] preserve
boolean...</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/ebce2d40f83194599bc3022032ef4fa857977105"><code>ebce2d4</code></a>
fix(eslint-plugin): [prefer-optional-chain] use suggestion instead of
autofix...</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.1/packages/eslint-plugin">compare
view</a></li>
</ul>
</details>
<br />

Updates `@typescript-eslint/parser` from 8.62.0 to 8.62.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases">@​typescript-eslint/parser's
releases</a>.</em></p>
<blockquote>
<h2>v8.62.1</h2>
<h2>8.62.1 (2026-06-29)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [prefer-optional-chain] use
suggestion instead of autofix for trailing binary operator (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12328">#12328</a>)</li>
<li><strong>eslint-plugin:</strong>
[no-unnecessary-boolean-literal-compare] preserve boolean result in
fixer for nullable true comparisons (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12365">#12365</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
parenthesize object literal at left edge of expression statement (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12443">#12443</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12418">#12418</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
<li>mdm317</li>
<li>Patrick Aleite</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md">@​typescript-eslint/parser's
changelog</a>.</em></p>
<blockquote>
<h2>8.62.1 (2026-06-29)</h2>
<p>This was a version bump only for parser to align it with other
projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/3ea32f4ba5e196c08c6da1095619d7f65ba4905e"><code>3ea32f4</code></a>
chore(release): publish 8.62.1</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.1/packages/parser">compare
view</a></li>
</ul>
</details>
<br />

Updates `prettier` from 3.9.3 to 3.9.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>3.9.4</h2>
<ul>
<li>Angular: Format <code>@content(name)</code> -&gt; <code>@content
(name)</code> to align with other block syntax (<a
href="https://redirect.github.com/prettier/prettier/pull/19499">#19499</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.9.4/CHANGELOG.md#394">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>3.9.4</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.9.3...3.9.4">diff</a></p>
<h4>Angular: Format <code>@content(name)</code> -&gt; <code>@content
(name)</code> to align with other block syntax (<a
href="https://redirect.github.com/prettier/prettier/pull/19499">#19499</a>
by <a href="https://github.com/fisker"><code>@​fisker</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="html"><code>&lt;!-- Input --&gt;
&lt;FancyButton [label]=&quot;title&quot;&gt;
  @content (icon) {
    &lt;span&gt;Icon!&lt;/span&gt;
  }
  @content (description) {
    &lt;span&gt;Description text&lt;/span&gt;
  }
  &lt;span&gt;Other children&lt;/span&gt;
&lt;/FancyButton&gt;
<p>&lt;!-- Prettier 3.9.3 --&gt;
&lt;FancyButton [label]=&quot;title&quot;&gt;
<a href="https://github.com/content"><code>@​content</code></a>(icon) {
&lt;span&gt;Icon!&lt;/span&gt;
}
<a
href="https://github.com/content"><code>@​content</code></a>(description)
{
&lt;span&gt;Description text&lt;/span&gt;
}
&lt;span&gt;Other children&lt;/span&gt;
&lt;/FancyButton&gt;</p>
<p>&lt;!-- Prettier 3.9.4 --&gt;
&lt;FancyButton [label]=&quot;title&quot;&gt;
<a href="https://github.com/content"><code>@​content</code></a> (icon) {
&lt;span&gt;Icon!&lt;/span&gt;
}
<a href="https://github.com/content"><code>@​content</code></a>
(description) {
&lt;span&gt;Description text&lt;/span&gt;
}
&lt;span&gt;Other children&lt;/span&gt;
&lt;/FancyButton&gt;
</code></pre></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/prettier/prettier/commit/b693cb22b412b759784bc2298fc86880e351cd3a"><code>b693cb2</code></a>
Release 3.9.4</li>
<li><a
href="https://github.com/prettier/prettier/commit/2e92ac0ee29fb83b7ce32277cb914c2eee192955"><code>2e92ac0</code></a>
Angular: Format <code>@content(name)</code> -&gt; <code>@content
(name)</code> to align with other blo...</li>
<li><a
href="https://github.com/prettier/prettier/commit/abed2c22db3cb61e922b7284c3b6c65424353ac2"><code>abed2c2</code></a>
Bump Prettier dependency to 3.9.3</li>
<li><a
href="https://github.com/prettier/prettier/commit/6cfbc00921de451e918b18bb5ab6b80e80f5cd34"><code>6cfbc00</code></a>
Clean changelog_unreleased</li>
<li>See full diff in <a
href="https://github.com/prettier/prettier/compare/3.9.3...3.9.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `typescript-eslint` from 8.62.0 to 8.62.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases">typescript-eslint's
releases</a>.</em></p>
<blockquote>
<h2>v8.62.1</h2>
<h2>8.62.1 (2026-06-29)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [prefer-optional-chain] use
suggestion instead of autofix for trailing binary operator (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12328">#12328</a>)</li>
<li><strong>eslint-plugin:</strong>
[no-unnecessary-boolean-literal-compare] preserve boolean result in
fixer for nullable true comparisons (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12365">#12365</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
parenthesize object literal at left edge of expression statement (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12443">#12443</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12418">#12418</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
<li>mdm317</li>
<li>Patrick Aleite</li>
<li>송재욱</li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md">typescript-eslint's
changelog</a>.</em></p>
<blockquote>
<h2>8.62.1 (2026-06-29)</h2>
<p>This was a version bump only for typescript-eslint to align it with
other projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/3ea32f4ba5e196c08c6da1095619d7f65ba4905e"><code>3ea32f4</code></a>
chore(release): publish 8.62.1</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.1/packages/typescript-eslint">compare
view</a></li>
</ul>
</details>
<br />


Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-06 14:04:37 +00:00
Georgii Perepechko aa4be07f7a docs: add Grok Build CLI configuration section (#2294)
# Summary

adds Grok Build CLI to the MCP client configuration list in README.md

# Verification

Verified visually + git diff
2026-07-06 13:48:16 +00:00
Dayna Blackwell 3d2138945c feat: add experimentalGcfFormat flag for GCF-encoded tool responses (#2235)
## Summary

Add `--experimentalGcfFormat` as a hidden experimental flag alongside
the existing `--experimentalToonFormat`. When enabled, tool responses
encode structured data using GCF (Graph Compact Format) instead of
formatted JSON. No changes to existing behavior or default output.

## Why

### Benchmarked on Chrome DevTools data shapes

Data shapes verified from source code and test snapshots
(`ConsoleMessageConcise`, `NetworkRequestConcise`,
`HeapSnapshotFormatter.toJSON()`, `SnapshotFormatter.toJSON()`):

| Dataset | JSON | TOON | GCF | TOON vs JSON | GCF vs JSON | GCF vs TOON
|

|---------|------|------|-----|-------------|-------------|-------------|
| Console (100) | 2,534 | 1,716 | 1,663 | 32.3% | 34.4% | +3.1% |
| Console (500) | 12,879 | 8,761 | 8,475 | 32.0% | 34.2% | +3.3% |
| Network (100) | 3,287 | 1,776 | 1,682 | 46.0% | 48.8% | +5.3% |
| Network (500) | 16,547 | 8,936 | 8,442 | 46.0% | 49.0% | +5.5% |
| Heap (100) | 2,210 | 797 | 753 | 63.9% | 65.9% | +5.5% |
| DOM (3x3) | 282 | 295 | 244 | -4.6% | 13.5% | +17.3% |
| DOM (4x3) | 396 | 464 | 407 | -17.2% | -2.8% | +12.3% |

TOON increases token count on DOM snapshots (-4.6% to -17.2% vs JSON).
GCF saves tokens on every data type.

### Console message corruption

TOON's decoder crashes on console messages containing bracket-colon
patterns, which are standard browser output:

```
[Error]: net::ERR_CONNECTION_REFUSED
[React DevTools]: Component rendered 3 times
[Violation]: Forced reflow while executing JavaScript took 42ms
[Performance]: Long task detected (duration: 234ms)
```

10 of 20 console messages fail TOON round-trip. GCF: zero failures.
While Chrome DevTools MCP encodes only (no decode), the structurally
ambiguous output can affect downstream consumers.

### LLM comprehension

GCF scores 100% on general structured data and 90.7% on adversarial
payloads across GPT-4o, GPT-5.5, Claude, and Gemini. JSON scores 53.6%.
TOON scores 68.5%. (1,700+ evaluations.)

Full eval data: [GCF benchmarks](https://gcformat.com/guide/benchmarks)

### Data integrity

GCF verified lossless across 43 billion+ round-trips in 5 formats and 6
languages. Zero failures. Zero runtime dependencies.

## Implementation

Mirrors the existing `experimentalToonFormat` pattern exactly:

- Hidden boolean CLI flag, defaults to false
- `useGcf` parameter threaded through `handle()` → `format()`
- `compactEncode` helper selects GCF, TOON, or null (formatted JSON)
- GCF takes precedence if both flags are set

## Changes

| File | Change |
|------|--------|
| `src/bin/chrome-devtools-mcp-cli-options.ts` | Add
`experimentalGcfFormat` flag |
| `src/third_party/index.ts` | Export `gcfEncode` from
`@blackwell-systems/gcf` |
| `src/McpResponse.ts` | Add `useGcf` parameter, `compactEncode` helper
|
| `src/ToolHandler.ts` | Pass `experimentalGcfFormat` to `handle()` |
| `package.json` | Add `@blackwell-systems/gcf` (pinned 2.1.2, zero
deps) |

## Links

- GCF spec: https://gcformat.com
- TypeScript SDK: https://www.npmjs.com/package/@blackwell-systems/gcf
- Benchmarks: https://gcformat.com/guide/benchmarks
- Lossless verification:
https://gcformat.com/guide/lossless-verification

---------

Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org>
2026-07-06 09:45:01 +00:00
Alex Rudenko b06e39b164 fix: enforce .gz instead of json.gz in performance tools (#2305)
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/2303
2026-07-06 09:35:49 +00:00
Alex Rudenko b703f2ce20 fix(snapshot): resolve element ids on the correct snapshot (#2295)
closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2243

This probably regressed with the addition of third party developer tools
because the resolveCdpElementId was not moved from page to TextSnapshot.
2026-07-06 09:08:46 +00:00
browser-automation-bot 913308263b chore(main): release chrome-devtools-mcp 1.5.0 (#2252)
publish-on-tag / publish-to-npm (push) Has been cancelled
publish-on-tag / publish-to-mcp-registry (push) Has been cancelled
🤖 I have created a release *beep* *boop*
---


##
[1.5.0](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v1.4.0...chrome-devtools-mcp-v1.5.0)
(2026-07-03)


### 🎉 Features

* Add get_heapsnapshot_duplicate_strings MCP tool
([#2280](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2280))
([67a56c0](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/67a56c0557729dc437e470ea934d7322faba56b0))
* Add MCP tools for heap snapshot comparison
([#2198](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2198))
([5d7b656](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/5d7b6560504009cd1a16cc02db7e985cf7f71274))


### 🛠️ Fixes

* **cli:** improve error messages to guide AI agents and developers
([#2161](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2161))
([cf00305](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/cf003051706619ca084235020f62a4d6902fb226))
* create PID directory with secure permissions (0o700)
([#2262](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2262))
([7fa95d3](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/7fa95d3c33aa3e37374b0e39a6c00de322655554))
* respecte allow/block list in loadResouce
([#2254](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2254))
([6a94663](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/6a9466378c13b6ccba91b54091ea83a5ca37a8db))
* validate extension-enforced output paths
([#2269](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2269))
([a922814](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/a9228141ae2c51bf831ce0cac659e119cf0f4ae6))


### 📄 Documentation

* fix Antigravity config -y flag before npx positional args
([#2272](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2272))
([604b38f](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/604b38f31951b291eb368dfe61f2d3714ccae778))
* fix formatting and indentation of tool descriptions
([#2275](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2275))
([8d8cf12](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/8d8cf1299db9d9f371c1f278ccc3e598df22c615))


###  Performance

* use concurrent reads for `loadIssueDescriptions`
([#2249](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2249))
([d144965](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/d1449654ac10031786e9d4741e781af26933907a))


### 🏗️ Refactor

* Merge MCP tools for comparing heap snapshots
([#2281](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2281))
([3f4a49a](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/3f4a49a89a2dd33dc6fa728aa34bc26f0aa00905))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
chrome-devtools-mcp-v1.5.0
2026-07-03 11:09:50 +00:00
Dominik Inführ 67a56c0557 feat: Add get_heapsnapshot_duplicate_strings MCP tool (#2280)
This PR adds a new MCP tool to find duplicated strings in the heap
snapshot.

Co-authored-by: Dominik Inführ <dinfuehr@chromium.org>
2026-07-03 10:01:26 +00:00
Trung Huynh Chi a9228141ae fix: validate extension-enforced output paths (#2269)
Fixes output path validation so tools cannot validate one path and then
write to a different canonical target after extension enforcement.

Changes:
- Resolve dangling symlinks to their target path during
canonicalization.
- Validate the final extension-enforced output path before writing.
- Apply the same final-path validation to heap snapshots and
screencasts.
- Add regression coverage for dangling symlinks that point outside
configured roots.

Validation:
- npm run format
- npm run check-format
- npm run test tests/utils/files.test.ts
- npm run test tests/roots.test.ts
- npm run test tests/tools/memory.test.ts tests/tools/screencast.test.ts

Note: I also ran the full npm test suite locally. The targeted tests
above passed, but the full suite hit local WSL daemon/e2e startup
timeouts while waiting for daemon.pid / server_start, which appear
unrelated to this path-validation change.

---------

Co-authored-by: huynhtrungcsc <huynhtrungcsc@users.noreply.github.com>
2026-07-03 09:18:59 +00:00
yasirusman85 cf00305170 fix(cli): improve error messages to guide AI agents and developers (#2161)
Co-authored-by: Nicholas Roscino <nroscino@google.com>
Co-authored-by: Piotr Paulski <31672205+zyzyzyryxy@users.noreply.github.com>
Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org>
2026-07-02 16:11:34 +00:00
Piotr Paulski a38ef5e7ea test: fix flaky dialog tests by awaiting evaluate promises (#2284)
Fixes flakiness in pages.test.ts where unawaited page.evaluate()
promises triggering dialogs would resolve after the test ended, causing
TargetCloseError when the next test closed the pages.

TAG=agy
CONV=dc6c530f-5d71-4a91-9440-6a7006d168e6

Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org>
2026-07-02 15:44:18 +00:00
Dominik Inführ 3f4a49a89a refactor: Merge MCP tools for comparing heap snapshots (#2281)
Instead of two separate MCP tools, we can have one instead which takes
classIndex as optional argument.

Co-authored-by: Dominik Inführ <dinfuehr@chromium.org>
2026-07-02 13:26:36 +00:00
Piotr Paulski 8d8cf1299d docs: fix formatting and indentation of tool descriptions (#2275)
Follow-up on formatting changes introduced by dependency update in #2266

Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org>
2026-07-01 15:48:50 +00:00
dependabot[bot] ce5edbd6a3 chore(deps-dev): bump the dev-dependencies group across 1 directory with 7 updates (#2266)
Bumps the dev-dependencies group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
| [@google/genai](https://github.com/googleapis/js-genai) | `2.9.0` |
`2.10.0` |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
| `26.0.0` | `26.0.1` |
|
[@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)
| `8.61.1` | `8.62.0` |
|
[@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)
| `8.61.1` | `8.62.0` |
| [globals](https://github.com/sindresorhus/globals) | `17.6.0` |
`17.7.0` |
| [prettier](https://github.com/prettier/prettier) | `3.8.4` | `3.9.3` |
|
[typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)
| `8.61.1` | `8.62.0` |


Updates `@google/genai` from 2.9.0 to 2.10.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/js-genai/releases">@​google/genai's
releases</a>.</em></p>
<blockquote>
<h2>v2.10.0</h2>
<h2><a
href="https://github.com/googleapis/js-genai/compare/v2.9.0...v2.10.0">2.10.0</a>
(2026-06-24)</h2>
<h3>Features</h3>
<ul>
<li>[Interactions] Add ComputerUse.disabled_safety_policies (<a
href="https://github.com/googleapis/js-genai/commit/a2ca95cb81230ac371864914d2ad655c3f83c7bb">a2ca95c</a>)</li>
<li>[Models] Add ComputerUse.disabled_safety_policies (<a
href="https://github.com/googleapis/js-genai/commit/3618023147fe8ba63a9ecfa00253ab489e74aba8">3618023</a>)</li>
<li>add usage fields for steps (<a
href="https://github.com/googleapis/js-genai/commit/048db9a660d6cb7107212baab64e694db8498dfc">048db9a</a>)</li>
<li>add video generation and response format parameters. (<a
href="https://github.com/googleapis/js-genai/commit/84e795cf4add4ca9dffe47828d6528e19d684d54">84e795c</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/js-genai/blob/main/CHANGELOG.md">@​google/genai's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/js-genai/compare/v2.9.0...v2.10.0">2.10.0</a>
(2026-06-24)</h2>
<h3>Features</h3>
<ul>
<li>[Interactions] Add ComputerUse.disabled_safety_policies (<a
href="https://github.com/googleapis/js-genai/commit/a2ca95cb81230ac371864914d2ad655c3f83c7bb">a2ca95c</a>)</li>
<li>[Models] Add ComputerUse.disabled_safety_policies (<a
href="https://github.com/googleapis/js-genai/commit/3618023147fe8ba63a9ecfa00253ab489e74aba8">3618023</a>)</li>
<li>add usage fields for steps (<a
href="https://github.com/googleapis/js-genai/commit/048db9a660d6cb7107212baab64e694db8498dfc">048db9a</a>)</li>
<li>add video generation and response format parameters. (<a
href="https://github.com/googleapis/js-genai/commit/84e795cf4add4ca9dffe47828d6528e19d684d54">84e795c</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/js-genai/commit/31223a3e02a5d1c8146ad2673df5a1c7e4bababb"><code>31223a3</code></a>
chore(main): release 2.10.0 (<a
href="https://redirect.github.com/googleapis/js-genai/issues/1725">#1725</a>)</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/628f3f2e83202fc040cbc502e98108689489be69"><code>628f3f2</code></a>
chore: Disable ComputerUse.disabled_safety_policies in Gemini Enterprise
API</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/84e795cf4add4ca9dffe47828d6528e19d684d54"><code>84e795c</code></a>
feat: add video generation and response format parameters.</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/048db9a660d6cb7107212baab64e694db8498dfc"><code>048db9a</code></a>
feat: add usage fields for steps</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/a2ca95cb81230ac371864914d2ad655c3f83c7bb"><code>a2ca95c</code></a>
feat: Add ComputerUse.disabled_safety_policies</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/3618023147fe8ba63a9ecfa00253ab489e74aba8"><code>3618023</code></a>
feat: Add ComputerUse.disabled_safety_policies</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/eeee71122760ddba9df72611a013c1bd78fc0d7d"><code>eeee711</code></a>
docs: fix typos across docstrings</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/a12a590062760dd75899dc3c28564d3ae62bf67a"><code>a12a590</code></a>
chore: Upgrade stalebot action to use v10 (due to Node20
deprecation)</li>
<li>See full diff in <a
href="https://github.com/googleapis/js-genai/compare/v2.9.0...v2.10.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 26.0.0 to 26.0.1
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@typescript-eslint/eslint-plugin` from 8.61.1 to 8.62.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases">@​typescript-eslint/eslint-plugin's
releases</a>.</em></p>
<blockquote>
<h2>v8.62.0</h2>
<h2>8.62.0 (2026-06-22)</h2>
<h3>🚀 Features</h3>
<ul>
<li>remove redundant package.json &quot;files&quot; (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444">#12444</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li>add &quot;files&quot; to rule-schema-to-typescript-types (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12441">#12441</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.0">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md">@​typescript-eslint/eslint-plugin's
changelog</a>.</em></p>
<blockquote>
<h2>8.62.0 (2026-06-22)</h2>
<h3>🚀 Features</h3>
<ul>
<li>remove redundant package.json &quot;files&quot; (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444">#12444</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.0">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/54e285728e5d8cb83fadb8041189f0c3b4ab436a"><code>54e2857</code></a>
chore(release): publish 8.62.0</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/81e4c2654c3f4d923766a888691add2c45b5d64a"><code>81e4c26</code></a>
feat: remove redundant package.json &quot;files&quot; (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12444">#12444</a>)</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/b784054b6f8fbb51eb742304852b37b0436a8a58"><code>b784054</code></a>
chore: use <code>stableTypeOrdering</code> compiler option (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin/issues/12427">#12427</a>)</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.0/packages/eslint-plugin">compare
view</a></li>
</ul>
</details>
<br />

Updates `@typescript-eslint/parser` from 8.61.1 to 8.62.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases">@​typescript-eslint/parser's
releases</a>.</em></p>
<blockquote>
<h2>v8.62.0</h2>
<h2>8.62.0 (2026-06-22)</h2>
<h3>🚀 Features</h3>
<ul>
<li>remove redundant package.json &quot;files&quot; (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444">#12444</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li>add &quot;files&quot; to rule-schema-to-typescript-types (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12441">#12441</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.0">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md">@​typescript-eslint/parser's
changelog</a>.</em></p>
<blockquote>
<h2>8.62.0 (2026-06-22)</h2>
<h3>🚀 Features</h3>
<ul>
<li>remove redundant package.json &quot;files&quot; (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444">#12444</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.0">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/54e285728e5d8cb83fadb8041189f0c3b4ab436a"><code>54e2857</code></a>
chore(release): publish 8.62.0</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/81e4c2654c3f4d923766a888691add2c45b5d64a"><code>81e4c26</code></a>
feat: remove redundant package.json &quot;files&quot; (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser/issues/12444">#12444</a>)</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.0/packages/parser">compare
view</a></li>
</ul>
</details>
<br />

Updates `globals` from 17.6.0 to 17.7.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/sindresorhus/globals/releases">globals's
releases</a>.</em></p>
<blockquote>
<h2>v17.7.0</h2>
<ul>
<li>Update globals (2026-06-22) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/345">#345</a>)
33b75f9</li>
</ul>
<hr />
<p><a
href="https://github.com/sindresorhus/globals/compare/v17.6.0...v17.7.0">https://github.com/sindresorhus/globals/compare/v17.6.0...v17.7.0</a></p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/sindresorhus/globals/commit/a19670cc86c1218e915657c55ea02ba3e7623834"><code>a19670c</code></a>
17.7.0</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/9611620bad0ea45531ae0261b986ce694374e42c"><code>9611620</code></a>
Update actions (<a
href="https://redirect.github.com/sindresorhus/globals/issues/346">#346</a>)</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/33b75f9ddeb6f9ddd81251b043667eb8104a8d15"><code>33b75f9</code></a>
Update globals (2026-06-22) (<a
href="https://redirect.github.com/sindresorhus/globals/issues/345">#345</a>)</li>
<li><a
href="https://github.com/sindresorhus/globals/commit/887dd529bde24486b7f9e31d1b2c515df2b7cf5c"><code>887dd52</code></a>
Fix build script (<a
href="https://redirect.github.com/sindresorhus/globals/issues/344">#344</a>)</li>
<li>See full diff in <a
href="https://github.com/sindresorhus/globals/compare/v17.6.0...v17.7.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `prettier` from 3.8.4 to 3.9.3
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/releases">prettier's
releases</a>.</em></p>
<blockquote>
<h2>3.9.3</h2>
<ul>
<li>Markdown: Fix unexpected removal of characters in liquid syntax (<a
href="https://redirect.github.com/prettier/prettier/pull/19489">prettier/prettier#19489</a>
by <a href="https://github.com/seiyab"><code>@​seiyab</code></a>)</li>
<li>TypeScript: Allow decorators to be used with declare on class fields
(<a
href="https://redirect.github.com/prettier/prettier/pull/19492">prettier/prettier#19492</a>
by <a
href="https://github.com/evoactivity"><code>@​evoactivity</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.9.3/CHANGELOG.md#393">Changelog</a></p>
<h2>3.9.1</h2>
<ul>
<li>CLI: Fix ignored file has been cached incorrectly (<a
href="https://redirect.github.com/prettier/prettier/pull/19483">#19483</a>
by <a href="https://github.com/kovsu"><code>@​kovsu</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.9.1/CHANGELOG.md#391">Changelog</a></p>
<h2>3.9.0</h2>
<p><a
href="https://github.com/prettier/prettier/compare/3.8.5...3.9.0">diff</a></p>
<p>🔗 <a href="https://prettier.io/blog/2026/06/27/3.9.0">Prettier 3.9:
Major parser upgrades and Formatting improvements</a></p>
<h2>3.8.5</h2>
<ul>
<li>Fix Flow variance annotation print (<a
href="https://redirect.github.com/prettier/prettier/pull/19022">#19022</a>
by <a
href="https://github.com/marcoww6"><code>@​marcoww6</code></a>)</li>
</ul>
<p>🔗 <a
href="https://github.com/prettier/prettier/blob/3.8.5/CHANGELOG.md#385">Changelog</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/prettier/prettier/blob/main/CHANGELOG.md">prettier's
changelog</a>.</em></p>
<blockquote>
<h1>3.9.3</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.9.1...3.9.3">diff</a></p>
<h4>Markdown: Fix unexpected removal of characters in liquid syntax (<a
href="https://redirect.github.com/prettier/prettier/pull/19489">#19489</a>
by <a href="https://github.com/seiyab"><code>@​seiyab</code></a>)</h4>
<!-- raw HTML omitted -->
<pre lang="md"><code>// Input
&lt;!-- Input --&gt;
{{ page.title
}} text
<p>&lt;!-- Prettier 3.9.1 --&gt;<br />
{{ page.title<br />
text</p>
<p>&lt;!-- Prettier 3.9.3 --&gt;<br />
{{ page.title<br />
}} text<br />
</code></pre></p>
<h4>TypeScript: Allow decorators to be used with declare on class fields
(<a
href="https://redirect.github.com/prettier/prettier/pull/19492">#19492</a>
by <a
href="https://github.com/evoactivity"><code>@​evoactivity</code></a>)</h4>
<p>Extensively used within the Ember ecosystem, decorators with
<code>declare</code> on class fields will ignore the babel parser error
and allow Prettier to format the code without breaking it.</p>
<!-- raw HTML omitted -->
<pre lang="ts"><code>// Input
export default class ProjectStatusComponent extends
Component&lt;ProjectStatusSig&gt; {
  @service declare server: ServerService;
}
<p>// Prettier 3.9.1<br />
// SyntaxError: Decorators can't be used with a declare field. (2:3)<br
/>
// 1 | export default class ProjectStatusComponent extends
Component&lt;ProjectStatusSig&gt; {<br />
//&gt; 2 | <a
href="https://github.com/service"><code>@​service</code></a> declare
server: ServerService;<br />
//    |   ^<br />
//  3 | }</p>
<p>// Prettier 3.9.3<br />
export default class ProjectStatusComponent extends
Component&lt;ProjectStatusSig&gt; {<br />
<a href="https://github.com/service"><code>@​service</code></a> declare
server: ServerService;<br />
}<br />
</code></pre></p>
<h1>3.9.1</h1>
<p><a
href="https://github.com/prettier/prettier/compare/3.9.0...3.9.1">diff</a></p>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/prettier/prettier/commit/3732e1dee6a36bdb2e77a722d206a79ac7e67aa3"><code>3732e1d</code></a>
Release 3.9.3</li>
<li><a
href="https://github.com/prettier/prettier/commit/a74a7b05dee7fbef39a6aeff378c3741e1a8ee15"><code>a74a7b0</code></a>
Allow decorators to be used with <code>declare</code> on class fields
(<a
href="https://redirect.github.com/prettier/prettier/issues/19492">#19492</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/bd9e11ab41e17a4f61f363a981c1ec24d2a4167a"><code>bd9e11a</code></a>
Correct text identification in liquid syntax (<a
href="https://redirect.github.com/prettier/prettier/issues/19489">#19489</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/269eee3faa1f82b1de07bb7e4d15e1cee70f80d4"><code>269eee3</code></a>
Bump Prettier dependency to 3.9.1</li>
<li><a
href="https://github.com/prettier/prettier/commit/ec7ccd1ea47c965bda3c958239899737e899603d"><code>ec7ccd1</code></a>
Clean changelog_unreleased</li>
<li><a
href="https://github.com/prettier/prettier/commit/c47654c003fe525572e10d5cc1ea64d7b9c0ee55"><code>c47654c</code></a>
Release 3.9.1</li>
<li><a
href="https://github.com/prettier/prettier/commit/06159aa254e662514d1c6f4de13fbac805984232"><code>06159aa</code></a>
Fix bug in release script</li>
<li><a
href="https://github.com/prettier/prettier/commit/4bc5ab40582921f5283af4ff5d6511b58d25ec00"><code>4bc5ab4</code></a>
Update file-entry-cache to 11.1.5 (<a
href="https://redirect.github.com/prettier/prettier/issues/19483">#19483</a>)</li>
<li><a
href="https://github.com/prettier/prettier/commit/b7fd58bba027282038ad312af0522d4598e8b769"><code>b7fd58b</code></a>
Release <code>@prettier/plugin-oxc@0.2.0</code> and
<code>@prettier/plugin-hermes@0.2.0</code></li>
<li><a
href="https://github.com/prettier/prettier/commit/3006400fc2560e297b54d82c58cbc331ec87902c"><code>3006400</code></a>
Revert changes in release script</li>
<li>Additional commits viewable in <a
href="https://github.com/prettier/prettier/compare/3.8.4...3.9.3">compare
view</a></li>
</ul>
</details>
<br />

Updates `typescript-eslint` from 8.61.1 to 8.62.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases">typescript-eslint's
releases</a>.</em></p>
<blockquote>
<h2>v8.62.0</h2>
<h2>8.62.0 (2026-06-22)</h2>
<h3>🚀 Features</h3>
<ul>
<li>remove redundant package.json &quot;files&quot; (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444">#12444</a>)</li>
</ul>
<h3>🩹 Fixes</h3>
<ul>
<li>add &quot;files&quot; to rule-schema-to-typescript-types (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12441">#12441</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.0">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md">typescript-eslint's
changelog</a>.</em></p>
<blockquote>
<h2>8.62.0 (2026-06-22)</h2>
<h3>🚀 Features</h3>
<ul>
<li>remove redundant package.json &quot;files&quot; (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12444">#12444</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.62.0">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/54e285728e5d8cb83fadb8041189f0c3b4ab436a"><code>54e2857</code></a>
chore(release): publish 8.62.0</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/81e4c2654c3f4d923766a888691add2c45b5d64a"><code>81e4c26</code></a>
feat: remove redundant package.json &quot;files&quot; (<a
href="https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint/issues/12444">#12444</a>)</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.62.0/packages/typescript-eslint">compare
view</a></li>
</ul>
</details>
<br />

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nikolay Vitkov <nvitkov@chromium.org>
2026-07-01 11:49:41 +00:00
artboy 7fa95d3c33 fix: create PID directory with secure permissions (0o700) (#2262)
## Summary

- Add `mode: 0o700` to `fs.mkdirSync` when creating the PID directory
- Ensures the directory is always created with owner-only access
regardless of system umask

## Problem

The daemon creates the PID directory with `fs.mkdirSync(pidDir,
{recursive: true})` without specifying a mode. On systems with `umask
002`, the directory lands at mode 0775, which the daemon's own security
check rejects as "insecure permissions" and exits.

The daemon's test (`tests/daemon/symlink.test.ts`) already expects 0700
permissions, but nothing enforced it at runtime.

Fixes #2258

## Test Plan

- [ ] `umask 0002 && npx chrome-devtools-mcp@latest` no longer crashes
- [ ] `umask 0077 && npx chrome-devtools-mcp@latest` still works
- [ ] Existing daemon tests pass
2026-06-30 16:16:11 +00:00
Dominik Inführ 5d7b656050 feat: Add MCP tools for heap snapshot comparison (#2198)
This commit adds two MCP tools for comparing heap snapshots.
`compare_heapsnapshot_summary` compares two memory snapshot and returns
which classes have new/deleted objects.
`compare_heapsnapshot_class_nodes` can then be used to list the object
ids added and deleted for a specific class.

Co-authored-by: Dominik Inführ <dinfuehr@chromium.org>
2026-06-30 13:24:21 +00:00
Humanpanda666 604b38f319 docs: fix Antigravity config -y flag before npx positional args (#2272)
Moves the `-y` flag before the package name in the Antigravity JSON
configuration example.

According to official npm documentation, `npx` requires all flags to
precede positional arguments. Placing `-y` at the end caused `npx` to
treat it as an argument for the MCP server, triggering an interactive
installation prompt that hangs indefinitely in headless CLI
environments.
2026-06-30 12:18:01 +00:00
dependabot[bot] dcb07983c1 chore(deps-dev): bump chrome-devtools-frontend from 1.0.1650035 to 1.0.1652307 in the bundled-devtools group (#2267)
Bumps the bundled-devtools group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend).

Updates `chrome-devtools-frontend` from 1.0.1650035 to 1.0.1652307
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/07482123637227aa4c1afef4b1b80abb66683063"><code>0748212</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/549a181bfb75e1eaf92031bf076d4ed86593806c"><code>549a181</code></a>
AI: Rename AllToolsContext to AllToolsCapabilities</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/7b846d861f54d0d774f83a66ef0e5e1bf4b63b5a"><code>7b846d8</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/406537c2830052261736caa3ba52d46c3f564cba"><code>406537c</code></a>
Roll browser-protocol and CfT</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/2ab3e3efad59c718110942f6bca06dd62b56f018"><code>2ab3e3e</code></a>
[build] Add generated tsconfig to outputs of generate_css</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/054563a7e08ead180493561bcbea55b97bb58365"><code>054563a</code></a>
Remove ObjectPropertiesSectionsTreeOutline from
ScopeChainSidebarPain</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/ff41727b1952f90cf2f6f93e0eb6a200d137cee4"><code>ff41727</code></a>
Fix missing dependency on services/tracing in legacy test_runner</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/49c3d61f9e548d9984eaf4d52d6c86f4c0c55a88"><code>49c3d61</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/9d61befc2ac91613d9e0a031cce9a0dcab37ba80"><code>9d61bef</code></a>
Show CSS specificity breakdown in selector tooltip</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/9bf90e6bd32d553967294c6ba93408ede35bf065"><code>9bf90e6</code></a>
Update generator script to support devtools_keywords</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1650035...v1.0.1652307">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrome-devtools-frontend&package-manager=npm_and_yarn&previous-version=1.0.1650035&new-version=1.0.1652307)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-29 12:01:08 +00:00
dependabot[bot] 47b1963bc4 chore(deps-dev): bump puppeteer from 25.2.0 to 25.2.1 in the bundled group (#2268)
Bumps the bundled group with 1 update:
[puppeteer](https://github.com/puppeteer/puppeteer).

Updates `puppeteer` from 25.2.0 to 25.2.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v25.2.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v25.2.0...puppeteer-core-v25.2.1">25.2.1</a>
(2026-06-24)</h2>
<h3>🛠️ Fixes</h3>
<ul>
<li>regression when using Puppeteer with untrusted sessions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15150">#15150</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/801c2124cfbc4a4a19bb0a40bc3b8a25d7504691">801c212</a>)</li>
<li>roll to Firefox 152.0.2 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15153">#15153</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/d2908b2cdf3e3fa721a063d40b50d532b39bbc72">d2908b2</a>)</li>
</ul>
<h2>puppeteer: v25.2.1</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.2.0...puppeteer-v25.2.1">25.2.1</a>
(2026-06-24)</h2>
<h3>♻️ Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>puppeteer-core bumped from 25.2.0 to 25.2.1</li>
</ul>
</li>
</ul>
</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md">puppeteer's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.2.0...puppeteer-v25.2.1">25.2.1</a>
(2026-06-24)</h2>
<h3>♻️ Chores</h3>
<ul>
<li><strong>puppeteer:</strong> Synchronize puppeteer versions</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li>puppeteer-core bumped from 25.2.0 to 25.2.1</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>regression when using Puppeteer with untrusted sessions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15150">#15150</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/801c2124cfbc4a4a19bb0a40bc3b8a25d7504691">801c212</a>)</li>
<li>roll to Firefox 152.0.2 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15153">#15153</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/d2908b2cdf3e3fa721a063d40b50d532b39bbc72">d2908b2</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/4a56c699e50f0cd5ff87dd10e43f7defaf3d95a0"><code>4a56c69</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15152">#15152</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/d2908b2cdf3e3fa721a063d40b50d532b39bbc72"><code>d2908b2</code></a>
fix: roll to Firefox 152.0.2 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15153">#15153</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/801c2124cfbc4a4a19bb0a40bc3b8a25d7504691"><code>801c212</code></a>
fix: regression when using Puppeteer with untrusted sessions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15150">#15150</a>)</li>
<li>See full diff in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.2.0...puppeteer-v25.2.1">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=puppeteer&package-manager=npm_and_yarn&previous-version=25.2.0&new-version=25.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-29 12:00:46 +00:00
Piotr Paulski e5bd334c97 chore: make TOON dependency optional (#2260)
Since toon dependency is only needed for `--experimentalToonFormat`
flag, we can make it optional to decrease package size and security
footprint for users that don't use it.

Testing npx optional peer dependency resolution before the release:
```
npm i -g verdaccio
verdaccio
```
On a separate terminal:
```
npm adduser --registry http://localhost:4873/
# follow prompts to create user and login

# replace the published package in verdaccio
npm unpublish chrome-devtools-mcp@1.4.0 --force --registry http://localhost:4873
npm publish --registry http://localhost:4873

# clear npx cache
rm -rf ~/.npm/_npx

# run the server from commandline and observe both packages being installed:
npx --registry http://localhost:4873 --package chrome-devtools-mcp@latest --package @toon-format/toon chrome-devtools-mcp --experimentalToonFormat
```
Paste the following commands (each line separately) to manually interact
with the mcp server and observe TOON formatted response directly

### 1. Initialize the session


{"jsonrpc":"2.0","id":1,"method":"initialize","params":{"protocolVersion":"2024-11-05","capabilities":{},"clientInfo":{"name":"test-client","version":"1.0.0"}}}
    
  ### 2. Confirm initialization
    {"jsonrpc":"2.0","method":"notifications/initialized"}
    
### 3. Navigate to Google (this will already create snapshot in most
recent versions)


{"jsonrpc":"2.0","id":2,"method":"tools/call","params":{"name":"navigate_page","arguments":{"url":"https://google.com"}}}
    
  ### 4. Take Snapshot (if not returned by the previous command)


{"jsonrpc":"2.0","id":3,"method":"tools/call","params":{"name":"take_snapshot","arguments":{}}}

---------

Co-authored-by: Piotr Paulski <piotrpaulski@chromium.org>
2026-06-26 08:11:31 +00:00
Nikolay Vitkov 6a9466378c fix: respecte allow/block list in loadResouce (#2254)
Fixes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2218
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/2225
2026-06-24 13:16:34 +00:00
Nikolay Vitkov fecef2698d test: reduce type casting in tests (#2251) 2026-06-24 09:45:16 +00:00
Nikolay Vitkov d1449654ac perf: use concurrent reads for loadIssueDescriptions (#2249)
💡 **What:** Refactored `loadIssueDescriptions` in
`src/issue-descriptions.ts` to use `Promise.all` for reading all the
`.md` description files concurrently rather than sequentially.
🎯 **Why:** Sequential file I/O operations create unnecessary blocking.
The order in which files are read does not matter when populating a map,
making it safe and more performant to read them concurrently.
📊 **Measured Improvement:** A local benchmark running against the 271
generated `.md` files in `build/src/third_party/issue-descriptions`
showed a decrease from ~195ms (sequential) to ~56ms (concurrent), a >70%
improvement.

---
*PR created automatically by Jules for task
[15785526133454041422](https://jules.google.com/task/15785526133454041422)
started by @Lightning00Blade*

---------

Co-authored-by: google-labs-jules[bot] <161369871+google-labs-jules[bot]@users.noreply.github.com>
2026-06-24 09:44:13 +00:00
browser-automation-bot 0aaa8e3cc0 chore(main): release chrome-devtools-mcp 1.4.0 (#2228)
publish-on-tag / publish-to-npm (push) Has been cancelled
publish-on-tag / publish-to-mcp-registry (push) Has been cancelled
🤖 I have created a release *beep* *boop*
---


##
[1.4.0](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v1.3.0...chrome-devtools-mcp-v1.4.0)
(2026-06-23)


### 🎉 Features

* publish the skills folder
([#2229](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2229))
([5367f7e](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/5367f7e97c1a4f506d8d1e3e8e773c72f1c0a03a))


### 🛠️ Fixes

* hide Windows update check consoles
([#2231](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2231))
([6225ffb](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/6225ffbaf1ceb2d9d0f8b2f3b7380aa8a710b857))
* **network:** keep redirect chain order consistent between text and
JSON
([#2221](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2221))
([5a9d6af](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/5a9d6af743109e3bb9703cf0c9a46f9cb2a97480))


### 📄 Documentation

* fix showing defaults in configuration
([#2234](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2234))
([38dd346](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/38dd346805416c8bff2196e73c1410ca78d6f397))
* **readme:** explicitly call out that CD4A can power your browser agent
([#2227](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2227))
([705d0e1](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/705d0e11812b8c1c2506d0ac372a97671298df11))
* update security.md
([#2248](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2248))
([e559765](https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/e55976574030dd2cde45b58d57555f5d433f50e0))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).
chrome-devtools-mcp-v1.4.0
2026-06-23 07:11:50 +00:00
Alex Rudenko e559765740 docs: update security.md (#2248)
Clarifies the MCP roots and network guardrails.
2026-06-23 06:53:48 +00:00
dependabot[bot] 0cafee074c chore(deps-dev): bump puppeteer from 25.1.0 to 25.2.0 in the bundled group (#2246)
Bumps the bundled group with 1 update:
[puppeteer](https://github.com/puppeteer/puppeteer).

Updates `puppeteer` from 25.1.0 to 25.2.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/releases">puppeteer's
releases</a>.</em></p>
<blockquote>
<h2>puppeteer-core: v25.2.0</h2>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v25.1.0...puppeteer-core-v25.2.0">25.2.0</a>
(2026-06-22)</h2>
<h3>🎉 Features</h3>
<ul>
<li>add page locale emulation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15075">#15075</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/c528f6508dcbe830a2bf7b61605ea53b14b56168">c528f65</a>)</li>
<li>add waitForFunction to webWorkers (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15100">#15100</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/0bdfa77b1244f4a397e22fc1ed4d9cf6eabe2697">0bdfa77</a>)</li>
<li>allow extensions to run over websockets (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15059">#15059</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b84d8a18584fcf54670fff169408b8ac712d8c06">b84d8a1</a>)</li>
<li>roll to Chrome 150.0.7871.24 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15126">#15126</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b74ed1c81caffa7c727b8e21498dda42899467ed">b74ed1c</a>)</li>
<li>roll to Firefox 152.0 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15125">#15125</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/87be90674742650fd0bcb138922ff61d2bf2ca98">87be906</a>)</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>apply allowlist to non-auto-attach sessions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15136">#15136</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/5c7a0e0e09eef73177d27d4c4fa2669ebe8d65b7">5c7a0e0</a>)</li>
<li>await for Worker script exection (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15099">#15099</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/dc469b8aae9008b8ec665014d4fac9e13c8a0650">dc469b8</a>)</li>
<li>block service worker registrations (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15135">#15135</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/d03617c36148a0d9ac86c51b3b5661c07c150ef9">d03617c</a>)</li>
<li>correct screencast frame timing so playback matches real time (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15112">#15112</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/525b3843bb4920abe2142c1ae381fb2384d9d2dc">525b384</a>)</li>
<li>remove global skipDownload early return to include other configs (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15130">#15130</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/5b1cb20ce060c88c5f43f1a4bbfdcfd513db6cc3">5b1cb20</a>)</li>
<li>roll to Firefox 152.0.1 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15134">#15134</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/fd12dd6f31604835b7476b624b8972b8c8c090b6">fd12dd6</a>)</li>
<li><strong>webmcp:</strong> invalidate webmcp tools on context
destruction (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15068">#15068</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/8e9c0fa4ac4054f3f31868f17761c73335229306">8e9c0fa</a>)</li>
</ul>
<h3>📄 Documentation</h3>
<ul>
<li>clarify the network allowlist/blocklist implementation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15148">#15148</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/a7f124c930e6119581a4e54c3293cbca66c0f498">a7f124c</a>)</li>
<li>Update Page.target deprecation message to cover broader usage. (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15108">#15108</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/882c43d57698596921d83b56ef82b666ad0528c5">882c43d</a>)</li>
</ul>
<h3> Performance</h3>
<ul>
<li><strong>cdp:</strong> parallelize extension workers fetching (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15057">#15057</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/fdee509f47f1587f17cf25b176a50d5d8fcde38a">fdee509</a>)</li>
<li>optimize <code>headersArray</code> iteration in HTTPRequest (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15004">#15004</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/eb9579844f071c2aa8ad1a0c19443b618fac63b7">eb95798</a>)</li>
<li>optimize property descriptors iteration in JSHandle (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15094">#15094</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/2483b656cd17b99af089087094a0e6f88c6ba4fb">2483b65</a>)</li>
<li>parallelize iframe population in accessibility snapshots (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15083">#15083</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/7e3d42ec56c017978ca780af394ac4e5cf5391fd">7e3d42e</a>)</li>
</ul>
<h3>🏗️ Refactor</h3>
<ul>
<li>sync accessing debugger (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15066">#15066</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/904623947f270e50243c3f7fb74f4aef3245c22d">9046239</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 3.0.4 to 3.0.5</li>
</ul>
</li>
</ul>
</li>
</ul>
<h2>puppeteer: v25.2.0</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/puppeteer/puppeteer/blob/main/CHANGELOG.md">puppeteer's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.1.0...puppeteer-v25.2.0">25.2.0</a>
(2026-06-22)</h2>
<h3>🎉 Features</h3>
<ul>
<li>add page locale emulation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15075">#15075</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/c528f6508dcbe830a2bf7b61605ea53b14b56168">c528f65</a>)</li>
<li>add waitForFunction to webWorkers (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15100">#15100</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/0bdfa77b1244f4a397e22fc1ed4d9cf6eabe2697">0bdfa77</a>)</li>
<li>allow extensions to run over websockets (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15059">#15059</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b84d8a18584fcf54670fff169408b8ac712d8c06">b84d8a1</a>)</li>
<li>roll to Chrome 150.0.7871.24 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15126">#15126</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/b74ed1c81caffa7c727b8e21498dda42899467ed">b74ed1c</a>)</li>
<li>roll to Firefox 152.0 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15125">#15125</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/87be90674742650fd0bcb138922ff61d2bf2ca98">87be906</a>)</li>
</ul>
<h3>🛠️ Fixes</h3>
<ul>
<li>apply allowlist to non-auto-attach sessions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15136">#15136</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/5c7a0e0e09eef73177d27d4c4fa2669ebe8d65b7">5c7a0e0</a>)</li>
<li>await for Worker script exection (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15099">#15099</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/dc469b8aae9008b8ec665014d4fac9e13c8a0650">dc469b8</a>)</li>
<li>block service worker registrations (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15135">#15135</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/d03617c36148a0d9ac86c51b3b5661c07c150ef9">d03617c</a>)</li>
<li>correct screencast frame timing so playback matches real time (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15112">#15112</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/525b3843bb4920abe2142c1ae381fb2384d9d2dc">525b384</a>)</li>
<li>remove global skipDownload early return to include other configs (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15130">#15130</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/5b1cb20ce060c88c5f43f1a4bbfdcfd513db6cc3">5b1cb20</a>)</li>
<li>roll to Firefox 152.0.1 (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15134">#15134</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/fd12dd6f31604835b7476b624b8972b8c8c090b6">fd12dd6</a>)</li>
<li><strong>webmcp:</strong> invalidate webmcp tools on context
destruction (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15068">#15068</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/8e9c0fa4ac4054f3f31868f17761c73335229306">8e9c0fa</a>)</li>
</ul>
<h3>Dependencies</h3>
<ul>
<li>The following workspace dependencies were updated
<ul>
<li>dependencies
<ul>
<li><code>@​puppeteer/browsers</code> bumped from 3.0.4 to 3.0.5</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>📄 Documentation</h3>
<ul>
<li>clarify the network allowlist/blocklist implementation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15148">#15148</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/a7f124c930e6119581a4e54c3293cbca66c0f498">a7f124c</a>)</li>
<li>Update Page.target deprecation message to cover broader usage. (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15108">#15108</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/882c43d57698596921d83b56ef82b666ad0528c5">882c43d</a>)</li>
</ul>
<h3> Performance</h3>
<ul>
<li><strong>cdp:</strong> parallelize extension workers fetching (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15057">#15057</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/fdee509f47f1587f17cf25b176a50d5d8fcde38a">fdee509</a>)</li>
<li>optimize <code>headersArray</code> iteration in HTTPRequest (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15004">#15004</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/eb9579844f071c2aa8ad1a0c19443b618fac63b7">eb95798</a>)</li>
<li>optimize property descriptors iteration in JSHandle (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15094">#15094</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/2483b656cd17b99af089087094a0e6f88c6ba4fb">2483b65</a>)</li>
<li>parallelize iframe population in accessibility snapshots (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15083">#15083</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/7e3d42ec56c017978ca780af394ac4e5cf5391fd">7e3d42e</a>)</li>
</ul>
<h3>🏗️ Refactor</h3>
<ul>
<li>sync accessing debugger (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15066">#15066</a>)
(<a
href="https://github.com/puppeteer/puppeteer/commit/904623947f270e50243c3f7fb74f4aef3245c22d">9046239</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/049614305e94400629112b66141a4852d2b0d147"><code>0496143</code></a>
chore: release main (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15064">#15064</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/a7f124c930e6119581a4e54c3293cbca66c0f498"><code>a7f124c</code></a>
docs: clarify the network allowlist/blocklist implementation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15148">#15148</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/036503e7b7eb10bc64d1b98927fe5d12cdb78f7c"><code>036503e</code></a>
test: add iframe tests (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15149">#15149</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/2d71ccc1ca4597a6d9cdb979bc1852a31c8e5dc6"><code>2d71ccc</code></a>
chore: fix regression of debug logs (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15147">#15147</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/5b1cb20ce060c88c5f43f1a4bbfdcfd513db6cc3"><code>5b1cb20</code></a>
fix: remove global skipDownload early return to include other configs
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15130">#15130</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/1106b6e4ed2ae8c785bcd540ac9305e6bd8f02d1"><code>1106b6e</code></a>
chore(deps): bump the all group in /website with 2 updates (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15143">#15143</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/f14e4adf67387afe4599f8b166fd6f67de3192ec"><code>f14e4ad</code></a>
chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 in the all group
(<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15144">#15144</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/6d120e64e4cf4910a3d4a29f4f58e6179084ef1a"><code>6d120e6</code></a>
chore(deps): bump node from <code>40ad9f3</code> to <code>032e78d</code>
in /docker in the all grou...</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/5c7a0e0e09eef73177d27d4c4fa2669ebe8d65b7"><code>5c7a0e0</code></a>
fix: apply allowlist to non-auto-attach sessions (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15136">#15136</a>)</li>
<li><a
href="https://github.com/puppeteer/puppeteer/commit/77c4ffde99a7cbbd85e91bdb5687254f32cb76ef"><code>77c4ffd</code></a>
chore(webmcp): Update WebMCP to Chrome 150 implementation (<a
href="https://redirect.github.com/puppeteer/puppeteer/issues/15069">#15069</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v25.1.0...puppeteer-v25.2.0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=puppeteer&package-manager=npm_and_yarn&previous-version=25.1.0&new-version=25.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nikolay Vitkov <nvitkov@chromium.org>
2026-06-22 16:49:45 +00:00
dependabot[bot] 50ff6587d6 chore(deps-dev): bump chrome-devtools-frontend from 1.0.1649421 to 1.0.1650035 in the bundled-devtools group (#2245)
Bumps the bundled-devtools group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend).

Updates `chrome-devtools-frontend` from 1.0.1649421 to 1.0.1650035
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/e4e80ce5bf90518f5e680384937c0bb7e9588419"><code>e4e80ce</code></a>
Fix rendering and editing of relation attributes in the Elements
panel.</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/f60fe03e5b749fc46aee9401496e8a3911c28654"><code>f60fe03</code></a>
Roll browser-protocol and CfT</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/889251e5c2e7f87faf1510c82f73c662c7c6f1c7"><code>889251e</code></a>
Add &quot;retained by context&quot; filter</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/8b110f26e0f6f36b865d9415bbba778e636a188b"><code>8b110f2</code></a>
Add keywords from alias property in CSSMetadata</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/407ac53c12534d07f936a2c6453a166b05a61b10"><code>407ac53</code></a>
SelfXSS: prevent pasting via drop-event</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/53be0f1d9220e0c616213c0696e7977b3535f52b"><code>53be0f1</code></a>
Update DevTools DEPS (trusted)</li>
<li>See full diff in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1649421...v1.0.1650035">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrome-devtools-frontend&package-manager=npm_and_yarn&previous-version=1.0.1649421&new-version=1.0.1650035)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 16:26:24 +00:00
dependabot[bot] f8d7826714 chore(deps-dev): bump the dev-dependencies group across 1 directory with 4 updates (#2237)
Bumps the dev-dependencies group with 4 updates in the / directory:
[@google/genai](https://github.com/googleapis/js-genai),
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node),
[rollup](https://github.com/rollup/rollup) and
[semver](https://github.com/npm/node-semver).

Updates `@google/genai` from 2.8.0 to 2.9.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/js-genai/releases">@​google/genai's
releases</a>.</em></p>
<blockquote>
<h2>v2.9.0</h2>
<h2><a
href="https://github.com/googleapis/js-genai/compare/v2.8.0...v2.9.0">2.9.0</a>
(2026-06-19)</h2>
<h3>Features</h3>
<ul>
<li>Add audioOffset to VoiceActivity (<a
href="https://github.com/googleapis/js-genai/commit/3bc7d423019bcc19c408ffcd21193b1f06677a3e">3bc7d42</a>)</li>
<li>Add interimInputTranscription to LiveServerContent (<a
href="https://github.com/googleapis/js-genai/commit/3bc7d423019bcc19c408ffcd21193b1f06677a3e">3bc7d42</a>)</li>
<li>Add LanguageAuto, LanguageHints, and adaptationPhrases to
AudioTranscriptionConfig (<a
href="https://github.com/googleapis/js-genai/commit/3bc7d423019bcc19c408ffcd21193b1f06677a3e">3bc7d42</a>)</li>
<li>Add ServiceTier to UsageMetadata (<a
href="https://github.com/googleapis/js-genai/commit/1f44b04ec6572676e434c5adb4ee34f6c4be27aa">1f44b04</a>)</li>
<li>expose Computer Use API fields (<a
href="https://github.com/googleapis/js-genai/commit/da54ea4c5ac918b7e2039156ef08bf8825c3930d">da54ea4</a>)</li>
<li><strong>interaction-api:</strong> Add presence_penalty,
frequency_penalty, and cached_content to models.proto (<a
href="https://github.com/googleapis/js-genai/commit/2740a4298ccb0bc5bad7b81afdd70affe52ebbe2">2740a42</a>)</li>
<li><strong>interaction-api:</strong> Rename usage to total_usage in
StreamMetadata. (<a
href="https://github.com/googleapis/js-genai/commit/b72db47154cfafd68d0d68aa73a1d73a6a95dd02">b72db47</a>)</li>
<li>introduce gaos sdk libs (<a
href="https://github.com/googleapis/js-genai/commit/bfac5d4945081f121e8023a67acbb21a0b5a7a2a">bfac5d4</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li>Configure 2.9.0 as the next release (<a
href="https://github.com/googleapis/js-genai/commit/e9968c637c410a2297ebd6f0d6050c572068687a">e9968c6</a>)</li>
<li>Configure a 2.9.0-rc.0 prerelease (<a
href="https://github.com/googleapis/js-genai/commit/ae612ec26c46a74dca8f6118d69191a0dc5912f7">ae612ec</a>)</li>
</ul>
<h2>v2.9.0-rc.0</h2>
<h2><a
href="https://github.com/googleapis/js-genai/compare/v2.8.0...v2.9.0-rc.0">2.9.0-rc.0</a>
(2026-06-16)</h2>
<h3>Features</h3>
<ul>
<li>Add ServiceTier to UsageMetadata (<a
href="https://github.com/googleapis/js-genai/commit/1f44b04ec6572676e434c5adb4ee34f6c4be27aa">1f44b04</a>)</li>
<li>expose Computer Use API fields (<a
href="https://github.com/googleapis/js-genai/commit/da54ea4c5ac918b7e2039156ef08bf8825c3930d">da54ea4</a>)</li>
<li><strong>interaction-api:</strong> Add <code>model</code> field and
<code>CodeMenderAgentData</code> response message (<a
href="https://github.com/googleapis/js-genai/commit/688f3a03f7528160dd79d080d35694888288d4ec">688f3a0</a>)</li>
<li><strong>interaction-api:</strong> Add CodeMenderAgentConfig to the
Interactions API AgentInteraction proto (<a
href="https://github.com/googleapis/js-genai/commit/cb4da1f90dad452b0490628f47dd560659c21c67">cb4da1f</a>)</li>
<li><strong>interaction-api:</strong> Add presence_penalty,
frequency_penalty, and cached_content to models.proto (<a
href="https://github.com/googleapis/js-genai/commit/2740a4298ccb0bc5bad7b81afdd70affe52ebbe2">2740a42</a>)</li>
<li><strong>interaction-api:</strong> Rename usage to total_usage in
StreamMetadata. (<a
href="https://github.com/googleapis/js-genai/commit/b72db47154cfafd68d0d68aa73a1d73a6a95dd02">b72db47</a>)</li>
<li>introduce gaos sdk libs (<a
href="https://github.com/googleapis/js-genai/commit/f2cb0d29476aaf9c3f46735caa8da8f59f19b840">f2cb0d2</a>)</li>
<li>introduce gaos sdk libs (<a
href="https://github.com/googleapis/js-genai/commit/72ed90ce1c71cf2a75ba4b24f8608fc31badfe2a">72ed90c</a>)</li>
<li>introduce gaos sdk libs (<a
href="https://github.com/googleapis/js-genai/commit/bfac5d4945081f121e8023a67acbb21a0b5a7a2a">bfac5d4</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li>Configure a 2.9.0-rc.0 prerelease (<a
href="https://github.com/googleapis/js-genai/commit/ae612ec26c46a74dca8f6118d69191a0dc5912f7">ae612ec</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/googleapis/js-genai/blob/main/CHANGELOG.md">@​google/genai's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/googleapis/js-genai/compare/v2.8.0...v2.9.0">2.9.0</a>
(2026-06-19)</h2>
<h3>Features</h3>
<ul>
<li>Add audioOffset to VoiceActivity (<a
href="https://github.com/googleapis/js-genai/commit/3bc7d423019bcc19c408ffcd21193b1f06677a3e">3bc7d42</a>)</li>
<li>Add interimInputTranscription to LiveServerContent (<a
href="https://github.com/googleapis/js-genai/commit/3bc7d423019bcc19c408ffcd21193b1f06677a3e">3bc7d42</a>)</li>
<li>Add LanguageAuto, LanguageHints, and adaptationPhrases to
AudioTranscriptionConfig (<a
href="https://github.com/googleapis/js-genai/commit/3bc7d423019bcc19c408ffcd21193b1f06677a3e">3bc7d42</a>)</li>
<li>Add ServiceTier to UsageMetadata (<a
href="https://github.com/googleapis/js-genai/commit/1f44b04ec6572676e434c5adb4ee34f6c4be27aa">1f44b04</a>)</li>
<li>expose Computer Use API fields (<a
href="https://github.com/googleapis/js-genai/commit/da54ea4c5ac918b7e2039156ef08bf8825c3930d">da54ea4</a>)</li>
<li><strong>interaction-api:</strong> Add presence_penalty,
frequency_penalty, and cached_content to models.proto (<a
href="https://github.com/googleapis/js-genai/commit/2740a4298ccb0bc5bad7b81afdd70affe52ebbe2">2740a42</a>)</li>
<li><strong>interaction-api:</strong> Rename usage to total_usage in
StreamMetadata. (<a
href="https://github.com/googleapis/js-genai/commit/b72db47154cfafd68d0d68aa73a1d73a6a95dd02">b72db47</a>)</li>
<li>introduce gaos sdk libs (<a
href="https://github.com/googleapis/js-genai/commit/bfac5d4945081f121e8023a67acbb21a0b5a7a2a">bfac5d4</a>)</li>
</ul>
<h3>Miscellaneous Chores</h3>
<ul>
<li>Configure 2.9.0 as the next release (<a
href="https://github.com/googleapis/js-genai/commit/e9968c637c410a2297ebd6f0d6050c572068687a">e9968c6</a>)</li>
<li>Configure a 2.9.0-rc.0 prerelease (<a
href="https://github.com/googleapis/js-genai/commit/ae612ec26c46a74dca8f6118d69191a0dc5912f7">ae612ec</a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/googleapis/js-genai/commit/d7913882960272b03f691da5ec31f55d0ce7f567"><code>d791388</code></a>
chore(main): release 2.9.0 (<a
href="https://redirect.github.com/googleapis/js-genai/issues/1703">#1703</a>)</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/1838c805ee97030eb98dbe94fdbc3806893d53af"><code>1838c80</code></a>
chore: internal update</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/ea65ccfe5801f7f7eb48de48359ec3f221db6d38"><code>ea65ccf</code></a>
chore: Remove experimental warnings for interactions</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/e9968c637c410a2297ebd6f0d6050c572068687a"><code>e9968c6</code></a>
chore: Configure 2.9.0 as the next release</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/b751112ef2bb8a2e798d47844571d956e56738e6"><code>b751112</code></a>
chore: internal change</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/78f16e5afa5b604c69e08eb7f3c3d3c07a25005d"><code>78f16e5</code></a>
chore: Fix google-contributor-stale workflow for GenAI SDKs</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/3bc7d423019bcc19c408ffcd21193b1f06677a3e"><code>3bc7d42</code></a>
feat: Add LanguageAuto, LanguageHints, and adaptationPhrases to
AudioTranscri...</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/f9dd963f9d661b0213a0185c1ce81cb677f54dea"><code>f9dd963</code></a>
chore(main): release 2.9.0-rc.0 (<a
href="https://redirect.github.com/googleapis/js-genai/issues/1653">#1653</a>)</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/ae612ec26c46a74dca8f6118d69191a0dc5912f7"><code>ae612ec</code></a>
chore: Configure a 2.9.0-rc.0 prerelease</li>
<li><a
href="https://github.com/googleapis/js-genai/commit/9c79da79a14ae30a3eac5614e42bb21fdf09330e"><code>9c79da7</code></a>
chore: keep consistent with upstream config</li>
<li>Additional commits viewable in <a
href="https://github.com/googleapis/js-genai/compare/v2.8.0...v2.9.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `@types/node` from 25.9.3 to 26.0.0
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `rollup` from 4.62.0 to 4.62.2
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rollup/rollup/releases">rollup's
releases</a>.</em></p>
<blockquote>
<h2>v4.62.2</h2>
<h2>4.62.2</h2>
<p><em>2026-06-19</em></p>
<h3>Bug Fixes</h3>
<ul>
<li>Do not add spurious side-effect-free external imports to chunks when
using minChunkSize (<a
href="https://redirect.github.com/rollup/rollup/issues/6411">#6411</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6411">#6411</a>:
Skip side-effect-free external imports when hoisting is disabled (<a
href="https://github.com/morgan-coded"><code>@​morgan-coded</code></a>,
<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6416">#6416</a>:
refactor(rust/parser_ast): extract property AstConverter write buffer
kind logic to new method (<a
href="https://github.com/fabianbernhart"><code>@​fabianbernhart</code></a>,
<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
<h2>v4.62.1</h2>
<h2>4.62.1</h2>
<p><em>2026-06-19</em></p>
<h3>Bug Fixes</h3>
<ul>
<li>Preserve multipart file extensions when deconflicting output chunks
(<a
href="https://redirect.github.com/rollup/rollup/issues/6408">#6408</a>)</li>
<li>Fix an issue where getLogFilter would match additional logs (<a
href="https://redirect.github.com/rollup/rollup/issues/6415">#6415</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6393">#6393</a>:
Use import attributes for importing JSON (<a
href="https://github.com/selfisekai"><code>@​selfisekai</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6408">#6408</a>:
fix: insert conflict numbers before first extension in multi-extension
filenames (<a
href="https://github.com/LeSingh1"><code>@​LeSingh1</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6415">#6415</a>:
fix: advance value past wildcard prefix before suffix check in
getLogFilter (<a
href="https://github.com/JSap0914"><code>@​JSap0914</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6417">#6417</a>:
chore(deps): update msys2/setup-msys2 digest to 66cd2cc (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6418">#6418</a>:
fix(deps): update minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6419">#6419</a>:
chore(deps): update dependency eslint-plugin-unicorn to v66 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6420">#6420</a>:
chore(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rollup/rollup/blob/master/CHANGELOG.md">rollup's
changelog</a>.</em></p>
<blockquote>
<h2>4.62.2</h2>
<p><em>2026-06-19</em></p>
<h3>Bug Fixes</h3>
<ul>
<li>Do not add spurious side-effect-free external imports to chunks when
using minChunkSize (<a
href="https://redirect.github.com/rollup/rollup/issues/6411">#6411</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6411">#6411</a>:
Skip side-effect-free external imports when hoisting is disabled (<a
href="https://github.com/morgan-coded"><code>@​morgan-coded</code></a>,
<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6416">#6416</a>:
refactor(rust/parser_ast): extract property AstConverter write buffer
kind logic to new method (<a
href="https://github.com/fabianbernhart"><code>@​fabianbernhart</code></a>,
<a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
<h2>4.62.1</h2>
<p><em>2026-06-19</em></p>
<h3>Bug Fixes</h3>
<ul>
<li>Preserve multipart file extensions when deconflicting output chunks
(<a
href="https://redirect.github.com/rollup/rollup/issues/6408">#6408</a>)</li>
<li>Fix an issue where getLogFilter would match additional logs (<a
href="https://redirect.github.com/rollup/rollup/issues/6415">#6415</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6393">#6393</a>:
Use import attributes for importing JSON (<a
href="https://github.com/selfisekai"><code>@​selfisekai</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6408">#6408</a>:
fix: insert conflict numbers before first extension in multi-extension
filenames (<a
href="https://github.com/LeSingh1"><code>@​LeSingh1</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6415">#6415</a>:
fix: advance value past wildcard prefix before suffix check in
getLogFilter (<a
href="https://github.com/JSap0914"><code>@​JSap0914</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6417">#6417</a>:
chore(deps): update msys2/setup-msys2 digest to 66cd2cc (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6418">#6418</a>:
fix(deps): update minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6419">#6419</a>:
chore(deps): update dependency eslint-plugin-unicorn to v66 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6420">#6420</a>:
chore(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rollup/rollup/commit/8faa18777374582bb813d54ce3623f4acf1f9e0b"><code>8faa187</code></a>
4.62.2</li>
<li><a
href="https://github.com/rollup/rollup/commit/a38a795c481d589661abf0d5029162ccc4fb79e1"><code>a38a795</code></a>
refactor(rust/parser_ast): extract property AstConverter write buffer
kind lo...</li>
<li><a
href="https://github.com/rollup/rollup/commit/6cc5c316bb5c4497923005601c2742132ae117ff"><code>6cc5c31</code></a>
Skip side-effect-free external imports when hoisting is disabled (<a
href="https://redirect.github.com/rollup/rollup/issues/6411">#6411</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/caacf701b89e5be4a94b3ffdbf70b51e5cfa3a1a"><code>caacf70</code></a>
4.62.1</li>
<li><a
href="https://github.com/rollup/rollup/commit/d1e8297966f5921c249da31c51f31d8cb92d3010"><code>d1e8297</code></a>
Add missing ignore</li>
<li><a
href="https://github.com/rollup/rollup/commit/1ba1fc23874c888605b7cbbf69e3d39f88536978"><code>1ba1fc2</code></a>
fix: insert conflict numbers before first extension in multi-extension
filena...</li>
<li><a
href="https://github.com/rollup/rollup/commit/532bd0ade7e796d6b5990c22fe0ac033464bb8aa"><code>532bd0a</code></a>
Use import attributes for importing JSON (<a
href="https://redirect.github.com/rollup/rollup/issues/6393">#6393</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/2cd8194aa81b2bafaad049b8de06aa7602eb81ac"><code>2cd8194</code></a>
fix: advance value past wildcard prefix before suffix check in
getLogFilter (...</li>
<li><a
href="https://github.com/rollup/rollup/commit/dfac590bd53405167d18c8a6ca6aefc83b854886"><code>dfac590</code></a>
fix(deps): update minor/patch updates (<a
href="https://redirect.github.com/rollup/rollup/issues/6418">#6418</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/1d6db3d32587e7ff46f7fff8eabf18b85ef8ea50"><code>1d6db3d</code></a>
chore(deps): update dependency eslint-plugin-unicorn to v66 (<a
href="https://redirect.github.com/rollup/rollup/issues/6419">#6419</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/rollup/rollup/compare/v4.62.0...v4.62.2">compare
view</a></li>
</ul>
</details>
<br />

Updates `semver` from 7.8.4 to 7.8.5
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/npm/node-semver/releases">semver's
releases</a>.</em></p>
<blockquote>
<h2>v7.8.5</h2>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.8.4...v7.8.5">7.8.5</a>
(2026-06-19)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/9c8692ae05416e9dbe88d95ffe2b80e6964550fe"><code>9c8692a</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/878">#878</a>
include prereleases in tilde range lower bound with includePrerelease
(<a
href="https://redirect.github.com/npm/node-semver/issues/878">#878</a>)
(<a
href="https://github.com/chatman-media"><code>@​chatman-media</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/npm/node-semver/blob/main/CHANGELOG.md">semver's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.8.4...v7.8.5">7.8.5</a>
(2026-06-19)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/9c8692ae05416e9dbe88d95ffe2b80e6964550fe"><code>9c8692a</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/878">#878</a>
include prereleases in tilde range lower bound with includePrerelease
(<a
href="https://redirect.github.com/npm/node-semver/issues/878">#878</a>)
(<a
href="https://github.com/chatman-media"><code>@​chatman-media</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/6e05b7637396ac66522cff8731f07cfe0ef49a29"><code>6e05b76</code></a>
chore: release 7.8.5 (<a
href="https://redirect.github.com/npm/node-semver/issues/879">#879</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/9c8692ae05416e9dbe88d95ffe2b80e6964550fe"><code>9c8692a</code></a>
fix: include prereleases in tilde range lower bound with
includePrerelease (#...</li>
<li>See full diff in <a
href="https://github.com/npm/node-semver/compare/v7.8.4...v7.8.5">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 11:09:55 +00:00
dependabot[bot] 52cf8c4008 chore(deps-dev): bump chrome-devtools-frontend from 1.0.1646286 to 1.0.1649421 in the bundled-devtools group (#2238)
Bumps the bundled-devtools group with 1 update:
[chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend).

Updates `chrome-devtools-frontend` from 1.0.1646286 to 1.0.1649421
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/937b4e9d3e3adfa7a8f578d8d5e272a097aeb0f3"><code>937b4e9</code></a>
Fix bug with tab completion for traditional suggestions</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/a4f16eb8b21990b0a3922bd62a903290b8e890c0"><code>a4f16eb</code></a>
Styles: Cancel pending AI completions on deletion and cap context
size</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/8e76e6d399b282eac12238ed7c5ba4b56b40e025"><code>8e76e6d</code></a>
[storage-agent] Show disabled hover icon for httpOnly cookies</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/676496ab189655353cb10f877db7ada0414c876b"><code>676496a</code></a>
[storage-agent] Selecting the sidebar should update the storage
flavor</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/f9fb5d0cdb90d6e2b296d94dd5b671ba65b7ab38"><code>f9fb5d0</code></a>
[storage-agent] Add 'Debug with Ai' context menu for cookie table</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/902eec2279db1a6cca0284c915ec2c183d82238f"><code>902eec2</code></a>
Roll browser-protocol and CfT</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/c017b5da7c7c3680596e8923a7fc8c182e72fcc9"><code>c017b5d</code></a>
Update DevTools DEPS (trusted)</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/0070b1727b874e80035f1dab8636b5051304ee41"><code>0070b17</code></a>
Link variable names in style queries in CSS if expressions</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/36081cd6f9571cf1d1e6ab49fc4ce6bb9e0b7934"><code>36081cd</code></a>
Fix presubmit regex to accept vendor prefixed property names</li>
<li><a
href="https://github.com/ChromeDevTools/devtools-frontend/commit/cf5900130a96cd862b2f7a641ef43d628aa4fbe1"><code>cf59001</code></a>
Update DevTools DEPS (trusted)</li>
<li>Additional commits viewable in <a
href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1646286...v1.0.1649421">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=chrome-devtools-frontend&package-manager=npm_and_yarn&previous-version=1.0.1646286&new-version=1.0.1649421)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 09:12:44 +00:00
dependabot[bot] cbbac02ca5 chore(deps): bump actions/checkout from 6.0.3 to 7.0.0 in the all group (#2239)
Bumps the all group with 1 update:
[actions/checkout](https://github.com/actions/checkout).

Updates `actions/checkout` from 6.0.3 to 7.0.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/releases">actions/checkout's
releases</a>.</em></p>
<blockquote>
<h2>v7.0.0</h2>
<h2>What's Changed</h2>
<ul>
<li>block checking out fork pr for pull_request_target and workflow_run
by <a href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li>
<li>Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the
minor-actions-dependencies group across 1 directory by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2458">actions/checkout#2458</a></li>
<li>Bump flatted from 3.3.1 to 3.4.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2460">actions/checkout#2460</a></li>
<li>Bump js-yaml from 4.1.0 to 4.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2461">actions/checkout#2461</a></li>
<li>Bump <code>@​actions/core</code> and
<code>@​actions/tool-cache</code> and Remove uuid by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2459">actions/checkout#2459</a></li>
<li>upgrade module to esm and update dependencies by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2463">actions/checkout#2463</a></li>
<li>Bump the minor-npm-dependencies group across 1 directory with 3
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2462">actions/checkout#2462</a></li>
<li>getting ready for checkout v7 release by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2464">actions/checkout#2464</a></li>
<li>update error wording by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2467">actions/checkout#2467</a></li>
</ul>
<h2>New Contributors</h2>
<ul>
<li><a href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> made
their first contribution in <a
href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li>
</ul>
<p><strong>Full Changelog</strong>: <a
href="https://github.com/actions/checkout/compare/v6.0.3...v7.0.0">https://github.com/actions/checkout/compare/v6.0.3...v7.0.0</a></p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/actions/checkout/blob/main/CHANGELOG.md">actions/checkout's
changelog</a>.</em></p>
<blockquote>
<h1>Changelog</h1>
<h2>v7.0.0</h2>
<ul>
<li>Block checking out fork PR for pull_request_target and workflow_run
by <a href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2454">actions/checkout#2454</a></li>
<li>Bump actions/publish-immutable-action from 0.0.3 to 0.0.4 in the
minor-actions-dependencies group across 1 directory by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2458">actions/checkout#2458</a></li>
<li>Bump flatted from 3.3.1 to 3.4.2 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2460">actions/checkout#2460</a></li>
<li>Bump js-yaml from 4.1.0 to 4.2.0 by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2461">actions/checkout#2461</a></li>
<li>Bump <code>@​actions/core</code> and
<code>@​actions/tool-cache</code> and Remove uuid by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2459">actions/checkout#2459</a></li>
<li>upgrade module to esm and update dependencies by <a
href="https://github.com/aiqiaoy"><code>@​aiqiaoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2463">actions/checkout#2463</a></li>
<li>Bump the minor-npm-dependencies group across 1 directory with 3
updates by <a
href="https://github.com/dependabot"><code>@​dependabot</code></a>[bot]
in <a
href="https://redirect.github.com/actions/checkout/pull/2462">actions/checkout#2462</a></li>
</ul>
<h2>v6.0.3</h2>
<ul>
<li>Fix checkout init for SHA-256 repositories by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2439">actions/checkout#2439</a></li>
<li>fix: expand merge commit SHA regex and add SHA-256 test cases by <a
href="https://github.com/yaananth"><code>@​yaananth</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2414">actions/checkout#2414</a></li>
</ul>
<h2>v6.0.2</h2>
<ul>
<li>Fix tag handling: preserve annotations and explicit fetch-tags by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2356">actions/checkout#2356</a></li>
</ul>
<h2>v6.0.1</h2>
<ul>
<li>Add worktree support for persist-credentials includeIf by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2327">actions/checkout#2327</a></li>
</ul>
<h2>v6.0.0</h2>
<ul>
<li>Persist creds to a separate file by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2286">actions/checkout#2286</a></li>
<li>Update README to include Node.js 24 support details and requirements
by <a href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2248">actions/checkout#2248</a></li>
</ul>
<h2>v5.0.1</h2>
<ul>
<li>Port v6 cleanup to v5 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2301">actions/checkout#2301</a></li>
</ul>
<h2>v5.0.0</h2>
<ul>
<li>Update actions checkout to use node 24 by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2226">actions/checkout#2226</a></li>
</ul>
<h2>v4.3.1</h2>
<ul>
<li>Port v6 cleanup to v4 by <a
href="https://github.com/ericsciple"><code>@​ericsciple</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2305">actions/checkout#2305</a></li>
</ul>
<h2>v4.3.0</h2>
<ul>
<li>docs: update README.md by <a
href="https://github.com/motss"><code>@​motss</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1971">actions/checkout#1971</a></li>
<li>Add internal repos for checking out multiple repositories by <a
href="https://github.com/mouismail"><code>@​mouismail</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1977">actions/checkout#1977</a></li>
<li>Documentation update - add recommended permissions to Readme by <a
href="https://github.com/benwells"><code>@​benwells</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2043">actions/checkout#2043</a></li>
<li>Adjust positioning of user email note and permissions heading by <a
href="https://github.com/joshmgross"><code>@​joshmgross</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2044">actions/checkout#2044</a></li>
<li>Update README.md by <a
href="https://github.com/nebuk89"><code>@​nebuk89</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2194">actions/checkout#2194</a></li>
<li>Update CODEOWNERS for actions by <a
href="https://github.com/TingluoHuang"><code>@​TingluoHuang</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/2224">actions/checkout#2224</a></li>
<li>Update package dependencies by <a
href="https://github.com/salmanmkc"><code>@​salmanmkc</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/2236">actions/checkout#2236</a></li>
</ul>
<h2>v4.2.2</h2>
<ul>
<li><code>url-helper.ts</code> now leverages well-known environment
variables by <a href="https://github.com/jww3"><code>@​jww3</code></a>
in <a
href="https://redirect.github.com/actions/checkout/pull/1941">actions/checkout#1941</a></li>
<li>Expand unit test coverage for <code>isGhes</code> by <a
href="https://github.com/jww3"><code>@​jww3</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1946">actions/checkout#1946</a></li>
</ul>
<h2>v4.2.1</h2>
<ul>
<li>Check out other refs/* by commit if provided, fall back to ref by <a
href="https://github.com/orhantoy"><code>@​orhantoy</code></a> in <a
href="https://redirect.github.com/actions/checkout/pull/1924">actions/checkout#1924</a></li>
</ul>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/actions/checkout/commit/9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0"><code>9c091bb</code></a>
update error wording (<a
href="https://redirect.github.com/actions/checkout/issues/2467">#2467</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/1044a6dea927916f2c38ba5aeffbc0a847b1221a"><code>1044a6d</code></a>
getting ready for checkout v7 release (<a
href="https://redirect.github.com/actions/checkout/issues/2464">#2464</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/f0282184c7ce73ab54c7e4ab5a617122602e575f"><code>f028218</code></a>
Bump the minor-npm-dependencies group across 1 directory with 3 updates
(<a
href="https://redirect.github.com/actions/checkout/issues/2462">#2462</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/d914b262ffc244530a203ab40decab34c3abf34d"><code>d914b26</code></a>
upgrade module to esm and update dependencies (<a
href="https://redirect.github.com/actions/checkout/issues/2463">#2463</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/537c7ef99cef6e5ddb5e7ff5d16d14510503801d"><code>537c7ef</code></a>
Bump <code>@​actions/core</code> and <code>@​actions/tool-cache</code>
and Remove uuid (<a
href="https://redirect.github.com/actions/checkout/issues/2459">#2459</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/130a169078a413d3a5246a393625e8e742f387f6"><code>130a169</code></a>
Bump js-yaml from 4.1.0 to 4.2.0 (<a
href="https://redirect.github.com/actions/checkout/issues/2461">#2461</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/7d09575332117a40b46e5e020664df234cd416f3"><code>7d09575</code></a>
Bump flatted from 3.3.1 to 3.4.2 (<a
href="https://redirect.github.com/actions/checkout/issues/2460">#2460</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/0f9f3aa320cb53abeb534aeb54048075d9697a0e"><code>0f9f3aa</code></a>
Bump actions/publish-immutable-action (<a
href="https://redirect.github.com/actions/checkout/issues/2458">#2458</a>)</li>
<li><a
href="https://github.com/actions/checkout/commit/f9e715a95fcd1f9253f77dd28f11e88d2d6460c7"><code>f9e715a</code></a>
block checking out fork pr for pull_request_target and workflow_run (<a
href="https://redirect.github.com/actions/checkout/issues/2454">#2454</a>)</li>
<li>See full diff in <a
href="https://github.com/actions/checkout/compare/df4cb1c069e1874edd31b4311f1884172cec0e10...9c091bb21b7c1c1d1991bb908d89e4e9dddfe3e0">compare
view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=actions/checkout&package-manager=github_actions&previous-version=6.0.3&new-version=7.0.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore <dependency name> major version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's major version (unless you unignore this specific
dependency's major version or upgrade to it yourself)
- `@dependabot ignore <dependency name> minor version` will close this
group update PR and stop Dependabot creating any more for the specific
dependency's minor version (unless you unignore this specific
dependency's minor version or upgrade to it yourself)
- `@dependabot ignore <dependency name>` will close this group update PR
and stop Dependabot creating any more for the specific dependency
(unless you unignore this specific dependency or upgrade to it yourself)
- `@dependabot unignore <dependency name>` will remove all of the ignore
conditions of the specified dependency
- `@dependabot unignore <dependency name> <ignore condition>` will
remove the ignore condition of the specified dependency and ignore
conditions


</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 09:12:26 +00:00
Alex Rudenko 38dd346805 docs: fix showing defaults in configuration (#2234)
closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/2233
2026-06-19 09:48:30 +00:00
Rayan Salhab 6225ffbaf1 fix: hide Windows update check consoles (#2231)
## Summary

Fixes #2230.

- Sets `windowsHide: true` on the detached update-check process so
Windows does not flash a console window.
- Also hides the `npm config get registry` subprocess used by the
updater helper.
- Covers the update-check spawn options in the existing tests.

## Verification

- `NODE_OPTIONS=--max-old-space-size=4096 npm run build`
- `npm run test:no-build -- tests/check-for-updates.test.ts`
- `NODE_OPTIONS=--max-old-space-size=4096 npx eslint
src/utils/check-for-updates.ts src/bin/check-latest-version.ts
tests/check-for-updates.test.ts`
- `npx prettier --check src/utils/check-for-updates.ts
src/bin/check-latest-version.ts tests/check-for-updates.test.ts`
- `git diff --check`

Note: plain `npm run build` and full-repo `npm run check-format` hit the
local Node heap limit in this runner; the same build passed with the
heap limit raised, and touched-file lint/format checks passed.

Co-authored-by: cyphercodes <cyphercodes@users.noreply.github.com>
2026-06-19 05:31:01 +00:00
nyxst4ck 5a9d6af743 fix(network): keep redirect chain order consistent between text and JSON (#2221)
## Problem

`get_network_request` returns, from the **same call**, both a
human-readable
text block (`toStringDetailed()`) and a
`structuredContent.networkRequest`
object (`toJSONDetailed()`) — emitted together in `McpResponse.ts`. For
a
request that went through HTTP redirects, the redirect chain comes out
in
**opposite orders** in the two representations:

- `toJSONDetailed()` (`NetworkFormatter.ts`) reverses `redirectChain()`
once →
  newest→oldest in the JSON.
- the text formatter then reverses it **a second time** → oldest→newest
in the
  text.

Because each path calls `redirectChain()` separately and Puppeteer
returns a
fresh copy on every call (`HTTPRequest#redirectChain()` does
`this._redirectChain.slice()`), the two reverses operate on different
arrays and
don't cancel. So a consumer reading the text and a consumer parsing the
structured JSON from the same response see contradictory redirect
orders.

## Solution

Drop the redundant `.reverse()` in the text formatter so the rendered
text uses
the order already produced by `toJSONDetailed()`. Both representations
are now
consistent (newest→oldest), and `structuredContent` is unchanged.

## Why the existing tests didn't catch it

- The existing "handles redirect chain" test uses a **single-element**
chain,
  where reversing is a no-op.
- `getMockRequest().redirectChain()` returned the **same array
reference** on
every call, unlike real Puppeteer — so the two reverses accidentally
agreed in
tests. This PR makes the mock return a fresh copy per call (matching
Puppeteer)
and adds a regression test with a multi-element chain that asserts the
text and
  JSON orders match.

## Testing

- `npm test` for the formatter suite passes. New test
`renders the redirect chain in the same order in text and JSON` is
**red**
before the fix (text `[first, second]` vs JSON `[second, first]`) and
**green**
  after, with no change to existing snapshots.
- `npm run typecheck` and Prettier/ESLint are clean.

No existing issue tracked this; found via code inspection and confirmed
empirically.
2026-06-18 17:18:14 +00:00
dependabot[bot] 789f5f8e53 chore(deps-dev): bump js-yaml from 4.1.1 to 4.2.0 (#2217)
Bumps [js-yaml](https://github.com/nodeca/js-yaml) from 4.1.1 to 4.2.0.
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/nodeca/js-yaml/blob/master/CHANGELOG.md">js-yaml's
changelog</a>.</em></p>
<blockquote>
<h2>[4.2.0] - 2026-06-01</h2>
<h3>Added</h3>
<ul>
<li>Added <code>docs/safety.md</code> with notes about processing
untrusted YAML.</li>
<li>Added <code>maxDepth</code> (100) loader option. Not a problem, but
gives a better
exception instead of RangeError on stack overflow.</li>
<li>Added <code>maxMergeSeqLength</code> (20) loader option. Not a
problem after <code>merge</code> fix,
but an additional restriction for safety.</li>
<li>Added sourcemaps to <code>dist/</code> builds.</li>
</ul>
<h3>Changed</h3>
<ul>
<li>Stop resolving numbers with underscores as numeric scalars, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/627">#627</a>.</li>
<li>Switched dev toolchains to Vite / neostandard.</li>
<li>Updated demo.</li>
<li>Reorganized tests.</li>
<li><code>dist/</code> files are no longer kept in the repository.</li>
</ul>
<h3>Fixed</h3>
<ul>
<li>Fix parsing of properties on the first implicit block mapping key,
<a
href="https://redirect.github.com/nodeca/js-yaml/issues/62">#62</a>.</li>
<li>Fix trailing whitespace handling when folding flow scalar lines, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/307">#307</a>.</li>
<li>Reject top-level block scalars without content indentation, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/280">#280</a>.</li>
<li>Ensure numbers survive round-trip, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/737">#737</a>.</li>
<li>Fix test coverage for issue <a
href="https://redirect.github.com/nodeca/js-yaml/issues/221">#221</a>.</li>
<li>Fix flow scalar trailing whitespace folding, <a
href="https://redirect.github.com/nodeca/js-yaml/issues/307">#307</a>.</li>
<li>Fix digits in YAML named tag handles.</li>
</ul>
<h3>Security</h3>
<ul>
<li>Fix potential DoS via quadratic complexity in merge - deduplicate
repeated
elements (makes sense for malformed files &gt; 10K).</li>
</ul>
<h2>[3.14.2] - 2025-11-15</h2>
<h3>Security</h3>
<ul>
<li>Backported v4.1.1 fix to v3</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/nodeca/js-yaml/commits">compare view</a></li>
</ul>
</details>
<br />


[![Dependabot compatibility
score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name=js-yaml&package-manager=npm_and_yarn&previous-version=4.1.1&new-version=4.2.0)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)

Dependabot will resolve any conflicts with this PR as long as you don't
alter it yourself. You can also trigger a rebase manually by commenting
`@dependabot rebase`.

[//]: # (dependabot-automerge-start)
[//]: # (dependabot-automerge-end)

---

<details>
<summary>Dependabot commands and options</summary>
<br />

You can trigger Dependabot actions by commenting on this PR:
- `@dependabot rebase` will rebase this PR
- `@dependabot recreate` will recreate this PR, overwriting any edits
that have been made to it
- `@dependabot show <dependency name> ignore conditions` will show all
of the ignore conditions of the specified dependency
- `@dependabot ignore this major version` will close this PR and stop
Dependabot creating any more for this major version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this minor version` will close this PR and stop
Dependabot creating any more for this minor version (unless you reopen
the PR or upgrade to it yourself)
- `@dependabot ignore this dependency` will close this PR and stop
Dependabot creating any more for this dependency (unless you reopen the
PR or upgrade to it yourself)
You can disable automated security fix PRs for this repo from the
[Security Alerts
page](https://github.com/ChromeDevTools/chrome-devtools-mcp/network/alerts).

</details>

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Roscino <nroscino@google.com>
2026-06-18 16:41:41 +00:00
dependabot[bot] ef8f378782 chore(deps-dev): bump the dev-dependencies group across 1 directory with 7 updates (#2219)
Bumps the dev-dependencies group with 7 updates in the / directory:

| Package | From | To |
| --- | --- | --- |
|
[@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node)
| `25.9.2` | `25.9.3` |
|
[@typescript-eslint/eslint-plugin](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/eslint-plugin)
| `8.61.0` | `8.61.1` |
|
[@typescript-eslint/parser](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/parser)
| `8.61.0` | `8.61.1` |
| [lighthouse](https://github.com/GoogleChrome/lighthouse) | `13.3.0` |
`13.4.0` |
| [rollup](https://github.com/rollup/rollup) | `4.61.1` | `4.62.0` |
| [semver](https://github.com/npm/node-semver) | `7.8.3` | `7.8.4` |
|
[typescript-eslint](https://github.com/typescript-eslint/typescript-eslint/tree/HEAD/packages/typescript-eslint)
| `8.61.0` | `8.61.1` |


Updates `@types/node` from 25.9.2 to 25.9.3
<details>
<summary>Commits</summary>
<ul>
<li>See full diff in <a
href="https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node">compare
view</a></li>
</ul>
</details>
<br />

Updates `@typescript-eslint/eslint-plugin` from 8.61.0 to 8.61.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases">@​typescript-eslint/eslint-plugin's
releases</a>.</em></p>
<blockquote>
<h2>v8.61.1</h2>
<h2>8.61.1 (2026-06-15)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [consistent-indexed-object-style] do
not remove comments when fixing (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12396">#12396</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/10577">#10577</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
avoid false positive for template literal expressions (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12281">#12281</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] wrap
object literal in parens when removing TSTypeAssertion in arrow body (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12394">#12394</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12393">#12393</a>)</li>
<li><strong>eslint-plugin:</strong>
[no-unnecessary-boolean-literal-compare] fix precedence bug in autofix
(<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12413">#12413</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-template-expression]
respect ECMAScript line terminators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12388">#12388</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Anas <a
href="https://github.com/anasm266"><code>@​anasm266</code></a></li>
<li>Deftera <a
href="https://github.com/Deftera186"><code>@​Deftera186</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
<li>lumir</li>
<li>Sarath Francis <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/eslint-plugin/CHANGELOG.md">@​typescript-eslint/eslint-plugin's
changelog</a>.</em></p>
<blockquote>
<h2>8.61.1 (2026-06-15)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [no-unnecessary-template-expression]
respect ECMAScript line terminators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12388">#12388</a>)</li>
<li><strong>eslint-plugin:</strong>
[no-unnecessary-boolean-literal-compare] fix precedence bug in autofix
(<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12413">#12413</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] wrap
object literal in parens when removing TSTypeAssertion in arrow body (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12394">#12394</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12393">#12393</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
avoid false positive for template literal expressions (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12281">#12281</a>)</li>
<li><strong>eslint-plugin:</strong> [consistent-indexed-object-style] do
not remove comments when fixing (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12396">#12396</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/10577">#10577</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Anas <a
href="https://github.com/anasm266"><code>@​anasm266</code></a></li>
<li>Deftera <a
href="https://github.com/Deftera186"><code>@​Deftera186</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
<li>lumir</li>
<li>Sarath Francis <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/aaad7187b529c4b6ff8088ffd7e948c69c2763b6"><code>aaad718</code></a>
chore(release): publish 8.61.1</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/0cc8f3559591221400bed1e8bf8debce5edca4c4"><code>0cc8f35</code></a>
fix(eslint-plugin): [no-unnecessary-template-expression] respect
ECMAScript l...</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/6f269e21e3d65388886ee17c5e568d4c7e55bb24"><code>6f269e2</code></a>
fix(eslint-plugin): [no-unnecessary-boolean-literal-compare] fix
precedence b...</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/1b5d5430831e0baacca248027bf840260d4e597b"><code>1b5d543</code></a>
fix(eslint-plugin): [no-unnecessary-type-assertion] wrap object literal
in pa...</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/565e6668b2c69b02a74d8ca27c41633f20f4a699"><code>565e666</code></a>
fix(eslint-plugin): [no-unnecessary-type-assertion] avoid false positive
for ...</li>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/204eabc2949c59802b4d7057d9e16874fa19db6f"><code>204eabc</code></a>
fix(eslint-plugin): [consistent-indexed-object-style] do not remove
comments ...</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.61.1/packages/eslint-plugin">compare
view</a></li>
</ul>
</details>
<br />

Updates `@typescript-eslint/parser` from 8.61.0 to 8.61.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases">@​typescript-eslint/parser's
releases</a>.</em></p>
<blockquote>
<h2>v8.61.1</h2>
<h2>8.61.1 (2026-06-15)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [consistent-indexed-object-style] do
not remove comments when fixing (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12396">#12396</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/10577">#10577</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
avoid false positive for template literal expressions (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12281">#12281</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] wrap
object literal in parens when removing TSTypeAssertion in arrow body (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12394">#12394</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12393">#12393</a>)</li>
<li><strong>eslint-plugin:</strong>
[no-unnecessary-boolean-literal-compare] fix precedence bug in autofix
(<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12413">#12413</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-template-expression]
respect ECMAScript line terminators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12388">#12388</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Anas <a
href="https://github.com/anasm266"><code>@​anasm266</code></a></li>
<li>Deftera <a
href="https://github.com/Deftera186"><code>@​Deftera186</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
<li>lumir</li>
<li>Sarath Francis <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/parser/CHANGELOG.md">@​typescript-eslint/parser's
changelog</a>.</em></p>
<blockquote>
<h2>8.61.1 (2026-06-15)</h2>
<p>This was a version bump only for parser to align it with other
projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/aaad7187b529c4b6ff8088ffd7e948c69c2763b6"><code>aaad718</code></a>
chore(release): publish 8.61.1</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.61.1/packages/parser">compare
view</a></li>
</ul>
</details>
<br />

Updates `lighthouse` from 13.3.0 to 13.4.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/GoogleChrome/lighthouse/releases">lighthouse's
releases</a>.</em></p>
<blockquote>
<h2>v13.4.0</h2>
<p><a
href="https://github.com/GoogleChrome/lighthouse/compare/v13.3.0...v13.4.0">Full
Changelog</a></p>
<p>We expect this release to ship in the DevTools of <a
href="https://chromiumdash.appspot.com/schedule">Chrome 151</a>, and to
PageSpeed Insights within 2 weeks.</p>
<h2>New contributors</h2>
<p>Thanks to our new contributors 👽🐷🐰🐯🐻!</p>
<ul>
<li>Thomas Steiner <a
href="https://github.com/tomayac"><code>@​tomayac</code></a></li>
<li>KS Nithin <a
href="https://github.com/Nithin0620"><code>@​Nithin0620</code></a></li>
<li>Emanuele <a
href="https://github.com/emazack"><code>@​emazack</code></a></li>
<li>Kirtikumar Anandrao Ramchandani <a
href="https://github.com/KirtiRamchandani"><code>@​KirtiRamchandani</code></a></li>
<li>Rin <a
href="https://github.com/RinZ27"><code>@​RinZ27</code></a></li>
<li>Michael Hablich <a
href="https://github.com/natorion"><code>@​natorion</code></a></li>
</ul>
<h2>Core</h2>
<ul>
<li>canonical: improve validation for invalid URLs (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/16765">#16765</a>)</li>
<li>llms-txt: allow leading whitespace for header check (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17057">#17057</a>)</li>
<li>geolocation-on-start: mention <code>geolocation</code> element (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/16835">#16835</a>)</li>
<li>add public Lighthouse types entrypoint (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17028">#17028</a>)</li>
<li>match scripts to network requests using frameId (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/16774">#16774</a>)</li>
<li>config: import LH types (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17048">#17048</a>)</li>
<li>driver: add ExecutionContext.evaluateOnObject (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17050">#17050</a>)</li>
<li>driver: check if usage data exists before using (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17033">#17033</a>)</li>
</ul>
<h2>Report</h2>
<ul>
<li>fix performance gauge label, improve load animation (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17045">#17045</a>)</li>
<li>decouple link creation from link details rendering (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17049">#17049</a>)</li>
<li>viewer: persist dark mode when when changing langauge (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17063">#17063</a>)</li>
</ul>
<h2>Deps</h2>
<ul>
<li>upgrade deps (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17070">#17070</a>)</li>
<li>upgrade typescript to 6.0.3 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17060">#17060</a>)</li>
<li>upgrade terser to 5.48.0 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17059">#17059</a>)</li>
<li>upgrade esbuild to 0.28.0 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17058">#17058</a>)</li>
<li>upgrade trace_engine to 0.0.65 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17046">#17046</a>)</li>
<li>upgrade puppeteer to 25.0.2 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17019">#17019</a>)</li>
</ul>
<h2>Clients</h2>
<ul>
<li>viewer: prevent toast showing on load (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17069">#17069</a>)</li>
<li>viewer: clear github auth token on 401 error (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17064">#17064</a>)</li>
<li>viewer: disable agentic-browsing in PSI api call (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17041">#17041</a>)</li>
</ul>
<h2>I18n</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/GoogleChrome/lighthouse/blob/main/changelog.md">lighthouse's
changelog</a>.</em></p>
<blockquote>
<h1>13.4.0 (2026-06-09)</h1>
<p><a
href="https://github.com/GoogleChrome/lighthouse/compare/v13.3.0...v13.4.0">Full
Changelog</a></p>
<p>We expect this release to ship in the DevTools of <a
href="https://chromiumdash.appspot.com/schedule">Chrome 151</a>, and to
PageSpeed Insights within 2 weeks.</p>
<h2>New contributors</h2>
<p>Thanks to our new contributors 👽🐷🐰🐯🐻!</p>
<ul>
<li>Thomas Steiner <a
href="https://github.com/tomayac"><code>@​tomayac</code></a></li>
<li>KS Nithin <a
href="https://github.com/Nithin0620"><code>@​Nithin0620</code></a></li>
<li>Emanuele <a
href="https://github.com/emazack"><code>@​emazack</code></a></li>
<li>Kirtikumar Anandrao Ramchandani <a
href="https://github.com/KirtiRamchandani"><code>@​KirtiRamchandani</code></a></li>
<li>Rin <a
href="https://github.com/RinZ27"><code>@​RinZ27</code></a></li>
<li>Michael Hablich <a
href="https://github.com/natorion"><code>@​natorion</code></a></li>
</ul>
<h2>Core</h2>
<ul>
<li>canonical: improve validation for invalid URLs (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/16765">#16765</a>)</li>
<li>llms-txt: allow leading whitespace for header check (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17057">#17057</a>)</li>
<li>geolocation-on-start: mention <code>geolocation</code> element (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/16835">#16835</a>)</li>
<li>add public Lighthouse types entrypoint (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17028">#17028</a>)</li>
<li>match scripts to network requests using frameId (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/16774">#16774</a>)</li>
<li>config: import LH types (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17048">#17048</a>)</li>
<li>driver: add ExecutionContext.evaluateOnObject (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17050">#17050</a>)</li>
<li>driver: check if usage data exists before using (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17033">#17033</a>)</li>
</ul>
<h2>Report</h2>
<ul>
<li>fix performance gauge label, improve load animation (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17045">#17045</a>)</li>
<li>decouple link creation from link details rendering (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17049">#17049</a>)</li>
<li>viewer: persist dark mode when when changing langauge (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17063">#17063</a>)</li>
</ul>
<h2>Deps</h2>
<ul>
<li>upgrade deps (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17070">#17070</a>)</li>
<li>upgrade typescript to 6.0.3 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17060">#17060</a>)</li>
<li>upgrade terser to 5.48.0 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17059">#17059</a>)</li>
<li>upgrade esbuild to 0.28.0 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17058">#17058</a>)</li>
<li>upgrade trace_engine to 0.0.65 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17046">#17046</a>)</li>
<li>upgrade puppeteer to 25.0.2 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17019">#17019</a>)</li>
</ul>
<h2>Clients</h2>
<ul>
<li>viewer: prevent toast showing on load (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17069">#17069</a>)</li>
<li>viewer: clear github auth token on 401 error (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17064">#17064</a>)</li>
<li>viewer: disable agentic-browsing in PSI api call (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/pull/17041">#17041</a>)</li>
</ul>
<h2>I18n</h2>
<!-- raw HTML omitted -->
</blockquote>
<p>... (truncated)</p>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/cb79bea56c4668fd7a338f2f421f87754ee927a2"><code>cb79bea</code></a>
v13.4.0 (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/17073">#17073</a>)</li>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/c0ac986843022ab015a0d6e7dbe8a69166ca7358"><code>c0ac986</code></a>
i18n: import (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/17071">#17071</a>)</li>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/6894326a9ae5764e92d074a1748603b56f9668fd"><code>6894326</code></a>
tests: exclude origin-isolation-coop-present smoke test (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/17072">#17072</a>)</li>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/6c9c6ae9a3525be2f86932ea8e764a6affe5fba1"><code>6c9c6ae</code></a>
deps: upgrade deps (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/17070">#17070</a>)</li>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/2a5241417d3e35ecb323a2388637b06ba27dc619"><code>2a52414</code></a>
clients(viewer): prevent toast showing on load (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/17069">#17069</a>)</li>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/3a52f712b8b43ad40a4f7ded5c538ae7e112eb20"><code>3a52f71</code></a>
core: match scripts to network requests using frameId (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/16774">#16774</a>)</li>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/85c711da09022748ec991ccfb6e019a0f50d7d7f"><code>85c711d</code></a>
core(geolocation-on-start): mention <code>geolocation</code> element (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/16835">#16835</a>)</li>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/5bbddf0beab37f2bb75bb185d7ed293afac541fc"><code>5bbddf0</code></a>
core(llms-txt): allow leading whitespace for header check (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/17057">#17057</a>)</li>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/eb3d98ad56d93f271d3a674d20433d83b429c448"><code>eb3d98a</code></a>
clients(viewer): clear github auth token on 401 error (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/17064">#17064</a>)</li>
<li><a
href="https://github.com/GoogleChrome/lighthouse/commit/19b38e536e49195f393775d9b6145839465eab1c"><code>19b38e5</code></a>
report(viewer): persist dark mode when when changing langauge (<a
href="https://redirect.github.com/GoogleChrome/lighthouse/issues/17063">#17063</a>)</li>
<li>Additional commits viewable in <a
href="https://github.com/GoogleChrome/lighthouse/compare/v13.3.0...v13.4.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `rollup` from 4.61.1 to 4.62.0
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/rollup/rollup/releases">rollup's
releases</a>.</em></p>
<blockquote>
<h2>v4.62.0</h2>
<h2>4.62.0</h2>
<p><em>2026-06-13</em></p>
<h3>Features</h3>
<ul>
<li>Ensure that shared dependencies between manual chunks and entry
points receive a serparate chunk (<a
href="https://redirect.github.com/rollup/rollup/issues/6374">#6374</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6374">#6374</a>:
Extract the static dependencies imported by manual chunks into separate
chunks (<a
href="https://github.com/TrickyPi"><code>@​TrickyPi</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6405">#6405</a>:
fix(deps): update minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6406">#6406</a>:
chore(deps): pin dependency concurrently to v9 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6407">#6407</a>:
chore(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6409">#6409</a>:
chore(deps): update minor/patch updates to v6.2.0 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6410">#6410</a>:
chore(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6412">#6412</a>:
fix(deps): update minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6413">#6413</a>:
chore(deps): update dependency eslint-plugin-unicorn to v65 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6414">#6414</a>:
chore(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/rollup/rollup/blob/master/CHANGELOG.md">rollup's
changelog</a>.</em></p>
<blockquote>
<h2>4.62.0</h2>
<p><em>2026-06-13</em></p>
<h3>Features</h3>
<ul>
<li>Ensure that shared dependencies between manual chunks and entry
points receive a serparate chunk (<a
href="https://redirect.github.com/rollup/rollup/issues/6374">#6374</a>)</li>
</ul>
<h3>Pull Requests</h3>
<ul>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6374">#6374</a>:
Extract the static dependencies imported by manual chunks into separate
chunks (<a
href="https://github.com/TrickyPi"><code>@​TrickyPi</code></a>, <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6405">#6405</a>:
fix(deps): update minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6406">#6406</a>:
chore(deps): pin dependency concurrently to v9 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6407">#6407</a>:
chore(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6409">#6409</a>:
chore(deps): update minor/patch updates to v6.2.0 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6410">#6410</a>:
chore(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6412">#6412</a>:
fix(deps): update minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6413">#6413</a>:
chore(deps): update dependency eslint-plugin-unicorn to v65 (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot])</li>
<li><a
href="https://redirect.github.com/rollup/rollup/pull/6414">#6414</a>:
chore(deps): lock file maintenance minor/patch updates (<a
href="https://github.com/renovate"><code>@​renovate</code></a>[bot], <a
href="https://github.com/lukastaegert"><code>@​lukastaegert</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/rollup/rollup/commit/5e0066d92defee0097f10fb814e63f60b2a7b612"><code>5e0066d</code></a>
4.62.0</li>
<li><a
href="https://github.com/rollup/rollup/commit/93e85fc0919634aa8ba84bbd8799d1b423b0b985"><code>93e85fc</code></a>
chore(deps): update dependency eslint-plugin-unicorn to v65 (<a
href="https://redirect.github.com/rollup/rollup/issues/6413">#6413</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/5c9ef2e6874fa6f77fcf0c2948bd3b1089e02ca4"><code>5c9ef2e</code></a>
fix(deps): update minor/patch updates (<a
href="https://redirect.github.com/rollup/rollup/issues/6412">#6412</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/18654d8fb4d5fd67008018cc47c2ad0810413325"><code>18654d8</code></a>
chore(deps): lock file maintenance minor/patch updates (<a
href="https://redirect.github.com/rollup/rollup/issues/6414">#6414</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/d96ed9562b3ce2dee262eb130a752de93c9fe961"><code>d96ed95</code></a>
Extract the static dependencies imported by manual chunks into separate
chunk...</li>
<li><a
href="https://github.com/rollup/rollup/commit/126e14197838b806b0c1244ad0ef6fc0447b730a"><code>126e141</code></a>
chore(deps): pin dependency concurrently to v9 (<a
href="https://redirect.github.com/rollup/rollup/issues/6406">#6406</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/f2f58c4afe4b5879063612791f12c312c6ac56f5"><code>f2f58c4</code></a>
chore(deps): lock file maintenance minor/patch updates (<a
href="https://redirect.github.com/rollup/rollup/issues/6410">#6410</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/5a15062948f931a909e56bcefea205f4c4e53d3d"><code>5a15062</code></a>
chore(deps): update minor/patch updates to v6.2.0 (<a
href="https://redirect.github.com/rollup/rollup/issues/6409">#6409</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/d02f03a397dee8930137c9d01b0d3981abb2a6bb"><code>d02f03a</code></a>
chore(deps): lock file maintenance minor/patch updates (<a
href="https://redirect.github.com/rollup/rollup/issues/6407">#6407</a>)</li>
<li><a
href="https://github.com/rollup/rollup/commit/844671cda6732cf2e45cfc3eabc9790ff03fbcd4"><code>844671c</code></a>
fix(deps): update minor/patch updates (<a
href="https://redirect.github.com/rollup/rollup/issues/6405">#6405</a>)</li>
<li>See full diff in <a
href="https://github.com/rollup/rollup/compare/v4.61.1...v4.62.0">compare
view</a></li>
</ul>
</details>
<br />

Updates `semver` from 7.8.3 to 7.8.4
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/npm/node-semver/releases">semver's
releases</a>.</em></p>
<blockquote>
<h2>v7.8.4</h2>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.8.3...v7.8.4">7.8.4</a>
(2026-06-09)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/e583226b165edd6530502cf731eda334527af6fe"><code>e583226</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/874">#874</a>
reject numeric segments after x-ranges (<a
href="https://github.com/pupuking723"><code>@​pupuking723</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/npm/node-semver/blob/main/CHANGELOG.md">semver's
changelog</a>.</em></p>
<blockquote>
<h2><a
href="https://github.com/npm/node-semver/compare/v7.8.3...v7.8.4">7.8.4</a>
(2026-06-09)</h2>
<h3>Bug Fixes</h3>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/e583226b165edd6530502cf731eda334527af6fe"><code>e583226</code></a>
<a href="https://redirect.github.com/npm/node-semver/pull/874">#874</a>
reject numeric segments after x-ranges (<a
href="https://github.com/pupuking723"><code>@​pupuking723</code></a>)</li>
</ul>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/npm/node-semver/commit/8640bd68f1653e504b53e9be4030eccdfe4c307a"><code>8640bd6</code></a>
chore: release 7.8.4 (<a
href="https://redirect.github.com/npm/node-semver/issues/875">#875</a>)</li>
<li><a
href="https://github.com/npm/node-semver/commit/e583226b165edd6530502cf731eda334527af6fe"><code>e583226</code></a>
fix: reject numeric segments after x-ranges</li>
<li>See full diff in <a
href="https://github.com/npm/node-semver/compare/v7.8.3...v7.8.4">compare
view</a></li>
</ul>
</details>
<br />

Updates `typescript-eslint` from 8.61.0 to 8.61.1
<details>
<summary>Release notes</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/releases">typescript-eslint's
releases</a>.</em></p>
<blockquote>
<h2>v8.61.1</h2>
<h2>8.61.1 (2026-06-15)</h2>
<h3>🩹 Fixes</h3>
<ul>
<li><strong>eslint-plugin:</strong> [consistent-indexed-object-style] do
not remove comments when fixing (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12396">#12396</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/10577">#10577</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion]
avoid false positive for template literal expressions (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12281">#12281</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-type-assertion] wrap
object literal in parens when removing TSTypeAssertion in arrow body (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12394">#12394</a>,
<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/issues/12393">#12393</a>)</li>
<li><strong>eslint-plugin:</strong>
[no-unnecessary-boolean-literal-compare] fix precedence bug in autofix
(<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12413">#12413</a>)</li>
<li><strong>eslint-plugin:</strong> [no-unnecessary-template-expression]
respect ECMAScript line terminators (<a
href="https://redirect.github.com/typescript-eslint/typescript-eslint/pull/12388">#12388</a>)</li>
</ul>
<h3>❤️ Thank You</h3>
<ul>
<li>Anas <a
href="https://github.com/anasm266"><code>@​anasm266</code></a></li>
<li>Deftera <a
href="https://github.com/Deftera186"><code>@​Deftera186</code></a></li>
<li>Kirk Waiblinger <a
href="https://github.com/kirkwaiblinger"><code>@​kirkwaiblinger</code></a></li>
<li>lumir</li>
<li>Sarath Francis <a
href="https://github.com/sarathfrancis90"><code>@​sarathfrancis90</code></a></li>
</ul>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Changelog</summary>
<p><em>Sourced from <a
href="https://github.com/typescript-eslint/typescript-eslint/blob/main/packages/typescript-eslint/CHANGELOG.md">typescript-eslint's
changelog</a>.</em></p>
<blockquote>
<h2>8.61.1 (2026-06-15)</h2>
<p>This was a version bump only for typescript-eslint to align it with
other projects, there were no code changes.</p>
<p>See <a
href="https://github.com/typescript-eslint/typescript-eslint/releases/tag/v8.61.1">GitHub
Releases</a> for more information.</p>
<p>You can read about our <a
href="https://typescript-eslint.io/users/versioning">versioning
strategy</a> and <a
href="https://typescript-eslint.io/users/releases">releases</a> on our
website.</p>
</blockquote>
</details>
<details>
<summary>Commits</summary>
<ul>
<li><a
href="https://github.com/typescript-eslint/typescript-eslint/commit/aaad7187b529c4b6ff8088ffd7e948c69c2763b6"><code>aaad718</code></a>
chore(release): publish 8.61.1</li>
<li>See full diff in <a
href="https://github.com/typescript-eslint/typescript-eslint/commits/v8.61.1/packages/typescript-eslint">compare
view</a></li>
</ul>
</details>
<br />

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Nicholas Roscino <nroscino@google.com>
2026-06-18 16:38:53 +00:00