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
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.
When SSG-MD is enabled, every generated Markdown page now starts with an agent-readable directive pointing to llms.txt, llms-full.txt, and the Markdown version of the current page:
> For AI agents: the complete documentation index is available at https://example.com/llms.txt, the full documentation bundle is available at https://example.com/llms-full.txt, and this page is available as Markdown at https://example.com/guide/index.md.
This extends the existing HTML hint to Markdown output. Its URLs automatically respect siteOrigin, base, locale, and version prefixes, helping agents discover the right machine-readable content from either format.
Use icon to display an image, inline SVG, emoji, external URL, or data URL before sidebar and navbar labels. Auto-generated sidebars support icons on groups, items, and section headers through _meta.json or page frontmatter, while navigation icons can be configured through _nav.json or themeConfig.nav.
For a local image, place it in public and reference it with an absolute path:
Rspress now resolves Git history for all documentation pages in one batched pass instead of spawning one git log process per page. Existing lastUpdated configuration remains unchanged:
In the PR benchmark, Rspress resolved metadata for its 208-page documentation site with two Git processes in about 300 ms. This avoids the process storms that could make large sites spend minutes resolving page metadata.
Notes: This code is a federated chunk loader that executes JavaScript fetched from remote URLs (via eval) and code read from the filesystem (via vm.Script(...).runInThisContext()), then installs the resulting modules into the Webpack runtime and runs their runtime. The absence of visible integrity/allowlisting checks makes it critically dangerous if an attacker can influence chunk identifiers, remote entry resolution, or federation globals. Overall, the behavior strongly matches a runtime remote-code-execution mechanism rather than a benign utility.
Next steps: Take a moment to review the security alert above. Review
the linked package source code to understand the potential risk. Ensure the
package is not malicious before proceeding. If you're unsure how to proceed,
reach out to your security team or ask the Socket team for help at
support@socket.dev.
Suggestion: Given the AI system's identification of this package as malware, extreme caution is advised. It is recommended to avoid downloading or installing this package until the threat is confirmed or flagged as a false positive.
Mark the package as acceptable risk. To ignore this alert only
in this pull request, reply with the comment
@SocketSecurity ignore npm/@module-federation/node@2.7.48. You can
also ignore all packages with @SocketSecurity ignore-all.
To ignore an alert for all future pull requests, use Socket's Dashboard to
change the triage state of this alert.
Notes: This code is a high-risk remote code execution loader. It fetches JavaScript from attacker-influenceable HTTP(S) URLs and executes it inside Node using vm (runInThisContext for script code and SourceTextModule.evaluate for ESM), while explicitly providing a real require function via eval('require') to the executed payload. It also exposes loaded contexts on globalThis under a computed key derived from attrs. Unless upstream strictly authenticates/allowlists remote origins and locks down loaderHook/attrs inputs, this represents a serious supply-chain/remote-execution threat.
Next steps: Take a moment to review the security alert above. Review
the linked package source code to understand the potential risk. Ensure the
package is not malicious before proceeding. If you're unsure how to proceed,
reach out to your security team or ask the Socket team for help at
support@socket.dev.
Suggestion: Given the AI system's identification of this package as malware, extreme caution is advised. It is recommended to avoid downloading or installing this package until the threat is confirmed or flagged as a false positive.
Mark the package as acceptable risk. To ignore this alert only
in this pull request, reply with the comment
@SocketSecurity ignore npm/@module-federation/sdk@2.8.1. You can
also ignore all packages with @SocketSecurity ignore-all.
To ignore an alert for all future pull requests, use Socket's Dashboard to
change the triage state of this alert.
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:
^2.8.0→^2.8.1^2.8.0→^2.8.1^6.0.16→^6.0.171.61.1→1.62.1~2.1.8→~2.1.9^0.7.1→^0.7.2^2.0.18→^2.0.19^2.0.18→^2.0.19^2.0.18→^2.0.19^2.0.18→^2.0.19^2.0.18→^2.0.19^2.0.18→^2.0.19^2.0.18→^2.0.19^2.0.18→^2.0.19^0.11.4→^0.11.5^0.11.4→^0.11.5^4.3.1→^4.4.1^10.5.4→^10.5.5^10.5.4→^10.5.5^10.5.4→^10.5.5^10.5.4→^10.5.5^4.17.24→^4.17.25^19.2.17→^19.2.18^19.2.3→^19.2.4^1.1.3→^1.1.411.17.0→11.18.0>=11.17.0→>=11.18.0^10.29.7→^10.29.8^10.5.4→^10.5.5^4.7.3→^4.7.4^0.7.58→^0.7.59^3.3.8→^3.3.9Release Notes
module-federation/core (@module-federation/enhanced)
v2.8.1Compare Source
Patch Changes
d901e2c]641a0b6]module-federation/core (@module-federation/rsbuild-plugin)
v2.8.1Compare Source
Patch Changes
d901e2c]module-federation/core (@module-federation/storybook-addon)
v6.0.17Patch Changes
d901e2c]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:
web-infra-dev/rsbuild (@rsbuild/core)
v2.1.9Compare Source
What's Changed
New Features 🎉
Bug Fixes 🐞
Document 📖
Other Changes
Full Changelog: web-infra-dev/rsbuild@v2.1.8...v2.1.9
web-infra-dev/rslint (@rslint/core)
v0.7.2Compare Source
What's Changed
New Features 🎉
require-hookrule by @eryue0220 in #1338Performance 🚀
Bug Fixes 🐞
Document 📖
Other Changes
Full Changelog: web-infra-dev/rslint@v0.7.1...v0.7.2
web-infra-dev/rspress (@rspress/core)
v2.0.19Compare Source
Highlights
🤖 Guide AI agents from generated Markdown
When SSG-MD is enabled, every generated Markdown page now starts with an agent-readable directive pointing to
llms.txt,llms-full.txt, and the Markdown version of the current page:> For AI agents: the complete documentation index is available at https://example.com/llms.txt, the full documentation bundle is available at https://example.com/llms-full.txt, and this page is available as Markdown at https://example.com/guide/index.md.This extends the existing HTML hint to Markdown output. Its URLs automatically respect
siteOrigin,base, locale, and version prefixes, helping agents discover the right machine-readable content from either format.Documentation: SSG-MD ·
injectLlmsHintRelated PR: #3544
🎨 Add icons to generated sidebars and navigation
Use
iconto display an image, inline SVG, emoji, external URL, or data URL before sidebar and navbar labels. Auto-generated sidebars support icons on groups, items, and section headers through_meta.jsonor page frontmatter, while navigation icons can be configured through_nav.jsonorthemeConfig.nav.For a local image, place it in
publicand reference it with an absolute path:[ { "type": "file", "name": "introduction", "label": "Introduction", "icon": "/icon.png", "tag": "new" } ]Icons render before the label, while an existing
tagremains on the right.Documentation: Sidebar icons and tags ·
nav·sidebarRelated PR: #3554
⚡ Speed up
lastUpdatedon large sitesRspress now resolves Git history for all documentation pages in one batched pass instead of spawning one
git logprocess per page. ExistinglastUpdatedconfiguration remains unchanged:In the PR benchmark, Rspress resolved metadata for its 208-page documentation site with two Git processes in about 300 ms. This avoids the process storms that could make large sites spend minutes resolving page metadata.
Documentation:
lastUpdatedRelated PR: #3545
What's Changed
New Features 🎉
Performance 🚀
Bug Fixes 🐞
route.localeRedirectby @SoonIter in #3534Refactor 🔨
Document 📖
Other Changes
Full Changelog: web-infra-dev/rspress@v2.0.18...v2.0.19
web-infra-dev/rstest (@rstest/adapter-rslib)
v0.11.5Compare Source
What's Changed
New Features 🎉
Performance 🚀
Bug Fixes 🐞
Configuration
📅 Schedule: (UTC)
* 0-3 * * 1)🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
👻 Immortal: This PR will be recreated if closed unmerged. Get config help if that's undesired.
This PR was generated by Mend Renovate. View the repository job log.