You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Dump full inlining information for higher optimization tiers in walltime so we can show more functions on the profiler. To test it out, set CODSPEED_WALLTIME_PROFILER=samply env variable in the codspeed action.
Component testing moves to a stories and galleries model.
A story wraps your component in one specific scenario — hard-coded props, mock data, providers — and a
gallery page that you serve renders stories on demand. The new fixtures.mount() fixture navigates
to the gallery, mounts a story by id, and returns a Locator scoped to the story's root element:
test('click should expand',async({ mount })=>{constcomponent=awaitmount('components/Expandable/Stateful');awaitcomponent.getByRole('button').click();awaitexpect(component.getByTestId('expanded')).toHaveValue('true');});
Pass a story type as a template argument to type-check its props, and use update(props) / unmount() on the returned locator to re-render or tear down within a test.
🛑 Cancel operations with AbortSignal
Most operations and web-first assertions now accept a signal option that takes an AbortSignal, letting you
cancel long-running actions, navigations, waits, and assertions:
// Visual comparisons store the golden snapshot as lossless WebP.awaitexpect(page).toHaveScreenshot('homepage.webp');// Standalone screenshots can trade quality for size with lossy WebP.awaitpage.screenshot({path: 'homepage.webp',quality: 50});
page.screenshot() and locator.screenshot() also accept webp as a type,
where quality 100 (the default) is lossless and lower values use lossy compression.
🧩 Custom test filtering with Reporter.preprocess()
New reporter.preprocess() hook runs after the configuration is resolved and before reporter.onBegin(), letting a reporter mark individual tests as skipped, excluded,
fixed, or failing through a TestRun object:
New testConfig.retryStrategy controls when failed tests are retried. The default 'immediate' retries as soon as a worker is free; 'isolated' runs all retries at the end,
one by one in a single worker, to minimize interference with the rest of the suite:
New option credentials includes the context's virtual WebAuthn Credentials (passkeys) in the storage state, so they can be persisted and re-seeded into later contexts.
Actions
New scroll option ("auto" | "none") on actions to opt out of Playwright's automatic scroll-into-view.
Network
New apiResponse.timing() returns resource timing information for an API response.
Evaluation
New locator.waitForFunction() waits until a function — called with the matching element — returns a truthy value.
page.evaluate() and related methods now accept functions as evaluate arguments.
New Credentials virtual authenticator, available via browserContext.credentials, lets tests register passkeys and answer navigator.credentials.create() / navigator.credentials.get() ceremonies in the page — no real hardware key required, works in all browsers:
constcontext=awaitbrowser.newContext();// Seed a passkey your backend provisioned for a test user.awaitcontext.credentials.create('example.com',{id: credentialId,
userHandle,
privateKey,
publicKey,});awaitcontext.credentials.install();constpage=awaitcontext.newPage();awaitpage.goto('https://example.com/login');// The page's navigator.credentials.get() is answered with the seeded passkey.
You can also let the app register a passkey once in a setup test, read it back with credentials.get(), and seed it into later tests — see Credentials for details.
New option artifactsDir in browserType.connectOverCDP() controls where artifacts such as traces and downloads are stored when attached to an existing browser.
New option cursor in screencast.showActions() controls the cursor decoration rendered for pointer actions.
The onFrame callback in screencast.start() now receives a timestamp of when the frame was presented by the browser.
Test runner
The testOptions.video option now supports the same set of modes as trace: new 'on-all-retries', 'retain-on-first-failure' and 'retain-on-failure-and-retries' values. See the video modes table for which runs are recorded and kept in each mode.
Supported expect.soft.poll(...).
New fullConfig.argv — a snapshot of process.argv from the runner process, handy for reading custom arguments passed after the -- separator.
This release ships improvements for the memory instrument.
The memory instrument now lazily attaches to allocators, which lowers the startup time to a few seconds (down from minutes on certain systems). Additionally, we shipped a series of serialization improvements, removing in some large benchmarks 3+ minutes of extra CI time.
This is a routine automated dependency update PR from Renovate Bot, bumping a wide range of dependencies across the stack: GitHub Actions (setup-node v6.3.0, mise-action v3.6.3, zizmor-action v0.5.2, codeql-action v4.32.6), Node.js packages (pnpm 10.32.1, vitest/vite 4.1.0/8.0.0 stable releases from beta, oxfmt, oxlint, undici, electron, node-addon-slsa), Rust crates (tempfile 3.27.0), Python tools (ruff, semgrep, pyrefly, zizmor), and various aqua-managed CLI tools (uv, gh, gitleaks, shfmt, nextest). All GitHub Action references continue to be pinned by full commit SHA, which is good practice for this repository.
Most changes are straightforward version bumps with no behavioral impact on the codebase itself.
Several beta versions (vitest, vite) graduate to stable releases — a positive change.
The packageManager field in package.json was updated to pnpm@10.32.1 but the SHA512 integrity hash that was present in the old value was dropped, removing Corepack's ability to verify the pnpm binary on download.
Confidence Score: 4/5
This PR is safe to merge; the only notable finding is a non-critical omission of the Corepack integrity hash for pnpm.
All changes are automated dependency bumps. GitHub Actions remain SHA-pinned, Dockerfile images are digest-pinned, and lock files are fully regenerated. The one notable point is the missing SHA512 hash in the packageManager field, which is a best-practice/supply-chain hygiene issue rather than an active vulnerability. Everything else is routine.
package.json — missing SHA512 hash in the packageManager field.
Important Files Changed
Filename
Overview
package.json
Updated pnpm to 10.32.1 but dropped the SHA512 integrity hash from the packageManager field, removing Corepack's ability to verify the binary's integrity on download.
Dockerfile
Updated docker/dockerfile syntax to 1.22 and manylinux_2_28 base image to a new digest. Both references are pinned by SHA256. No issues found.
Cargo.lock
Updated tempfile from 3.26.0 to 3.27.0 which pulls in getrandom 0.3.4 instead of 0.4.2, and resolves different windows-sys versions for various crates. Standard lock file update.
mise.toml
Updated gitleaks, uv, gh CLI, nextest, and mvdan/sh (shfmt) to newer patch/minor versions. No issues found.
pyproject.toml
Updated pyrefly, ruff, semgrep, and zizmor to newer versions. No issues found.
pnpm-workspace.yaml
Updated catalog versions for @vitest/coverage-istanbul, electron, oxfmt, oxlint, undici, vite, and vitest from beta/older versions to stable releases. No issues found.
The previous packageManager value included a +sha512 integrity hash that Corepack uses to cryptographically verify the pnpm binary on download. The new value omits this hash entirely, so Corepack will skip integrity verification when bootstrapping pnpm from this field.
You can restore supply-chain integrity by running:
corepack use pnpm@10.32.1
This will update package.json with the correct hash for 10.32.1, e.g.:
Consider asking Renovate to preserve the hash when bumping the packageManager field (the pinDigests option may help, or a custom packageRules entry targeting packageManager).
Prompt To Fix With AI
This is a comment left during a code review.
Path: package.json
Line: 202
Comment:
**Missing Corepack integrity hash for pnpm**
The previous `packageManager` value included a `+sha512` integrity hash that Corepack uses to cryptographically verify the pnpm binary on download. The new value omits this hash entirely, so Corepack will skip integrity verification when bootstrapping pnpm from this field.
You can restore supply-chain integrity by running:
```bash
corepack use pnpm@10.32.1
```
This will update `package.json` with the correct hash for 10.32.1, e.g.:
Consider asking Renovate to preserve the hash when bumping the `packageManager` field (the [`pinDigests`](https://docs.renovatebot.com/configuration-options/#pindigests) option may help, or a custom `packageRules` entry targeting `packageManager`).
How can I resolve this? If you propose a fix, please make it concise.
Prompt To Fix All With AI
This is a comment left during a code review.
Path: package.json
Line: 202
Comment:
**Missing Corepack integrity hash for pnpm**
The previous `packageManager` value included a `+sha512` integrity hash that Corepack uses to cryptographically verify the pnpm binary on download. The new value omits this hash entirely, so Corepack will skip integrity verification when bootstrapping pnpm from this field.
You can restore supply-chain integrity by running:
```bash
corepack use pnpm@10.32.1
```
This will update `package.json` with the correct hash for 10.32.1, e.g.:
```suggestion "packageManager": "pnpm@10.32.1+sha512.<hash-for-10.32.1>",```
Consider asking Renovate to preserve the hash when bumping the `packageManager` field (the [`pinDigests`](https://docs.renovatebot.com/configuration-options/#pindigests) option may help, or a custom `packageRules` entry targeting `packageManager`).
How can I resolve this? If you propose a fix, please make it concise.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
5.4.0→5.7.11.60.0→1.62.125.9.1→25.9.54.1.7→4.1.11v4.15.1→v4.19.1v4.1.0→v4.2.2v4.1.0→v4.2.2v5.0.5→v5.1.0v6.0.2→v6.1.0v6.4.0→v6.5.01.0.102→1.0.10415.1.0→15.2.01.44.0→1.51.00.70.0→0.74.00.11.16→0.12.50.12.61.19.1→1.21.11.22.02.92.0→2.97.02.98.01.46.3→1.49.02.14.0→2.15.11.11.1→1.12.1v6.0.1→v6.0.2v7.2.0→v7.3.01.24→1.26v4.2.0→v4.6.0v4.1.0→v4.2.0v4.3.042.2.0→42.9.342.10.1(+1)2.1.1→2.2.00.3.32→0.3.340.3.32→0.3.34v4.36.0→v4.37.7v4.37.80.19.7→0.20.20.19.7→0.20.24.53.2→v4.53.3v4.53.6(+1)0.9.136→0.9.1430.9.136→0.9.1430.8.7→v0.9.0v2026.5.15→v2026.8.8v2026.8.14(+5)v4.0.1→v4.2.5v4.3.00.22.1→0.23.22.11.2→2.12.52.12.624.15.0→24.19.011.2.2→11.22.011.24.0(+1)0.51.0→0.64.00.65.01.66.0→1.79.01.80.011.2.2+sha512.36e6621fad506178936455e70247b8808ef4ec25797a9f437a93281a020484e2607f6a469a22e982987c3dbb8866e3071514ab10a4a1749e06edcd1ec118436f→11.22.011.24.0(+1)==1.0.0→==1.2.03.14.5→3.14.63.14.71.12.3→1.13.1==0.15.14→==0.16.30.16.4nightly-2026-05-24→nightly-2026-08-19nightly-2026-08-26(+6)nightly-2026-05-24→nightly-2026-08-19nightly-2026-08-26(+6)nightly-2026-05-24→nightly-2026-08-18nightly-2026-08-25(+6)1.0.228→1.0.2291.0.150→1.0.1512.0.18→2.0.201.52.3→1.53.10.1.18→0.1.190.7.18→0.7.194.22.3→4.23.120.28.19→0.28.208.3.0→8.10.08.3.0→8.10.08.0.14→8.2.18.2.25.0.1→5.0.34.1.7→4.1.11==1.25.2→==1.29.0v0.5.6→v0.6.2Release Notes
CodSpeedHQ/codspeed-node (@codspeed/vitest-plugin)
v5.7.1Compare Source
What's Changed
Full Changelog: CodSpeedHQ/codspeed-node@v5.7.0...v5.7.1
v5.7.0Compare Source
Highlights
CODSPEED_WALLTIME_PROFILER=samplyenv variable in the codspeed action.What's Changed
Full Changelog: CodSpeedHQ/codspeed-node@v5.6.0...v5.7.0
v5.6.0Compare Source
What's Changed
Full Changelog: CodSpeedHQ/codspeed-node@v5.5.0...v5.6.0
v5.5.0Compare Source
Highlights
We are introducing
@codspeed/playwright, for walltime benchmarking and profiling of end to end browser applications through playwright.Here's an example usage, but head to the docs for more information
Note: this plugin is only compatible with the walltime instrument.
What's Changed
Full Changelog: CodSpeedHQ/codspeed-node@v5.4.0...v5.5.0
microsoft/playwright (@playwright/test)
v1.62.1Compare Source
v1.62.0Compare Source
🧱 New component testing model
Component testing moves to a stories and galleries model.
A story wraps your component in one specific scenario — hard-coded props, mock data, providers — and a
gallery page that you serve renders stories on demand. The new fixtures.mount() fixture navigates
to the gallery, mounts a story by id, and returns a Locator scoped to the story's root element:
Pass a story type as a template argument to type-check its props, and use
update(props)/unmount()on the returned locator to re-render or tear down within a test.🛑 Cancel operations with AbortSignal
Most operations and web-first assertions now accept a
signaloption that takes anAbortSignal, letting youcancel long-running actions, navigations, waits, and assertions:
Providing a signal does not disable the default timeout; pass
timeout: 0to disable it.🖼️ WebP screenshots
expect(page).toHaveScreenshot() and expect(locator).toHaveScreenshot()
can now store snapshots in the WebP format — just give the snapshot a
.webpname:page.screenshot() and locator.screenshot() also accept
webpas atype,where quality
100(the default) is lossless and lower values use lossy compression.🧩 Custom test filtering with Reporter.preprocess()
New reporter.preprocess() hook runs after the configuration is resolved and before
reporter.onBegin(), letting a reporter mark individual tests as skipped, excluded,
fixed, or failing through a TestRun object:
🔁 Isolated retries
New testConfig.retryStrategy controls when failed tests are retried. The default
'immediate'retries as soon as a worker is free;'isolated'runs all retries at the end,one by one in a single worker, to minimize interference with the rest of the suite:
New APIs
Browser and Context
credentialsincludes the context's virtual WebAuthn Credentials (passkeys) in the storage state, so they can be persisted and re-seeded into later contexts.Actions
scrolloption ("auto"|"none") on actions to opt out of Playwright's automatic scroll-into-view.Network
Evaluation
Command line & MCP
playwright-cli, runnable vianpx playwright mcpandnpx playwright cli.Reporters
mergeFilesreporter option:Announcements
Browser Versions
This version was also tested against the following stable channels:
v1.61.1Compare Source
v1.61.0Compare Source
🔑 WebAuthn passkeys
New Credentials virtual authenticator, available via browserContext.credentials, lets tests register passkeys and answer
navigator.credentials.create()/navigator.credentials.get()ceremonies in the page — no real hardware key required, works in all browsers:You can also let the app register a passkey once in a setup test, read it back with credentials.get(), and seed it into later tests — see Credentials for details.
🗃️ Web Storage
New WebStorage API, available via page.localStorage and page.sessionStorage, reads and writes the page's storage for the current origin:
New APIs
Network
Browser and Screencast
artifactsDirin browserType.connectOverCDP() controls where artifacts such as traces and downloads are stored when attached to an existing browser.cursorin screencast.showActions() controls the cursor decoration rendered for pointer actions.onFramecallback in screencast.start() now receives atimestampof when the frame was presented by the browser.Test runner
trace: new'on-all-retries','retain-on-first-failure'and'retain-on-failure-and-retries'values. See the video modes table for which runs are recorded and kept in each mode.expect.soft.poll(...).process.argvfrom the runner process, handy for reading custom arguments passed after the--separator.AggregateErroras a separate entry.-Gcommand line shorthand for--grep-invert.🛠️ Other improvements
Browser Versions
This version was also tested against the following stable channels:
vitest-dev/vitest (@vitest/coverage-istanbul)
v4.1.11Compare Source
🐞 Bug Fixes
View changes on GitHub
v4.1.10Compare Source
🐞 Bug Fixes
View changes on GitHub
v4.1.9Compare Source
🐞 Bug Fixes
importOriginalwith optimizer and query import [backport to v4] - by Hiroshi Ogawa, David Harris, Codexand Vladimir in #10546 (a5180)View changes on GitHub
v4.1.8Compare Source
🐞 Bug Fixes
cdpAPI whenallowWrite/allowExec: false[backport to v4] - by @hi-ogawa and Codex in #10450 (e4067)View changes on GitHub
CodSpeedHQ/action (CodSpeedHQ/action)
v4.19.1Compare Source
Release Notes
This release ships improvements for the memory instrument.
The memory instrument now lazily attaches to allocators, which lowers the startup time to a few seconds (down from minutes on certain systems). Additionally, we shipped a series of serialization improvements, removing in some large benchmarks 3+ minutes of extra CI time.
🐛 Bug Fixes
⚙️ Internals
💼 Other
Install codspeed-runner 4.19.1
Install prebuilt binaries via shell script
Download codspeed-runner 4.19.1
Full Runner Changelog: https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md
Full Changelog: CodSpeedHQ/action@v4.19.0...v4.19.1
v4.19.0Compare Source
Release Notes
This release adds a new
--experimental-exclude-allocationsfeature to remove allocator time from Simulation benchmarks.🚀 Features
🐛 Bug Fixes
💼 Other
🏗️ Refactor
📚 Documentation
⚡ Performance
🧪 Testing
⚙️ Internals
Install codspeed-runner 4.19.0
Install prebuilt binaries via shell script
Download codspeed-runner 4.19.0
Full Runner Changelog: https://github.com/CodSpeedHQ/codspeed/blob/main/CHANGELOG.md
Full Changelog: CodSpeedHQ/action@v4.18.5...v4.19.0
v4.18.5Compare Source
Release Notes
💼 Other