orkon/debug-in-devtools
991 次代码提交
| 作者 | SHA1 | 备注 | 提交日期 | |
|---|---|---|---|---|
|
|
9628dabcb4 |
refactor: clean up more of the context getters (#1062)
- moves more code to the McpPage - deleted Context specific tests |
||
|
|
4cb5a17b57 |
refactor: remove page passing via context (#1061)
- removes several redundant getters on the context. - removes passing page instances via context. |
||
|
|
d6c06c56a7 |
refactor: make cdp resolvers use McpPage (#1060)
Makes cdp resolvers scoped to the page. Once collectors are per McpPage, the entire method could be moved to McpPage. |
||
|
|
40c241bbfc |
refactor: move dialog handling to McpPage (#1059)
- renamed getSelectedPage to getSelectedPptrPage - removes getSelectedPptrPage from tool interfaces - moves dialog handling to McpPage - makes responses to be optionally McpPage-scoped |
||
|
|
302e5a0419 |
refactor: consistently use McpPage in tools (#1057)
Follow-up to https://github.com/ChromeDevTools/chrome-devtools-mcp/commit/caf601a32832bb87cfac801a6bbeacb87508412f The work is not complete and as a follow-up I will handle other Context methods and moved whatever is relevant to the McpPage. Also, duplicate getters would go away. |
||
|
|
21634e660c |
docs: Adapt a11y skill to utilize Lighthouse (#1054)
- **feat: Add Lighthouse audit as the initial step in the accessibility debugging workflow and reorder subsequent sections.** - **feat: Add critical instructions for parsing Lighthouse audit reports to efficiently extract failing elements.** |
||
|
|
13a18e2380 |
chore: implement daemon client (#1037)
The client is meant to start the daemon if it is not running or connect to the existing one. Long-running client connections are not needed yet. Removed previous direct daemon test as we better test it via the client, the intended way to manage the daemon. |
||
|
|
5f694c60ff |
refactor: improve type safety for page scoped tools (#1051)
I think we should create proper classes for tool definitions soon. Follow-up for https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/1022 |
||
|
|
ef4b11d6f3 | chore: update pre-release workflow name (#1050) | ||
|
|
dfdac2648e |
feat: integrate Lighthouse audits (#831)
This PR adds tool to perform navigation and snapshot audits using Lighthouse for Accessibility, SEO and Best practices. For performance audits existing tools can be used. Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/473 |
||
|
|
caf601a328 |
feat: add pageId routing for parallel multi-agent workflows (#1022)
## Summary
Adds optional `pageId` routing to page-scoped tools, gated behind
`--experimental-page-id-routing`. When enabled, multi-agent callers can
target a specific page without relying on global selection state. Fully
backward-compatible: without the flag, behavior is unchanged.
### Key changes
- **`pageScoped` annotation**: tools declare `pageScoped: true`; the
server merges `pageId` into their schema at registration time (when the
flag is on)
- **`McpPage` wrapper**: consolidates per-page state (numeric id,
isolated context name, focus tracking) into a single class
- **Request-scoped page routing**: `resolvePageById()` resolves the
target page, `setRequestPage()` threads it through the handler so tools
like `getSelectedPage()` see the right page
- **`assertPageIsFocused`**: keyboard/input tools validate that the
target page holds browser focus, returning an actionable error ("call
select_page first") instead of silently dispatching to the wrong page
- **`--experimental-page-id-routing` CLI flag** (hidden): gates schema
injection and request-scoped routing so the feature can be tested before
graduating
- **Eval scenarios**: `page_id_routing_test` and
`page_focus_keyboard_test` with `serverArgs` support in the eval harness
Addresses #1019
|
||
|
|
e4db2501f3 |
chore(deps): bump hono from 4.12.0 to 4.12.2 (#1044)
Bumps [hono](https://github.com/honojs/hono) from 4.12.0 to 4.12.2. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/honojs/hono/releases">hono's releases</a>.</em></p> <blockquote> <h2>v4.12.2</h2> <h2>Security fix</h2> <p>Fixed incorrect handling of <code>X-Forwarded-For</code> in the AWS Lambda adapter behind ALB that could allow IP-based access control bypass. The detail: <a href="https://github.com/honojs/hono/security/advisories/GHSA-xh87-mx6m-69f3">https://github.com/honojs/hono/security/advisories/GHSA-xh87-mx6m-69f3</a></p> <p>Thanks <a href="https://github.com/EdamAme-x"><code>@EdamAme-x</code></a></p> <h2>What's Changed</h2> <ul> <li>fix(context): revert PR <a href="https://redirect.github.com/honojs/hono/issues/4707">#4707</a> by <a href="https://github.com/yusukebe"><code>@yusukebe</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/4757">honojs/hono#4757</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/honojs/hono/compare/v4.12.1...v4.12.2">https://github.com/honojs/hono/compare/v4.12.1...v4.12.2</a></p> <h2>v4.12.1</h2> <h2>What's Changed</h2> <ul> <li>fix(client): export <code>ApplyGlobalResponse</code> from <code>hono/client</code> by <a href="https://github.com/sushichan044"><code>@sushichan044</code></a> in <a href="https://redirect.github.com/honojs/hono/pull/4743">honojs/hono#4743</a></li> </ul> <p><strong>Full Changelog</strong>: <a href="https://github.com/honojs/hono/compare/v4.12.0...v4.12.1">https://github.com/honojs/hono/compare/v4.12.0...v4.12.1</a></p> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/honojs/hono/commit/df97e5f49771a2a219770515859b9cc1d80abab0"><code>df97e5f</code></a> 4.12.2</li> <li><a href="https://github.com/honojs/hono/commit/212c64f2c262c60585e4d80d547fb154fd8b9a16"><code>212c64f</code></a> fix(context): revert PR <a href="https://redirect.github.com/honojs/hono/issues/4707">#4707</a> (<a href="https://redirect.github.com/honojs/hono/issues/4757">#4757</a>)</li> <li><a href="https://github.com/honojs/hono/commit/5cc8f8f79eb600a1d98be117c2c7c2de3e0d400e"><code>5cc8f8f</code></a> ci: apply automated fixes</li> <li><a href="https://github.com/honojs/hono/commit/41adbf56e252c04611f8972364ac0887ae07a4c7"><code>41adbf5</code></a> Merge commit from fork</li> <li><a href="https://github.com/honojs/hono/commit/2de30d7c2a25885c5df03c454582c305a34da771"><code>2de30d7</code></a> 4.12.1</li> <li><a href="https://github.com/honojs/hono/commit/91ef235f9fd34266dbb473a4c43d999465be3c87"><code>91ef235</code></a> fix(client): export <code>ApplyGlobalResponse</code> from <code>hono/client</code> (<a href="https://redirect.github.com/honojs/hono/issues/4743">#4743</a>)</li> <li>See full diff in <a href="https://github.com/honojs/hono/compare/v4.12.0...v4.12.2">compare view</a></li> </ul> </details> <br /> [](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> |
||
|
|
9001984761 |
chore(deps-dev): bump rollup from 4.58.0 to 4.59.0 (#1047)
Bumps [rollup](https://github.com/rollup/rollup) from 4.58.0 to 4.59.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.59.0</h2> <h2>4.59.0</h2> <p><em>2026-02-22</em></p> <h3>Features</h3> <ul> <li>Throw when the generated bundle contains paths that would leave the output directory (<a href="https://redirect.github.com/rollup/rollup/issues/6276">#6276</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/6275">#6275</a>: Validate bundle stays within output dir (<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.59.0</h2> <p><em>2026-02-22</em></p> <h3>Features</h3> <ul> <li>Throw when the generated bundle contains paths that would leave the output directory (<a href="https://redirect.github.com/rollup/rollup/issues/6276">#6276</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/6275">#6275</a>: Validate bundle stays within output dir (<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/ae846957f109690a866cc3e4c073613c338d3476"><code>ae84695</code></a> 4.59.0</li> <li><a href="https://github.com/rollup/rollup/commit/b39616e9175b3d9fc3977c99153174c490805a93"><code>b39616e</code></a> Update audit-resolve</li> <li><a href="https://github.com/rollup/rollup/commit/c60770d7aaf750e512c1b2774989ea4596e660b2"><code>c60770d</code></a> Validate bundle stays within output dir (<a href="https://redirect.github.com/rollup/rollup/issues/6275">#6275</a>)</li> <li>See full diff in <a href="https://github.com/rollup/rollup/compare/v4.58.0...v4.59.0">compare view</a></li> </ul> </details> <br /> [](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> |
||
|
|
a8bf3e5856 |
refactor: move server to a separate file (#1043)
Refs https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1038 by importing server.ts and calling calling `createMcpServer` the server can be instantiated without a transport. |
||
|
|
9ddb7daba8 |
chore(deps-dev): bump basic-ftp from 5.1.0 to 5.2.0 (#1045)
Bumps [basic-ftp](https://github.com/patrickjuchli/basic-ftp) from 5.1.0 to 5.2.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/patrickjuchli/basic-ftp/releases">basic-ftp's releases</a>.</em></p> <blockquote> <h2>5.2.0</h2> <ul> <li>Changed: Skip files with invalid name in downloadToDir.</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/patrickjuchli/basic-ftp/blob/master/CHANGELOG.md">basic-ftp's changelog</a>.</em></p> <blockquote> <h2>5.2.0</h2> <ul> <li>Changed: Skip files with invalid name in downloadToDir.</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/patrickjuchli/basic-ftp/commit/5d41e45073ed1a8a3b5e5a1bbfcd131e61295bf8"><code>5d41e45</code></a> Bump version</li> <li><a href="https://github.com/patrickjuchli/basic-ftp/commit/49c2e73ed1cae4962ae38b33ab93a3548c2f5622"><code>49c2e73</code></a> Update dependencies</li> <li><a href="https://github.com/patrickjuchli/basic-ftp/commit/2a2a0e6514357b9eda07c2f8afbd3f04727a7cd9"><code>2a2a0e6</code></a> Skip invalid filenames</li> <li><a href="https://github.com/patrickjuchli/basic-ftp/commit/65c90d949c0f8a9709759dff9e76bbe07061812b"><code>65c90d9</code></a> Fix permissions for workflows</li> <li><a href="https://github.com/patrickjuchli/basic-ftp/commit/593cb7831bec60d5590acc3eeb2e553f4a431167"><code>593cb78</code></a> Set permissions for workflow jobs</li> <li><a href="https://github.com/patrickjuchli/basic-ftp/commit/36adf110beabc9acdcad122149a2ea795a2b1a6c"><code>36adf11</code></a> Remove deprecated CodeQL check</li> <li>See full diff in <a href="https://github.com/patrickjuchli/basic-ftp/compare/v5.1.0...v5.2.0">compare view</a></li> </ul> </details> <br /> [](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> |
||
|
|
080bcf6f66 |
chore: add additional logs to clearcut sender (#1040)
Co-authored-by: Nikolay Vitkov <34244704+Lightning00Blade@users.noreply.github.com> |
||
|
|
9c966b42f7 |
chore(main): release chrome-devtools-mcp 0.18.1 (#1042)
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*
---
##
[0.18.1](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.18.0...chrome-devtools-mcp-v0.18.1)
(2026-02-25)
### 🛠️ Fixes
* remove endsWith for filePath in memory tools
([#1041](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1041))
([
chrome-devtools-mcp-v0.18.1
|
||
|
|
d0622d52d4 |
fix: remove endsWith for filePath in memory tools (#1041)
Looks like there is another incompatibility in JSON schema handling between MCP clients. Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/1039 |
||
|
|
1a4eaba95b |
chore: list service workers (#1035)
This PR adds the extension service workers to the output of listPages. This is available only behind "--category-extensions" flag |
||
|
|
ff7ac7c499 |
chore(main): release chrome-devtools-mcp 0.18.0 (#1006)
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* --- ## [0.18.0](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.17.3...chrome-devtools-mcp-v0.18.0) (2026-02-24) ### 🎉 Features * `--slim` mode for maximum token savings ([#958](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/958)) ([chrome-devtools-mcp-v0.18.0 |
||
|
|
25638f093b |
chore: enable dynamic tool definition based on CLI arguments (#1031)
This PR allows tools to be created dynamically based on the provided cli arguments |
||
|
|
b9f65e62e4 |
chore: cleanup tool defintion context interface (#1033)
these methods are not used by tools |
||
|
|
1746ed9ee1 |
fix: detect X server display on Linux (#1027)
in headful mode on Linux we should try detecting X server if DISPLAY is not set. |
||
|
|
0106865aad | refactor: extract version in a seprate file (#1032) | ||
|
|
dd26bbf172 |
chore: implement a daemon process (#1020)
Implements a daemon process needed for the CLI. The daemon has commands to start/stop itself as well as an ability to forward data to the managed MCP server. Local sockets or named pipes are used depending on the platform. The .sock and .pid files are placed under XDG_RUNTIME_DIR/chrome-devtools-mcp or /tmp/chrome-devtools-mcp for short socket paths. It uses Puppeteer's PipeTransport to avoid re-implementing \0 terminated messages. Note the code is not used anywhere at the moment. |
||
|
|
ca6635d5a5 |
refactor: optimize slim tool descriptions and params (#1028)
Minor changes to shorten descriptions and improve ease of use. Note that `--slim` mode is not released yet and this is an improvement for it. |
||
|
|
a10617002f |
chore: make eval scripts cross-platform compatible (Windows) (#1030)
Fixes #1029 ## Summary - Use `pathToFileURL()` from `node:url` for dynamic imports in `eval_gemini.ts` to fix `ERR_UNSUPPORTED_ESM_URL_SCHEME` on Windows - converts absolute paths like `D:\projects\...\console_test.ts` to proper `file:///D:/projects/.../console_test.ts` URLs that the Node.js ESM loader accepts on all platforms - Move `CHROME_DEVTOOLS_MCP_NO_USAGE_STATISTICS=true` from Unix-only shell env var prefix in `package.json` into `eval_gemini.ts` code, matching the pattern already used in `scripts/test.mjs` - Add `.gitattributes` with `* text=auto eol=lf` to enforce LF line endings on checkout - Windows contributors cloning the repo would otherwise get CRLF endings, which conflicts with the project's Prettier `endOfLine: 'lf'` config and causes spurious diffs or formatting failures |
||
|
|
b5d01b5fe6 |
feat: support type_text (#1026)
`type_text` is useful for pages that do not have a11y and, thus, uid is not known. It's also useful for testing user-like keyboard input and testing the focus state changes. The `fill` tools force the focus change and require an uid and therefore are not suitable for these tasks. |
||
|
|
25af426977 |
chore(deps-dev): bump chrome-devtools-frontend from 1.0.1583146 to 1.0.1587572 in the bundled-devtools group (#1015)
Bumps the bundled-devtools group with 1 update: [chrome-devtools-frontend](https://github.com/ChromeDevTools/devtools-frontend). Updates `chrome-devtools-frontend` from 1.0.1583146 to 1.0.1587572 <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/8a37ab63053ff579d9a32872f037cf091fd0b8a0"><code>8a37ab6</code></a> Update DevTools DEPS (trusted)</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/1a89a4b43201e141b0bfe18aa4a6abf6b7f60814"><code>1a89a4b</code></a> DevTools: retry restoring focused DOM node after reload</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/1a74495bf3768f4b83f9c9a5b4e11322464b53c0"><code>1a74495</code></a> Fix CfT binary path in downloadedChromeBinaryPath()</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/4dfe44264389130c653c02ffdd36c934a767ace4"><code>4dfe442</code></a> Roll browser-protocol</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/22bd478d5ffaca9871f02fdcf70082000c0fe0e7"><code>22bd478</code></a> Reland "Harden devtools csp"</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/7448159117fcb11e1c653e9da10441f79c6a45a3"><code>7448159</code></a> Update DevTools DEPS (trusted)</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/17a2bdff1671790b088611677c14f107ae8e3650"><code>17a2bdf</code></a> Rebuild inside script and not output file</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/5d869f985b3f5b65ca5d3a28f8951db4eedc8edc"><code>5d869f9</code></a> Move RequestHeadersView out of components</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/5391300ccc6bc5a6e7c59041c9b42e14a351fb2b"><code>5391300</code></a> [ui] Migrate fragment rendering of StackTracePreviewContent to lit</li> <li><a href="https://github.com/ChromeDevTools/devtools-frontend/commit/2fac72206d82d9b152af787ab16ea9ecd330589e"><code>2fac722</code></a> [ui] Render <tfoot> in lit in StackTracePreviewContent</li> <li>Additional commits viewable in <a href="https://github.com/ChromeDevTools/devtools-frontend/compare/v1.0.1583146...v1.0.1587572">compare view</a></li> </ul> </details> <br /> [](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> |
||
|
|
496ab1b45f |
feat: support any-match text arrays in wait_for (#1011)
## Summary Enhances wait_for to support waiting on multiple possible texts and resolve when any one appears. This addresses long-running flows that can end in different UI outcomes (for example, "Complete" or "Error"), avoiding unnecessary 300s waits when only one expected string is provided. Closes #916. ## Tool Update ### wait_for Waits for text on the selected page, now with any-match support. | Parameter | Type | Required | Description | |-----------|------|----------|-------------| | text | string \| string[] | yes | A single text or a non-empty list of texts. Resolves when any value appears. | | timeout | integer | no | Maximum wait in ms (0 keeps default behavior). | --- ## Design / Implementation - Kept backward compatibility: existing single-string text calls continue to work unchanged. - Added schema support for string | string[] with non-empty array validation. - Updated context API to accept string | string[]. - Matching logic now normalizes to an array and races all candidates across all frames using both: - aria/<text> - text/<text> - Added clearer response output for array input: - Element matching one of ["Complete","Error"] found. - Updated generated tool docs for the new wait_for contract. - Improved docs generation to render ZodUnion types (so union params are documented correctly, not as unknown). --- ## Tests Added/updated coverage for: - Schema acceptance of: - single string - non-empty string array - rejection of empty array - Any-match array success case - Any-match array when matching text appears later (async/delayed content) - Existing wait_for behavior remains covered for single-text usage Executed relevant test suites: - tests/tools/snapshot.test.ts - tests/McpContext.test.ts - tests/index.test.ts Confirmation after the change applied: https://opncd.ai/share/8m6I4r4a |
||
|
|
7ffdc5ee4d |
feat: add take_memory_snapshot tool (#1023)
Refs: https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/406 |
||
|
|
2cd9b95346 |
feat: add skill to debug and optimize LCP (#993)
This is a draft for new skill to debug and optimize LCP scores, going hand in hand with https://github.com/ChromeDevTools/chrome-devtools-mcp/pull/831. Base for this skill is key authoritative learning material from web.dev, about debugging and optimizing LCP, mainly: - http://web.dev/articles/lcp - http://web.dev/articles/optimize-lcp - https://web.dev/articles/top-cwv I gave the content of those articles together with the [tool reference](https://github.com/ChromeDevTools/chrome-devtools-mcp/blob/main/docs/tool-reference.md), the README and the chrome-devtools core skill to both Claude Opus 4.6 and Gemini 3 Pro and their respective skill creator skills. The final skill in this PR is a merge of multiple runs with both models. The snippets to run with `evaluate_script` is something only Opus came up with, but I think it's quite nice, though our own `performance_*` tools might give the same insight but likely with more overhead (meaning tokens). |
||
|
|
c402b43697 |
feat: --slim mode for maximum token savings (#958)
- navigate - run js - take screenshot That's it. Basic functionality for a low (~368) token price. |
||
|
|
0ccc15e1fb |
chore: add -f argument for count token tool to read from file instead (#1021)
Makes it a little easier to repeatedly run the skill counter on the contents of a file, instead of copy-pasting. |
||
|
|
59f6477a70 |
feat: add storage-isolated browser contexts (#991)
## Summary Adds storage-isolated browser contexts via an optional `isolatedContext` parameter on the `new_page` tool, following the simplified design proposed by @OrKoN in #926. Pages created with the same `isolatedContext` name share cookies, localStorage, and storage. Pages in different isolated contexts (or the default context) are fully isolated — ideal for testing multi-user real-time features like chat, notifications, or collaborative editing. ## Changes ### `new_page` tool - New optional `isolatedContext: string` parameter - If specified, creates/reuses a named `BrowserContext` and opens a page in it - If omitted, uses the default browser context (existing behavior unchanged) ### `McpContext` - `#isolatedContexts` Map: LLM-provided names → Puppeteer `BrowserContext` instances - `#pageToIsolatedContextName` WeakMap: GC-safe page → context name reverse lookup - Auto-discovery: externally created browser contexts get `isolated-context-1`, `isolated-context-2`, etc. - `getIsolatedContextName(page)`: returns the isolated context name for a page (used by response formatting) - `page.browserContext()` used for context membership detection (no custom target event forwarding needed) - No context cleanup in `dispose()` or `closePage()` — either the entire browser is closed or we disconnect without destroying state ### `McpResponse` - Page list includes `isolatedContext=${name}` labels (both text and structured JSON output) ### `ToolDefinition` - `Context` interface extended with `getIsolatedContextName(page)` method ## What's NOT included (by design) - **No `TargetEventEmitter`**: Puppeteer forwards target events from `BrowserContext` → `Browser` internally - **No context cleanup**: Browser contexts are not closed on `dispose()` or page close, per maintainer guidance - **No `about:blank` cleanup**: Default context and isolated contexts coexist side-by-side ## Example ``` > new_page url="https://app.example.com/chat" isolatedContext="userA" > new_page url="https://app.example.com/chat" isolatedContext="userB" > list_pages Page 1: [app.example.com/chat] isolatedContext=userA Page 2: [app.example.com/chat] isolatedContext=userB [selected] ``` Pages in different isolated contexts have fully independent cookies, localStorage, IndexedDB, and WebSocket connections. ## Tests - 6 new tests covering `isolatedContext` feature in `tests/tools/pages.test.ts` - All existing tests pass (333+) - Zero type errors, lint clean Closes #926 --------- Co-authored-by: Alex Rudenko <alexrudenko@chromium.org> |
||
|
|
9f88127ebf |
chore(deps-dev): bump puppeteer from 24.37.4 to 24.37.5 in the bundled group (#1016)
Bumps the bundled group with 1 update: [puppeteer](https://github.com/puppeteer/puppeteer). Updates `puppeteer` from 24.37.4 to 24.37.5 <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: v24.37.5</h2> <h2><a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-core-v24.37.4...puppeteer-core-v24.37.5">24.37.5</a> (2026-02-19)</h2> <h3>🛠️ Fixes</h3> <ul> <li>roll to Chrome 145.0.7632.77 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/14703">#14703</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/b31215eaaa2f48768690600d68b301747696d7bc">b31215e</a>)</li> </ul> <h2>puppeteer: v24.37.5</h2> <h2><a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.4...puppeteer-v24.37.5">24.37.5</a> (2026-02-19)</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 24.37.4 to 24.37.5</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-v24.37.4...puppeteer-v24.37.5">24.37.5</a> (2026-02-19)</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 24.37.4 to 24.37.5</li> </ul> </li> </ul> </li> </ul> <h3>🛠️ Fixes</h3> <ul> <li>roll to Chrome 145.0.7632.77 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/14703">#14703</a>) (<a href="https://github.com/puppeteer/puppeteer/commit/b31215eaaa2f48768690600d68b301747696d7bc">b31215e</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/puppeteer/puppeteer/commit/fcb37e3b3a4f6b55b6f81a40811243260bcea16f"><code>fcb37e3</code></a> chore: release main (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/14704">#14704</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/d9a795483de4199e8e71b79a79b14c6b99ce49a3"><code>d9a7954</code></a> ci: use lower case as every other label (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/14702">#14702</a>)</li> <li><a href="https://github.com/puppeteer/puppeteer/commit/b31215eaaa2f48768690600d68b301747696d7bc"><code>b31215e</code></a> fix: roll to Chrome 145.0.7632.77 (<a href="https://redirect.github.com/puppeteer/puppeteer/issues/14703">#14703</a>)</li> <li>See full diff in <a href="https://github.com/puppeteer/puppeteer/compare/puppeteer-v24.37.4...puppeteer-v24.37.5">compare view</a></li> </ul> </details> <br /> [](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> |
||
|
|
d0fbf2522a |
chore(deps-dev): bump the dev-dependencies group with 6 updates (#1014)
Bumps the dev-dependencies group with 6 updates: | Package | From | To | | --- | --- | --- | | [@eslint/js](https://github.com/eslint/eslint/tree/HEAD/packages/js) | `9.39.2` | `9.39.3` | | [@google/genai](https://github.com/googleapis/js-genai) | `1.41.0` | `1.42.0` | | [@stylistic/eslint-plugin](https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin) | `5.8.0` | `5.9.0` | | [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) | `25.2.3` | `25.3.0` | | [eslint](https://github.com/eslint/eslint) | `9.39.2` | `9.39.3` | | [rollup](https://github.com/rollup/rollup) | `4.57.1` | `4.58.0` | Updates `@eslint/js` from 9.39.2 to 9.39.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/eslint/eslint/releases"><code>@eslint/js</code>'s releases</a>.</em></p> <blockquote> <h2>v9.39.3</h2> <h2>Bug Fixes</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/791bf8d7e76ce7ab8c88cb8982658823da4eff27"><code>791bf8d</code></a> fix: restore TypeScript 4.0 compatibility in types (<a href="https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20504">#20504</a>) (sethamus)</li> </ul> <h2>Chores</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/8594a436c22a0167fe3c2c4109bbdb04e519a014"><code>8594a43</code></a> chore: upgrade <code>@eslint/js</code><a href="https://github.com/9"><code>@9</code></a>.39.3 (<a href="https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20529">#20529</a>) (Milos Djermanovic)</li> <li><a href="https://github.com/eslint/eslint/commit/9ceef92fbd3d1298d9a00483f86897834b88acac"><code>9ceef92</code></a> chore: package.json update for <code>@eslint/js</code> release (Jenkins)</li> <li><a href="https://github.com/eslint/eslint/commit/af498c63b9ca065223a425a85afabdcc8451e69b"><code>af498c6</code></a> chore: ignore <code>/docs/v9.x</code> in link checker (<a href="https://github.com/eslint/eslint/tree/HEAD/packages/js/issues/20453">#20453</a>) (Milos Djermanovic)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eslint/eslint/commit/9ceef92fbd3d1298d9a00483f86897834b88acac"><code>9ceef92</code></a> chore: package.json update for <code>@eslint/js</code> release</li> <li>See full diff in <a href="https://github.com/eslint/eslint/commits/v9.39.3/packages/js">compare view</a></li> </ul> </details> <br /> Updates `@google/genai` from 1.41.0 to 1.42.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/googleapis/js-genai/releases"><code>@google/genai</code>'s releases</a>.</em></p> <blockquote> <h2>v1.42.0</h2> <h2><a href="https://github.com/googleapis/js-genai/compare/v1.41.0...v1.42.0">1.42.0</a> (2026-02-18)</h2> <h3>Features</h3> <ul> <li>Support multimodal embedding for Gemini Embedding 2.0 and support MaaS models in Models.embed_content() (Vertex AI API) (<a href="https://github.com/googleapis/js-genai/commit/944ae97f33168aa36612f4fec9717726b9d03629">944ae97</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"><code>@google/genai</code>'s changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/googleapis/js-genai/compare/v1.41.0...v1.42.0">1.42.0</a> (2026-02-18)</h2> <h3>Features</h3> <ul> <li>Support multimodal embedding for Gemini Embedding 2.0 and support MaaS models in Models.embed_content() (Vertex AI API) (<a href="https://github.com/googleapis/js-genai/commit/944ae97f33168aa36612f4fec9717726b9d03629">944ae97</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/googleapis/js-genai/commit/aba266968b2df120ba48fb43f5a0ae89680f1557"><code>aba2669</code></a> chore(main): release 1.42.0 (<a href="https://redirect.github.com/googleapis/js-genai/issues/1324">#1324</a>)</li> <li><a href="https://github.com/googleapis/js-genai/commit/7bc0428efbd1a3d8f022a7c61e71c1d4463d83a4"><code>7bc0428</code></a> chore: Make discriminator properties required in Interactions</li> <li><a href="https://github.com/googleapis/js-genai/commit/4ad4126ee40a33e65f4408c1fae00827c167bce1"><code>4ad4126</code></a> chore: Add 'p-retry' to Rollup externals.</li> <li><a href="https://github.com/googleapis/js-genai/commit/24fdf50c68915a4baa3fcda6ba4fff6396166197"><code>24fdf50</code></a> chore: Downgrade p-retry package requirement to resolve CJS issue</li> <li><a href="https://github.com/googleapis/js-genai/commit/960414e28e34323c885f60a4ca890df16f0ffaec"><code>960414e</code></a> chore: Add type assertions and ignore type overlap in genai libraries</li> <li><a href="https://github.com/googleapis/js-genai/commit/944ae97f33168aa36612f4fec9717726b9d03629"><code>944ae97</code></a> feat: Support multimodal embedding for Gemini Embedding 2.0 and support MaaS ...</li> <li>See full diff in <a href="https://github.com/googleapis/js-genai/compare/v1.41.0...v1.42.0">compare view</a></li> </ul> </details> <br /> Updates `@stylistic/eslint-plugin` from 5.8.0 to 5.9.0 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/eslint-stylistic/eslint-stylistic/releases"><code>@stylistic/eslint-plugin</code>'s releases</a>.</em></p> <blockquote> <h2>v5.9.0</h2> <h2><a href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v5.8.0...v5.9.0">5.9.0</a> (2026-02-19)</h2> <h3>Features</h3> <ul> <li><strong>no-trailing-spaces:</strong> support more file types (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1138">#1138</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/501e8383bd9b27ff3e8d5e66c43e4ac7877fc862">501e838</a>)</li> <li><strong>padding-line-between-statements:</strong> support selector-based statement matchers (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1134">#1134</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/8f5cc9ee69b58de1dc00a9a487a1461de2d3494b">8f5cc9e</a>)</li> <li>support ESLint 10 (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1066">#1066</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5d99706e7c156af617a7ed935bd9bbe87630738a">5d99706</a>)</li> <li>update deps (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1141">#1141</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/f29fcff09f86ac7d9feff8a9f954bbeed32e91db">f29fcff</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>comma-dangle:</strong> check tsx file correctly (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1127">#1127</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/271da423f8d47e264e5a9e1ded444eaa7b208c43">271da42</a>)</li> <li><strong>comma-dangle:</strong> prevent crash when linting non-js files (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1140">#1140</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/4a96eae4e31998904bc3c2b5c0719920a7984f98">4a96eae</a>)</li> <li><strong>indent:</strong> ignore when source code is not ESTree (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1139">#1139</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/9e7f42264b9462e21c269568e506977d5abac8ed">9e7f422</a>)</li> <li><strong>no-extra-parens:</strong> don't report jsdoc type assertion by default (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1100">#1100</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/cfb62964a3daf488903ee33c88b23bade7009cac">cfb6296</a>)</li> <li><strong>object-curly-spacing:</strong> correctly handle object patterns with type annotations (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1129">#1129</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5aaaec61ed9f4f7cc4fb431e5628f5d67e48be3c">5aaaec6</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>lines-around-comment:</strong> improve extensibility of allow boundary checks (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1136">#1136</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/18b961eacd7a37dc772a3669e236e60773965d9d">18b961e</a>)</li> <li><strong>no-extra-parens:</strong> simplify fixer (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1133">#1133</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/3504e1fa3901f68d7d028465a1c0f779077db7eb">3504e1f</a>)</li> <li><strong>on-var-declaration-per-line:</strong> simplify fixer (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1132">#1132</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/c827fde7e77e2a66b0873c41d10bb8e02cb2bf66">c827fde</a>)</li> </ul> </blockquote> </details> <details> <summary>Changelog</summary> <p><em>Sourced from <a href="https://github.com/eslint-stylistic/eslint-stylistic/blob/main/CHANGELOG.md"><code>@stylistic/eslint-plugin</code>'s changelog</a>.</em></p> <blockquote> <h2><a href="https://github.com/eslint-stylistic/eslint-stylistic/compare/v5.8.0...v5.9.0">5.9.0</a> (2026-02-19)</h2> <h3>Features</h3> <ul> <li><strong>no-trailing-spaces:</strong> support more file types (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1138">#1138</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/501e8383bd9b27ff3e8d5e66c43e4ac7877fc862">501e838</a>)</li> <li><strong>padding-line-between-statements:</strong> support selector-based statement matchers (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1134">#1134</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/8f5cc9ee69b58de1dc00a9a487a1461de2d3494b">8f5cc9e</a>)</li> <li>support ESLint 10 (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1066">#1066</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5d99706e7c156af617a7ed935bd9bbe87630738a">5d99706</a>)</li> <li>update deps (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1141">#1141</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/f29fcff09f86ac7d9feff8a9f954bbeed32e91db">f29fcff</a>)</li> </ul> <h3>Bug Fixes</h3> <ul> <li><strong>comma-dangle:</strong> check tsx file correctly (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1127">#1127</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/271da423f8d47e264e5a9e1ded444eaa7b208c43">271da42</a>)</li> <li><strong>comma-dangle:</strong> prevent crash when linting non-js files (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1140">#1140</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/4a96eae4e31998904bc3c2b5c0719920a7984f98">4a96eae</a>)</li> <li><strong>indent:</strong> ignore when source code is not ESTree (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1139">#1139</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/9e7f42264b9462e21c269568e506977d5abac8ed">9e7f422</a>)</li> <li><strong>no-extra-parens:</strong> don't report jsdoc type assertion by default (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1100">#1100</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/cfb62964a3daf488903ee33c88b23bade7009cac">cfb6296</a>)</li> <li><strong>object-curly-spacing:</strong> correctly handle object patterns with type annotations (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1129">#1129</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5aaaec61ed9f4f7cc4fb431e5628f5d67e48be3c">5aaaec6</a>)</li> </ul> <h3>Chores</h3> <ul> <li><strong>lines-around-comment:</strong> improve extensibility of allow boundary checks (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1136">#1136</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/18b961eacd7a37dc772a3669e236e60773965d9d">18b961e</a>)</li> <li><strong>no-extra-parens:</strong> simplify fixer (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1133">#1133</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/3504e1fa3901f68d7d028465a1c0f779077db7eb">3504e1f</a>)</li> <li><strong>on-var-declaration-per-line:</strong> simplify fixer (<a href="https://redirect.github.com/eslint-stylistic/eslint-stylistic/issues/1132">#1132</a>) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/c827fde7e77e2a66b0873c41d10bb8e02cb2bf66">c827fde</a>)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/96ce1c7e165ee2a0322afdd7dde9a594ab6dbd70"><code>96ce1c7</code></a> chore: release v5.9.0 (main) (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1131">#1131</a>)</li> <li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/5d99706e7c156af617a7ed935bd9bbe87630738a"><code>5d99706</code></a> feat: support ESLint 10 (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1066">#1066</a>)</li> <li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/cfb62964a3daf488903ee33c88b23bade7009cac"><code>cfb6296</code></a> fix(no-extra-parens): don't report jsdoc type assertion by default (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1100">#1100</a>)</li> <li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/501e8383bd9b27ff3e8d5e66c43e4ac7877fc862"><code>501e838</code></a> feat(no-trailing-spaces): support more file types (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1138">#1138</a>)</li> <li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/8f5cc9ee69b58de1dc00a9a487a1461de2d3494b"><code>8f5cc9e</code></a> feat(padding-line-between-statements): support selector-based statement match...</li> <li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/9e7f42264b9462e21c269568e506977d5abac8ed"><code>9e7f422</code></a> fix(indent): ignore when source code is not ESTree (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1139">#1139</a>)</li> <li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/4a96eae4e31998904bc3c2b5c0719920a7984f98"><code>4a96eae</code></a> fix(comma-dangle): prevent crash when linting non-js files (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1140">#1140</a>)</li> <li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/18b961eacd7a37dc772a3669e236e60773965d9d"><code>18b961e</code></a> refactor(lines-around-comment): improve extensibility of allow boundary check...</li> <li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/3504e1fa3901f68d7d028465a1c0f779077db7eb"><code>3504e1f</code></a> refactor(no-extra-parens): simplify fixer (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1133">#1133</a>)</li> <li><a href="https://github.com/eslint-stylistic/eslint-stylistic/commit/c827fde7e77e2a66b0873c41d10bb8e02cb2bf66"><code>c827fde</code></a> refactor(on-var-declaration-per-line): simplify fixer (<a href="https://github.com/eslint-stylistic/eslint-stylistic/tree/HEAD/packages/eslint-plugin/issues/1132">#1132</a>)</li> <li>Additional commits viewable in <a href="https://github.com/eslint-stylistic/eslint-stylistic/commits/v5.9.0/packages/eslint-plugin">compare view</a></li> </ul> </details> <br /> Updates `@types/node` from 25.2.3 to 25.3.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 `eslint` from 9.39.2 to 9.39.3 <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/eslint/eslint/releases">eslint's releases</a>.</em></p> <blockquote> <h2>v9.39.3</h2> <h2>Bug Fixes</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/791bf8d7e76ce7ab8c88cb8982658823da4eff27"><code>791bf8d</code></a> fix: restore TypeScript 4.0 compatibility in types (<a href="https://redirect.github.com/eslint/eslint/issues/20504">#20504</a>) (sethamus)</li> </ul> <h2>Chores</h2> <ul> <li><a href="https://github.com/eslint/eslint/commit/8594a436c22a0167fe3c2c4109bbdb04e519a014"><code>8594a43</code></a> chore: upgrade <code>@eslint/js</code><a href="https://github.com/9"><code>@9</code></a>.39.3 (<a href="https://redirect.github.com/eslint/eslint/issues/20529">#20529</a>) (Milos Djermanovic)</li> <li><a href="https://github.com/eslint/eslint/commit/9ceef92fbd3d1298d9a00483f86897834b88acac"><code>9ceef92</code></a> chore: package.json update for <code>@eslint/js</code> release (Jenkins)</li> <li><a href="https://github.com/eslint/eslint/commit/af498c63b9ca065223a425a85afabdcc8451e69b"><code>af498c6</code></a> chore: ignore <code>/docs/v9.x</code> in link checker (<a href="https://redirect.github.com/eslint/eslint/issues/20453">#20453</a>) (Milos Djermanovic)</li> </ul> </blockquote> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/eslint/eslint/commit/a7d5fe64f402eefdc2bbb73992d3a4ac49f426a5"><code>a7d5fe6</code></a> 9.39.3</li> <li><a href="https://github.com/eslint/eslint/commit/42e6b065f5a1c3b2dfb1fcdccf44ba17c0048bf2"><code>42e6b06</code></a> Build: changelog update for 9.39.3</li> <li><a href="https://github.com/eslint/eslint/commit/8594a436c22a0167fe3c2c4109bbdb04e519a014"><code>8594a43</code></a> chore: upgrade <code>@eslint/js</code><a href="https://github.com/9"><code>@9</code></a>.39.3 (<a href="https://redirect.github.com/eslint/eslint/issues/20529">#20529</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/9ceef92fbd3d1298d9a00483f86897834b88acac"><code>9ceef92</code></a> chore: package.json update for <code>@eslint/js</code> release</li> <li><a href="https://github.com/eslint/eslint/commit/791bf8d7e76ce7ab8c88cb8982658823da4eff27"><code>791bf8d</code></a> fix: restore TypeScript 4.0 compatibility in types (<a href="https://redirect.github.com/eslint/eslint/issues/20504">#20504</a>)</li> <li><a href="https://github.com/eslint/eslint/commit/af498c63b9ca065223a425a85afabdcc8451e69b"><code>af498c6</code></a> chore: ignore <code>/docs/v9.x</code> in link checker (<a href="https://redirect.github.com/eslint/eslint/issues/20453">#20453</a>)</li> <li>See full diff in <a href="https://github.com/eslint/eslint/compare/v9.39.2...v9.39.3">compare view</a></li> </ul> </details> <br /> Updates `rollup` from 4.57.1 to 4.58.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.58.0</h2> <h2>4.58.0</h2> <p><em>2026-02-20</em></p> <h3>Features</h3> <ul> <li>Also support <code>__NO_SIDE_EFFECTS__</code> annotation before variable declarations declaring function expressions (<a href="https://redirect.github.com/rollup/rollup/issues/6272">#6272</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/6256">#6256</a>: docs: document PreRenderedChunk properties including isDynamicEntry and isImplicitEntry (<a href="https://github.com/njg7194"><code>@njg7194</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6259">#6259</a>: docs: Correct typo and improve sentence structure in docs for <code>output.experimentalMinChunkSize</code> (<a href="https://github.com/millerick"><code>@millerick</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6260">#6260</a>: fix(deps): update rust crate swc_compiler_base to v47 (<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/6261">#6261</a>: fix(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> <li><a href="https://redirect.github.com/rollup/rollup/pull/6262">#6262</a>: Avoid unnecessary cloning of the code string (<a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6263">#6263</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/6265">#6265</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6267">#6267</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/6268">#6268</a>: chore(deps): update dependency eslint-plugin-unicorn to v63 (<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/6269">#6269</a>: chore(deps): update dependency lru-cache to v11 (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6270">#6270</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6272">#6272</a>: forward NO_SIDE_EFFECTS annotations to function expressions in variable declarations (<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.58.0</h2> <p><em>2026-02-20</em></p> <h3>Features</h3> <ul> <li>Also support <code>__NO_SIDE_EFFECTS__</code> annotation before variable declarations declaring function expressions (<a href="https://redirect.github.com/rollup/rollup/issues/6272">#6272</a>)</li> </ul> <h3>Pull Requests</h3> <ul> <li><a href="https://redirect.github.com/rollup/rollup/pull/6256">#6256</a>: docs: document PreRenderedChunk properties including isDynamicEntry and isImplicitEntry (<a href="https://github.com/njg7194"><code>@njg7194</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6259">#6259</a>: docs: Correct typo and improve sentence structure in docs for <code>output.experimentalMinChunkSize</code> (<a href="https://github.com/millerick"><code>@millerick</code></a>, <a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6260">#6260</a>: fix(deps): update rust crate swc_compiler_base to v47 (<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/6261">#6261</a>: fix(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> <li><a href="https://redirect.github.com/rollup/rollup/pull/6262">#6262</a>: Avoid unnecessary cloning of the code string (<a href="https://github.com/lukastaegert"><code>@lukastaegert</code></a>)</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6263">#6263</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/6265">#6265</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6267">#6267</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/6268">#6268</a>: chore(deps): update dependency eslint-plugin-unicorn to v63 (<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/6269">#6269</a>: chore(deps): update dependency lru-cache to v11 (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6270">#6270</a>: chore(deps): lock file maintenance (<a href="https://github.com/renovate"><code>@renovate</code></a>[bot])</li> <li><a href="https://redirect.github.com/rollup/rollup/pull/6272">#6272</a>: forward NO_SIDE_EFFECTS annotations to function expressions in variable declarations (<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/33f39c1f205ea2eadaf4b589e493453e2baa3662"><code>33f39c1</code></a> 4.58.0</li> <li><a href="https://github.com/rollup/rollup/commit/b61c40803b717854c1c28937e8098e5ad3c7b8ca"><code>b61c408</code></a> forward NO_SIDE_EFFECTS annotations to function expressions in variable decla...</li> <li><a href="https://github.com/rollup/rollup/commit/7f00689ec90e2cafb11c26eefbcac62343c936f6"><code>7f00689</code></a> Extend agent instructions</li> <li><a href="https://github.com/rollup/rollup/commit/e7b2b85af0901244ecc141b9d792c6db6b527ea4"><code>e7b2b85</code></a> chore(deps): lock file maintenance (<a href="https://redirect.github.com/rollup/rollup/issues/6270">#6270</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/2aa5da9baf82211b8207d268c8751630cb766970"><code>2aa5da9</code></a> fix(deps): update minor/patch updates (<a href="https://redirect.github.com/rollup/rollup/issues/6267">#6267</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/4319837c5448d0c10d89e9ded118888deec2eeec"><code>4319837</code></a> chore(deps): update dependency lru-cache to v11 (<a href="https://redirect.github.com/rollup/rollup/issues/6269">#6269</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/c3b6b4bdc4f2ed978fa233132a526957e6513233"><code>c3b6b4b</code></a> chore(deps): update dependency eslint-plugin-unicorn to v63 (<a href="https://redirect.github.com/rollup/rollup/issues/6268">#6268</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/8653dd7500b75e6a3930d86479261f242b09aef8"><code>8653dd7</code></a> fix(deps): update minor/patch updates (<a href="https://redirect.github.com/rollup/rollup/issues/6263">#6263</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/c49fba1e8df6654c8f424350dc6871fa29acb17b"><code>c49fba1</code></a> chore(deps): lock file maintenance (<a href="https://redirect.github.com/rollup/rollup/issues/6265">#6265</a>)</li> <li><a href="https://github.com/rollup/rollup/commit/74559c007feee669ef9c5978c0c713e496122f6f"><code>74559c0</code></a> Avoid unnecessary cloning of the code string (<a href="https://redirect.github.com/rollup/rollup/issues/6262">#6262</a>)</li> <li>Additional commits viewable in <a href="https://github.com/rollup/rollup/compare/v4.57.1...v4.58.0">compare view</a></li> </ul> </details> <br /> <details> <summary>Most Recent Ignore Conditions Applied to This Pull Request</summary> | Dependency Name | Ignore Conditions | | --- | --- | | eslint | [>= 10.a, < 11] | | @eslint/js | [>= 10.a, < 11] | </details> 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> |
||
|
|
9ef4479bec |
refactor: types for JSON output of IssueFormatter (#1007)
- makes the id required in types - requires toString(), toStringDetailed() to use the JSON representation. |
||
|
|
5cedcaad2c | refactor: simplify JavaScript code examples, update code block language, and refine descriptions in a11y debugging skill documentation. (#1009) | ||
|
|
33446d457e |
feat: add experimental screencast recording tools (#941)
## Summary Adds `screencast_start` and `screencast_stop` MCP tools that allow agents to record a video of a page using Puppeteer's `page.screencast()` API. Only enabled if the command line option `--experimental-screencast` is provided Closes #878. ## New Tools ### `screencast_start` Starts recording a screencast (video) of the selected page in mp4 format. | Parameter | Type | Default | Description | |-----------|------|---------|-------------| | `path` | string (optional) | temp file | Output file path | ### `screencast_stop` Stops the active recording and reports the saved file path. ## Design - **Start/stop pair** following the `performance_start_trace` / `performance_stop_trace` pattern - **State management** via `getScreenRecorder()` / `setScreenRecorder()` on the Context interface - **Category**: `DEBUGGING` (alongside `take_screenshot`) - **ffmpeg dependency**: Clear error message when ffmpeg is not installed - **Temp file fallback**: When no `path` is provided, creates a temp file with the correct extension --------- Co-authored-by: Alex Rudenko <alexrudenko@chromium.org> |
||
|
|
5696cce035 |
test: do not suppress uncaught errors in tests (#1008)
We want to suppress uncaught errors in production because we do not want to crash the entire server. But it might be useful in tests. |
||
|
|
b0c6d042e4 | feat: add a new skill for accessibility debugging and auditing with Chrome DevTools MCP. (#1002) | ||
|
|
0d78685a5b |
refactor: cleanup string and structured console formatters (#1005)
- typed JSON objects for structured output - same source is used for text formatting |
||
|
|
bc3c40e8f9 |
refactor: move emulation settings to context (#1000)
- reduces boilerplate - allows easily to restore emulation settings This is in preparation for the integration with Lighthouse. |
||
|
|
e9a1deaa48 |
chore(deps): bump hono from 4.11.7 to 4.12.0 (#1003)
Bumps [hono](https://github.com/honojs/hono) from 4.11.7 to 4.12.0. <details> <summary>Release notes</summary> <p><em>Sourced from <a href="https://github.com/honojs/hono/releases">hono's releases</a>.</em></p> <blockquote> <h2>v4.12.0</h2> <h1>Release Notes</h1> <p>Hono v4.12.0 is now available!</p> <p>This release includes new features for the Hono client, middleware improvements, adapter enhancements, and significant performance improvements to the router and context.</p> <h2><code>$path</code> for Hono Client</h2> <p>The Hono client now has a <code>$path()</code> method that returns the path string instead of a full URL. This is useful when you need just the path portion for routing or key-based operations:</p> <pre lang="ts"><code>const client = hc<typeof app>('http://localhost:8787') <p>// Get the path string const path = client.api.posts.$path() // => '/api/posts'</p> <p>// With path parameters const postPath = client.api.posts[':id'].$path({ param: { id: '123' }, }) // => '/api/posts/123'</p> <p>// With query parameters const searchPath = client.api.posts.$path({ query: { filter: 'test' }, }) // => '/api/posts?filter=test' </code></pre></p> <p>Unlike <code>$url()</code> which returns a <code>URL</code> object, <code>$path()</code> returns a plain path string, making it convenient for use with routers or as cache keys.</p> <p>Thanks <a href="https://github.com/ShaMan123"><code>@ShaMan123</code></a>!</p> <h2><code>ApplyGlobalResponse</code> Type Helper for RPC Client</h2> <p>The new <code>ApplyGlobalResponse</code> type helper allows you to add global error response types to all routes in the RPC client. This is useful for typing common error responses from <code>app.onError()</code> or global middlewares:</p> <pre lang="ts"><code>const app = new Hono() .get('/api/users', (c) => c.json({ users: ['alice', 'bob'] }, 200)) .onError((err, c) => c.json({ error: err.message }, 500)) <p>type AppWithErrors = ApplyGlobalResponse< typeof app, { 401: { json: { error: string; message: string } } 500: { json: { error: string; message: string } } } </tr></table> </code></pre></p> </blockquote> <p>... (truncated)</p> </details> <details> <summary>Commits</summary> <ul> <li><a href="https://github.com/honojs/hono/commit/d2ed2e9c966d82e2369bd74bdae4acd4e8f57807"><code>d2ed2e9</code></a> 4.12.0</li> <li><a href="https://github.com/honojs/hono/commit/01e78adc637de2bc4ae532cf4a80bf7863652f8e"><code>01e78ad</code></a> Merge pull request <a href="https://redirect.github.com/honojs/hono/issues/4735">#4735</a> from honojs/next</li> <li><a href="https://github.com/honojs/hono/commit/a340a25fc6065f41328a20068c495f8a32410401"><code>a340a25</code></a> perf(context): use <code>createResponseInstance</code> for new Response (<a href="https://redirect.github.com/honojs/hono/issues/4733">#4733</a>)</li> <li><a href="https://github.com/honojs/hono/commit/bd26c3129f8e159864d3f96522f44e900516e847"><code>bd26c31</code></a> perf(trie-router): improve performance (1.5x ~ 2.0x) (<a href="https://redirect.github.com/honojs/hono/issues/4724">#4724</a>)</li> <li><a href="https://github.com/honojs/hono/commit/b85c1e032864322c581f4d04652d37ef59130eee"><code>b85c1e0</code></a> feat(types): Add exports field to ExecutionContext (<a href="https://redirect.github.com/honojs/hono/issues/4719">#4719</a>)</li> <li><a href="https://github.com/honojs/hono/commit/02346c6d945a10c98f54ae51622e8c7afbe3bad4"><code>02346c6</code></a> feat(language): add progressive locale code truncation to normalizeLanguage (...</li> <li><a href="https://github.com/honojs/hono/commit/7438ab93553ce61773e2a74376972777602f08ff"><code>7438ab9</code></a> perf(context): add fast path to c.json() matching c.text() optimization (<a href="https://redirect.github.com/honojs/hono/issues/4707">#4707</a>)</li> <li><a href="https://github.com/honojs/hono/commit/034223f1bf8db3c98e4bf2d11d597c94362729d7"><code>034223f</code></a> feat(trailing-slash): add <code>alwaysRedirect</code> option to support wildcard routes ...</li> <li><a href="https://github.com/honojs/hono/commit/16321afd47e1bf8f48d06d9d8a2eae6b607c73ef"><code>16321af</code></a> feat(adapter): add getConnInfo for AWS Lambda, Cloudflare Pages, and Netlify ...</li> <li><a href="https://github.com/honojs/hono/commit/bf37828d6df56618bb90649c65c1c4deb2f9bcd6"><code>bf37828</code></a> feat(basic-auth): add context key and callback options (<a href="https://redirect.github.com/honojs/hono/issues/4645">#4645</a>)</li> <li>Additional commits viewable in <a href="https://github.com/honojs/hono/compare/v4.11.7...v4.12.0">compare view</a></li> </ul> </details> <br /> [](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> |
||
|
|
46bd54f7c8 |
chore: verify npm package content before publishing (#999)
Refs: https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/996 https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/995 |
||
|
|
0c4f211317 |
chore(main): release chrome-devtools-mcp 0.17.3 (#998)
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*
---
##
[0.17.3](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.17.2...chrome-devtools-mcp-v0.17.3)
(2026-02-19)
### 🛠️ Fixes
* remove clean from prepare
([#997](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/997))
([
chrome-devtools-mcp-v0.17.3
|
||
|
|
2016b98217 |
fix: remove clean from prepare (#997)
Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/996 Closes https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/995 |
||
|
|
34882a28af |
chore(main): release chrome-devtools-mcp 0.17.2 (#981)
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* --- ## [0.17.2](https://github.com/ChromeDevTools/chrome-devtools-mcp/compare/chrome-devtools-mcp-v0.17.1...chrome-devtools-mcp-v0.17.2) (2026-02-19) ### 🛠️ Fixes * check that combobox is actually a select element before filling out options ([#979](https://github.com/ChromeDevTools/chrome-devtools-mcp/issues/979)) ([chrome-devtools-mcp-v0.17.2 |
||
|
|
a2950e2e62 |
test: deflake network test (#994)
drive-by: switch to dot reporter locally and make it configurable |