Skip to content

build(deps): bump callstackincubator/react-native-harness from 1.6.0 to 1.7.0 in the all-actions group - #118

Open
dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/all-actions-125b0a1ddf
Open

dependabot[bot] wants to merge 1 commit into
mainfrom
dependabot/github_actions/all-actions-125b0a1ddf

Conversation

@dependabot

@dependabot dependabot Bot commented on behalf of github Nov 9, 2026

Copy link
Copy Markdown
Contributor

Bumps the all-actions group with 1 update: callstackincubator/react-native-harness.

Updates callstackincubator/react-native-harness from 1.6.0 to 1.7.0

Changelog

Sourced from callstackincubator/react-native-harness's changelog.

1.7.0 (2026-11-03)

🚀 Features

  • Failed assertions now print a - Expected / + Received diff below the error (#202) message, the same way Vitest shows them. This works for regular assertions and for every failed expect.soft call. Plugins can read the diff from the new optional diff field on test errors.

  • Run diagnostics now include resource telemetry. Set diagnostics to true or to an object (enabled, probes, sampleIntervalMs) to sample host load, CPU and memory pressure, Harness process memory and event loop lag, per-milestone process listings on macOS, and the process count and last boot stage of iOS simulators. Entries are written to .harness/diagnostics/<sessionId>.jsonl as the run progresses, so cancelled or timed-out CI jobs keep their data. Metrics appear as graphed tracks in the Perfetto trace, and a key-number summary (boot wait, time to ready, peak load, peak compressed memory, swapouts, event loop lag) is printed, saved to <runId>.summary.json and added to the GitHub Actions job summary. (#205)

  • iOS runs no longer compile the permission helper from scratch. Harness now uses the prebuilt XCTest agent that ships with the Apple platform package, so a run reaches a ready agent in about a second instead of waiting on an Xcode build, and CI no longer needs to cache that build. The shipped agent works from Xcode 26 up to the Xcode version a release was packed with; on any other Xcode, Harness builds it locally as before. Set HARNESS_IOS_XCTEST_PREBUILT_ROOT to point at artifacts packed elsewhere, or HARNESS_SKIP_XCTEST_PREBUILDS=1 to always build locally. (#209)

    Physical devices now sign a shipped artifact locally instead of building one. A runnable device build has to carry your own certificate and a profile that lists your device, so Harness takes the unsigned artifact and re-signs a private copy with a certificate picked by matching your profile against your keychain — offline, in about a second. It selects a profile only when that profile covers the agent's bundle ids and your device and has not expired, and otherwise builds locally as before, which remains the path that can reach the Developer Portal. If your account cannot issue a profile covering the agent's identifiers, set device.codeSign.bundleIdPrefix to rewrite them to your own prefix; if your keychain holds several development certificates, set device.codeSign.signingIdentity to one SHA-1, since codesign rejects the ambiguous name.

  • In Jest's CI mode (on by default in CI), toMatchImageSnapshot fails when its snapshot does not exist instead of writing it and passing, and saves the received image as __diff_output__/<name>-actual.png. A project whose CI relied on missing snapshots being written commits those images as its snapshots, or runs with --ci=false on a machine with the comparing device. Like Jest's own snapshot matchers, toMatchImageSnapshot cannot be used with .not. (#249, #198, #227, #298)

  • On Android 8 and later, screen.screenshot() captures what a TextureView or a SurfaceView shows, such as a GPU-rendered canvas, a video or a camera preview, instead of transparent pixels. An on-screen capture now copies what the window shows, so effects only the GPU renderer draws, such as elevation shadows and filter blurs, appear in it, and an Android baseline recorded without them needs recording again; a capture whose copy fails, or whose window is not shown, as while the screen is off, resolves null instead of a different image. An element under a scale or rotation transform is captured in the box it covers on the screen, as on iOS. An element partly off the screen, scaled to nothing or detached from the window is still drawn by itself, at its scroll offset, so a TextureView or a SurfaceView in it still comes out transparent; on Android 8.0 and 8.1 a window with elevation is drawn from its view tree, as before, with its SurfaceViews behind it; and a SurfaceView set above its window with setZOrderOnTop is still left out. (#257, #197)

  • @react-native-harness/tools now exposes a ProcessManager on the Harness (#269, #166) context through getProcessManager(). Tests can inject the scripted createFakeProcessManager() from @react-native-harness/tools/testing to answer commands by name and arguments, assert on the calls made, and simulate failures without running real processes.

🩹 Fixes

  • On Android, capturing a screenshot of a region now covers exactly the pixels of a view laid out at the same position and size. Previously, fractional pixel densities could make the region one pixel smaller than the matching element capture. (#289, #280)

  • On CI, Harness now warns (and adds a GitHub Actions annotation) when the runner is already saturated before the run starts, naming the busiest processes. When the platform does not become ready in time, the error reports the peak load, average idle CPU, minimum free memory and swapped-out memory observed during startup, and says when the host was starved instead of suggesting a larger timeout. On iOS simulator hosts with 3 cores or less than 8 GB of memory, the Metro prewarm now starts after the simulator has booted instead of competing with it. On CI hosts with 3 cores or less than 8 GB, Harness now stops the iOS simulator's background services that tests do not use (photo analysis, widgets, Siri, iCloud sync) right after boot, which cuts the time until the simulator is ready from several minutes to about two. Turn this on or off with the slimOnCI option of appleSimulator(). (#295)

  • Every iOS screen.screenshot() capture (full screen, region, and element, whether fully or partly on screen) is now 8-bit sRGB. Previously, on wide-colour devices and simulators, the on-screen capture paths produced 16-bit Display P3 images, so the same colour could differ depending on how it was captured. iOS image snapshots recorded on wide-colour devices will need to be re-recorded. (#291, #281)

  • On CI hosts with 3 cores or less than 8 GB of memory, Harness now keeps the iOS simulator's unused background services from starting when it boots the simulator, instead of stopping them after the boot has already paid for them. It also turns off more of them, including wallpapers, Spotlight and on-device intelligence. Push notifications, StoreKit, in-app purchases and universal links keep working, and services the simulator needs to boot or to launch apps under XCTest are left on. A simulator that is already booted when Harness starts is now left as it is. (#304)

  • Screenshots received for toMatchImageSnapshot are now removed from the system temp folder once the comparison finishes, instead of accumulating with every run. (#286, #276)

  • On Android and iOS, screen.screenshot() of an element that has zero size or is no longer available now returns null instead of capturing the whole window. (#290, #279)

  • The Android platform now works when Harness runs on a Windows host. Harness (#192, #191, #183) finds the SDK's adb.exe, emulator.exe, sdkmanager.bat and avdmanager.bat, looks in %LOCALAPPDATA%\Android\Sdk when ANDROID_HOME is not set, and installs SDK packages and creates emulators without needing bash.

  • The connection between the Harness CLI and the app now sends screenshot data in flow-controlled chunks on its own channel, with test events and heartbeats sent ahead of it. The CLI and the app runtime must use the same Harness version. (#203)

  • When the app crashes, disconnects, or stops responding in the middle of a test (#204, #1695) file, the failure now names the test that was running, for example Running test: "TestObjectCpp › thisObject returns a HybridObject of the same type". Failures outside a test, such as during startup or in beforeAll, keep their current message.

  • Harness runs use less CPU. Jest now builds its file map in a single process instead of starting a pool of worker processes on every cold start or file change, and it no longer indexes Harness's .harness cache or iOS and Android build output (ios/Pods, ios/build, android/build, android/.gradle, android/app/build, android/app/.cxx). Jest also finds files without watchman, which is now faster than querying it; Metro still uses watchman. (#206)

  • Harness now starts correctly in monorepos that contain more than one copy of react-native. Previously React Native's InitializeCore could be silently skipped, so the app failed at startup with ReferenceError: Property 'window' doesn't exist and Harness timed out waiting for it to become ready. (#207)

  • Android app launches now restore port forwarding, allowing test runs to recover when ADB reverse mappings disappear between test files or startup retries. (#211, #210)

  • When a platform runner or Metro itself fails while Metro is starting, Harness reports that error instead of exiting on an unhandled AbortError, and an aborted run stops waiting for Metro at once. (#251, #200)

  • react-native-harness --metroPort <port> is accepted on the command line, as documented, instead of stopping on an unrecognized option, and a port the config would reject stops the run before it starts. (#250, #199)

  • Use @​react-native-harness/ui in iOS apps built with React Native SwiftPM integration without a local package patch. (#213, #212)

... (truncated)

Commits
  • 840a8ae chore: release v1.7.0
  • 13903dc fix(ui): capture TextureView and SurfaceView pixels in Android screenshots (#...
  • 1641f1c fix(bridge): fail a missing image snapshot in CI mode instead of writing it (...
  • a73ee6b test(jest): use a folder below a file for the unwritable diagnostics case (#302)
  • 2c09dfa feat(platform-ios): boot CI simulators with unused services already off (#304)
  • 26b67ea test(playground): expect element screenshots to cover the element's rounded e...
  • 4a8132c feat: make iOS runs on small CI runners reliable and explain host starvation ...
  • b950cbd ci(e2e): key playground app caches on native fingerprints (#294)
  • 91626d2 feat(jest): name the running test when the app crashes or disconnects (#204)
  • 32a67b3 feat: show expected/received diffs for failed assertions (#202)
  • Additional commits viewable in compare view

Dependabot compatibility score

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 commands and options

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

Bumps the all-actions group with 1 update: [callstackincubator/react-native-harness](https://github.com/callstackincubator/react-native-harness).


Updates `callstackincubator/react-native-harness` from 1.6.0 to 1.7.0
- [Release notes](https://github.com/callstackincubator/react-native-harness/releases)
- [Changelog](https://github.com/callstackincubator/react-native-harness/blob/main/CHANGELOG.md)
- [Commits](callstackincubator/react-native-harness@v1.6.0...v1.7.0)

---
updated-dependencies:
- dependency-name: callstackincubator/react-native-harness
  dependency-version: 1.7.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
  dependency-group: all-actions
...

Signed-off-by: dependabot[bot] <support@github.com>
@dependabot
dependabot Bot requested a review from a team as a code owner November 9, 2026 08:25
@dependabot dependabot Bot added dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code labels Nov 9, 2026
@changeset-bot

changeset-bot Bot commented Nov 9, 2026

Copy link
Copy Markdown

⚠️ No Changeset found

Latest commit: da8cf52

Merging this PR will not cause a version bump for any packages. If these changes should not result in a new version, you're good to go. If these changes should result in a version bump, you need to add a changeset.

This PR includes no changesets

When changesets are added to this PR, you'll see the packages that this PR includes changesets for and the associated semver types

Click here to learn what changesets are, and how to add one.

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

dependencies Pull requests that update a dependency file github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants