Skip to content

chore(deps): update dependency @rstest/core to v0.12.2 - #96

Merged
ScriptedAlchemy merged 3 commits into
mainfrom
renovate/rstest-core-0.x
Sep 29, 2026
Merged

ScriptedAlchemy merged 3 commits into
mainfrom
renovate/rstest-core-0.x

Conversation

@renovate

@renovate renovate Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor

This PR contains the following updates:

Package Change Age Confidence
@rstest/core (source) 0.11.12 → 0.12.2 age confidence

Release Notes

web-infra-dev/rstest (@​rstest/core)

v0.12.2

Compare Source

What's Changed

New Features 🎉
Bug Fixes 🐞
Document 📖
Other Changes

Full Changelog: web-infra-dev/rstest@v0.12.1...v0.12.2

v0.12.1

Compare Source

What's Changed

New Features 🎉
Performance 🚀
Bug Fixes 🐞
Refactor 🔨
Document 📖
Other Changes

Full Changelog: web-infra-dev/rstest@v0.12.0...main

v0.12.0

Compare Source

Read the Rstest 0.12 announcement for the full story.

Breaking Changes

If you only use the rstest CLI with a config file, no code changes are needed.

JavaScript API

The experimental JavaScript API is redesigned in 0.12, in one step before 1.0. See Rstest instance for the new API.

  • runRstest is removed. Create an instance with createRstest instead.
  • runCLI moves from @rstest/core to @rstest/core/api.
  • TestRunResult has the same shape as the reporter's onTestRunEnd payload, and status: 'pass' | 'fail' | 'error' replaces ok.
Custom reporters

See Reporter API for details.

  • onTestRunEnd now receives summary, and unhandledErrors is a required SerializedError[] instead of an optional Error[].
  • filterRerunTestPaths is renamed to rerunTestPaths.
  • onExit is now also called after a run, list, or merge finishes normally, not only on an abnormal exit.
Peer dependency range

The adapters, @rstest/browser-react, @rstest/coverage-istanbul, @rstest/coverage-v8, and @rstest/playwright now require @rstest/core@^0.12.0. Upgrade all @rstest/* packages together.

Test environment prebundle

testEnvironment.prebundle now defaults to 'auto'. If a test environment behaves differently after the upgrade, set it to false. See Environment prebundle.

Highlights

Rstest 0.12 adds E2E and Module Federation testing support, makes large test suites faster with VM pools and test environment prebundle, and introduces a new JavaScript API.

E2E testing support

@​rstest/playwright integrates Playwright into Rstest, so unit tests, component tests, and E2E tests share one config, one set of commands, and the same reporters. Use definePlaywrightConfig to get the same defaults as Playwright and customize them when needed. See E2E testing.

import { expect, test } from '@rstest/playwright';

test('page title', async ({ page }) => {
  await page.goto('https://example.com');
  await expect(page).toHaveTitle(/Example/);
});
Module Federation testing support

With the @​module-federation/rstest plugin, tests import remote modules the same way a consumer application does. Rstest loads the real exposed modules and resolves shared dependencies, so integration problems between consumer and producer show up in unit tests. It works in Node, jsdom, happy-dom, and browser mode. See Module Federation.

New vmThreads and vmForks pools

The new vmThreads and vmForks pools reuse workers across test files and create a fresh vm.Context for each file. Each file still gets its own JavaScript realm and module graph, while worker startup, dependency resolution, and V8 compilation are shared. This helps most in suites with many jsdom / happy-dom test files.

On a jsdom benchmark project of 2,400 files and 20,000 tests (15 workers, every process starting from an empty cache):

Pool Wall time
forks 315.17s
vmThreads ⚡ 33.22s

To limit the memory of a single worker, set pool.memoryLimit. Rstest replaces a worker once it exceeds the threshold. See Choose a pool type before switching.

Faster jsdom / happy-dom loading

Test environment prebundle is now enabled by default. Previously, every worker resolved and executed each module file of jsdom or happy-dom one by one. Rstest now builds the environment into one ESM bundle that all workers share.

On a benchmark of 100 files and 1,000 tests:

Environment Native Prebundle Improvement
jsdom 30.0.1 16.99s ⚡ 10.57s 37.8%
happy-dom 20.11.1 6.35s ⚡ 2.98s 53.0%
A new JavaScript API

createRstest makes it easier to integrate Rstest into tools, IDEs, and other Node.js programs. It shares the same core execution capabilities as the rstest command, so you can run tests, watch, list tests, and merge blob reports from code. See Rstest instance.

import { createRstest } from '@rstest/core/api';

const rstest = await createRstest({
  cwd: './packages/app',
  config: { include: ['src/**/*.test.ts'] },
});

const result = await rstest.run();
console.log(result.status, result.summary);
What's Changed
Breaking Changes 🍭
New Features 🎉
Performance 🚀
Bug Fixes 🐞
Refactor 🔨
Document 📖
Other Changes
New Contributors

Full Changelog: web-infra-dev/rstest@v0.11.12...v0.12.0


Configuration

📅 Schedule: (UTC)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR was generated by Mend Renovate. View the repository job log.

@renovate

renovate Bot commented Sep 17, 2026 •

Copy link
Copy Markdown
Contributor Author

⚠️ Artifact update problem

Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.

♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

  • any of the package files in this branch needs updating, or
  • the branch becomes conflicted, or
  • you click the rebase/retry checkbox if found above, or
  • you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:

File name: package-lock.json
npm warn Unknown env config "store". This will error in a future major version of npm. See `npm help npmrc` for supported config options.
npm error code ERESOLVE
npm error ERESOLVE could not resolve
npm error
npm error While resolving: agent-bundle@0.0.0-preview-899755d
npm error Found: @rstest/core@0.12.2
npm error node_modules/@rstest/core
npm error   dev @rstest/core@"0.12.2" from the root project
npm error
npm error Could not resolve dependency:
npm error peerOptional @rstest/core@"^0.11.10" from agent-bundle@0.0.0-preview-899755d
npm error node_modules/agent-bundle
npm error   dev agent-bundle@"https://pkg.pr.new/ScriptedAlchemy/agent-bundle/agent-bundle@899755dc6d" from the root project
npm error
npm error Conflicting peer dependency: @rstest/core@0.11.12
npm error node_modules/@rstest/core
npm error   peerOptional @rstest/core@"^0.11.10" from agent-bundle@0.0.0-preview-899755d
npm error   node_modules/agent-bundle
npm error     dev agent-bundle@"https://pkg.pr.new/ScriptedAlchemy/agent-bundle/agent-bundle@899755dc6d" from the root project
npm error
npm error Fix the upstream dependency conflict, or retry this command with --force or --legacy-peer-deps to accept an incorrect (and potentially broken) dependency resolution.
npm error
npm error
npm error For a full report see:
npm error /runner/cache/others/npm/_logs/2026-09-28T06_10_45_597Z-eresolve-report.txt
npm error A complete log of this run can be found in: /runner/cache/others/npm/_logs/2026-09-28T06_10_45_597Z-debug-0.log

@changeset-bot

changeset-bot Bot commented Sep 17, 2026 •

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: 6297b7a

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 1 package
Name Type
grok-bot-cli Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@renovate
renovate Bot force-pushed the renovate/rstest-core-0.x branch from 6794093 to f12c087 Compare September 23, 2026 16:53
@renovate renovate Bot changed the title chore(deps): update dependency @rstest/core to v0.12.0 chore(deps): update dependency @rstest/core to v0.12.1 Sep 23, 2026
@renovate
renovate Bot force-pushed the renovate/rstest-core-0.x branch from f12c087 to 3fb0ab3 Compare September 25, 2026 14:30
@renovate renovate Bot changed the title chore(deps): update dependency @rstest/core to v0.12.1 chore(deps): update dependency @rstest/core to v0.12.2 Sep 25, 2026
@renovate
renovate Bot force-pushed the renovate/rstest-core-0.x branch 2 times, most recently from d5e21c4 to 8fef55c Compare September 28, 2026 06:10
renovate Bot and others added 2 commits September 29, 2026 00:34
Update package-lock for the Renovate bump, add a patch changeset, and set
legacy-peer-deps so npm ci accepts agent-bundle's still-^0.11 optional peer.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
@cursor
cursor Bot force-pushed the renovate/rstest-core-0.x branch from 8fef55c to 9ac18c7 Compare September 29, 2026 00:38
@renovate

renovate Bot commented Sep 29, 2026

Copy link
Copy Markdown
Contributor Author

Edited/Blocked Notification

Renovate will not automatically rebase this PR, because it does not recognize the last commit author and assumes somebody else may have edited the PR.

You can manually request rebase by checking the rebase/retry box above.

⚠️ Warning: custom changes will be lost.

Rebuild the committed agent-bundle evidence/manifest so the source
snapshot hashes match the lockfile and changeset on this branch.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
@ScriptedAlchemy
ScriptedAlchemy merged commit 09e977c into main Sep 29, 2026
2 checks passed
cursor Bot pushed a commit that referenced this pull request Sep 29, 2026
Rebased onto main (#114 verify retry + #96 @rstest/core 0.12.2) and
rebuilt agent-bundle artifacts so the committed snapshot matches source.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
ScriptedAlchemy added a commit that referenced this pull request Sep 29, 2026
)

* feat: scaffold ChatGPT Desktop CDP adapter and MCP/CLI tools

Add a ChatGptDesktopAdapter with a local-only CDP implementation, DOM
selectors in one module, macOS relaunch helper, chatgpt_desktop_* MCP
tools, gbot chatgpt-desktop CLI commands, and app-server fallback that
reports backend. Includes rstest coverage with a fake adapter and a minor
changeset.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* chore: rebuild artifact with chatgpt_desktop MCP tools

Include the compiled grok-bot MCP server and gbot CLI routes for the
ChatGPT Desktop CDP scaffold so packed installs expose the new tools.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* fix: align ChatGPT Desktop DOM module with exploration results

Tighten cdp-dom selectors against the macOS Desktop probe: exact main
window URL filtering, _MainContentSurface thread root, named experimental
composer constants, and focus → Input.insertText → submit send order.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* test: cover CDP-first facade with app-server backend fallback

Prove chatgpt_desktop_* prefer CDP, reuse codex-bridge when CDP is
unreachable, and tag results with backend cdp|app-server. NotImplemented
DOM gaps do not trigger fallback.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* feat: align ChatGPT Desktop CDP send/wait/read with live DOM

Update cdp-dom and the adapter to the verified Desktop behaviors: project
new-chat button, composer focus+insertText+Enter, Stop/final-assistant
reply detection, conversation-id annotation, Loading task wait, and
column-reverse mouseWheel full history reads with limit/full.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* docs: document chatgpt-desktop project send and full read

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* feat: deep-read and list via app-server; keep send/wait on CDP

Desktop local:<conversationId> maps to bare app-server thread ids.
Visible reads stay on CDP; full/deep history uses thread/read (wheel
crawl last-resort). List prefers app-server and merges CDP sidebar
fields. Send, new-thread-in-project, and wait-for-reply stay CDP-only.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* chore: retrigger Package CI for app-server deep-read redesign

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* feat: app-server list/search/read per 0.158.0; fix modelProviders

Strip local: before app-server RPCs. Read via thread/read metadata plus
thread/turns/list (itemsView full); never resume for reads. List and
codex list-threads pass modelProviders:[]. Surface richer thread fields,
remote-thread typed errors, and search. CDP keeps send/wait/selected.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* feat: merge remote-control threads into desktop list

Parse ~/.codex/.codex-global-state.json remote-thread-summaries-v3
defensively and merge into chatgpt_desktop_list_threads with location,
hostId, hostName, host filter, and groupBy=host. read_thread returns a
typed remote error with a host app-server hint. Fixture-backed tests.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* feat: separate host and modelProvider list filters; add list_hosts

Keep host (all|local|id/name) and modelProvider→modelProviders as
independent list/search filters. Add chatgpt_desktop_list_hosts /
gbot chatgpt-desktop hosts with thread counts, friendly names, and
modelProviders discovered via app-server list method or distinct
thread/list values (hostsSource / modelProvidersSource reported).

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* fix: include remotes in listHosts even without global-state env

When listRemoteThreads is injected (or remotes arrive without a matching
CODEX_HOME), still surface those hostIds with accurate thread counts.
Rebuild artifacts for chatgpt_desktop_list_hosts.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* fix: codex list/read/send bugs from desktop work

- list-threads: modelProviders:[], nextCursor paging, useStateDbOnly
  with full-scan fallback when the state DB returns nothing
- normalize Desktop local: thread ids on every codex threadId acceptor
- map remote-control "thread not loaded" to REMOTE_THREAD_NOT_LOADED
  with hostId/hostName on codex send and conversation open
- readCodexThread uses thread/read metadata + thread/turns/list
  (never deprecated includeTurns)
- outcomeFromError forwards hostId/hint/code; allowlist matches
  normalized ids

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* fix: CDP production risks from Ripwire audit

Resolve new-thread send to data-response-annotation-conversation
(never return local:client-new-thread:* as threadId). Harden
column-reverse history wheels, Loading task timeouts, local:/bare
sidebar dedupe+open, exact MAIN_WINDOW_URL attach, and keep
loopback + useStateDbOnly cold-list guards covered by tests.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* fix: host/modelProvider are freeform strings with dynamic discovery

Zack hard requirement: no hardcoded hosts, machines, connections, or
providers in schemas, enums, docs defaults, or tests beyond fixtures.
host and modelProvider accept any string; descriptions point to
chatgpt_desktop_list_hosts. Add a test that injects an unknown hostId
into the global-state fixture and proves list_hosts + filtering work
with no code change.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* chore: regenerate artifact manifest after rebase onto main

Rebased onto main (#114 verify retry + #96 @rstest/core 0.12.2) and
rebuilt agent-bundle artifacts so the committed snapshot matches source.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* test: include chatgpt_desktop_list_hosts in MCP tool inventory

Package CI failed because tools.test.ts still expected the pre-list_hosts
tool set after rebase.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* chore: refresh artifact source snapshot after tools.test fix

The package CI snapshot check requires the committed manifest
sourceInputs hash to match tests/route-unit/tools.test.ts.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* Fix Desktop CDP isolation, reply tracking, and dynamic thread inventory

* chore: refresh artifact snapshot after CDP review fixes

Rebuild agent-bundle evidence/manifest so sourceInputs match the
Desktop CDP isolation/reply-tracking commit that just landed.

Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>

* Exclude local plugin checkout from artifact source snapshots

* Fix ChatGPT Desktop e2e discovery and thread handling

* Expose complete ChatGPT Desktop MCP workflow and skill

* fix: page ChatGPT Desktop MCP results below document cap

* fix: page merged Desktop inventory and resolve project scope

* fix: address Codex review of Desktop search, read fallback and backend provenance

---------

Co-authored-by: Cursor Agent <cursoragent@cursor.com>
Co-authored-by: Zack Jackson <ScriptedAlchemy@users.noreply.github.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants