Skip to content

feat(macos): merge React Native through the RedBox 2.0 cutoff - #3058

Open
Saad Najmi (Saadnajmi) wants to merge 576 commits into
0.85-mergefrom
saadnajmi/0-85-redbox2-merge
Open

Saad Najmi (Saadnajmi) wants to merge 576 commits into
0.85-mergefrom
saadnajmi/0-85-redbox2-merge

Conversation

@Saadnajmi

@Saadnajmi Saad Najmi (Saadnajmi) commented Jul 29, 2026

Copy link
Copy Markdown
Collaborator

Current release stack

Depends on #3033. Upstream RedBox cutoff; #3054 follows.

Validation and backups

The branch-specific repaired source passed hardened immutable installation, constraints, and its complete release-helper selection. The selected 18-head packet records 1,406 passing helper tests. Exact source-tree equivalence is used for rewritten endpoints where applicable; the two changed linear RC checkpoints were tested separately.

Native/API evidence retains its recorded scope. The SwiftPM and RNTester repairs have six focused native build passes. Public stable versions and runtime/API contents were preserved except for the independently reviewed SwiftPM destination repair where applicable.

Public-registry lock correction passed all 18 hosted generation, hardened immutable, constraints, and metadata-audit jobs in run 35769816507. Only equivalent executable-path spelling changes are permitted; dependency versions, checksums, and ranges are unchanged. The previous functional test results remain applicable to this metadata-only correction. Fresh GitHub CI and review remain required. Previous heads are preserved on the same repository under backup/pre-ci-repair-20260922/<original-branch> and backup/pre-public-registry-20260922/<original-branch>; local complete-history bundles were verified as well.

The 0.87 PR sequence is one first-parent path: #3037#3104#3105#3106#3100#3101#3107. The redundant #3102/#3103 reviews are consolidated into #3105.

This section supersedes earlier stack order, source identity, and validation-status notes below.


Summary

  • preserve the genuine broad merge c1798b51 with ordered parents dcd3d603 and 78a740d4
  • retain the broad-merge artifact corrections from e3351d0a
  • transpose the Hermes V1 0.12 CI resolution into the broad-merge layer

This is the lower PR in a two-PR draft stack. #3054 contains the RCTUIKit compatibility primitives and RedBox 2.0 AppKit port and will be retargeted onto this branch.

Topology

The first-parent order is:

  1. c1798b51c75f09c2b8585bd6ceb8ccc2dee31dc7
  2. e3351d0afc5432314e586f4fd6fd8d516e51355f
  3. 16c149f6888b2065485ecb97075087117084ac20

The merge commit is unchanged. Its ordered parents remain:

  1. dcd3d60324c220393aae7729bb538235f3c70416
  2. 78a740d40aa2f9284b4568cb14307628e0f1d3f1

The deterministic PR head tree is 99eaaeccb310145d3ead2f17dc63b424e68251d7.

Validation

Final CI follow-up

This branch receives only these independently reviewed follow-up paths:

  • .github/scripts/__tests__/resolve-hermes-test.js
  • packages/react-native/ReactNativeApi.d.ts
  • packages/react-native/scripts/ios-prebuild/__tests__/hermes-test.js

The complete 16-head batch passed 92 recorded validation commands, including branch-specific API revalidation/generated TypeScript, full formatting checks, and combined targeted suites where applicable. Native changes are limited to the reviewed #3033 destination guards (also present in stable 0.85) and #3104's sidecar-copy correction (already present in its descendants). Exact source equivalence preserves earlier native results elsewhere. The public-registry lockfiles and package manifests remain byte-identical.

Previous heads are backed up at backup/pre-ci-followup-20260922/<original-branch> on their source repository. Fresh current-head CI remains required. The one-first-parent 0.87 sequence is preserved.

Dawid Małecki (coado) and others added 30 commits March 31, 2026 08:32
…56243)

Summary:
Pull Request resolved: react#56243

Modifies C++ API parser config to accept `exclude_symbols` at the platform level and sets `Android` symbols to be excluded from the ReactApple snapshot.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D98298766

fbshipit-source-id: 70b39fe4935e6791701c173e7c9e12532c2817a5
Summary:
Pull Request resolved: react#56245

Removes feature flags from the C++ public API snapshots as they are considered private. This greatly reduces snapshots size.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D98312529

fbshipit-source-id: e6aad9d930c7c77300329c25668dc2fc3a4686f2
Summary:
Pull Request resolved: react#56242

Excluded symbols that contain "UnstableLegacy" from public stable C++ API snapshot, that is `UnstableLegacyViewManagerAutomaticComponentDescriptor` and `UnstableLegacyViewManagerInteropComponentDescriptor`.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D98317003

fbshipit-source-id: deb4631a26ecb138007cf4958dbabb57ef3739cc
…56244)

Summary:
Pull Request resolved: react#56244

Excludes symbols marked as Experimental from the C++ public API snapshots. Types with the "Experimental" prefix are explicitly not stable API — they represent features still under active development and are subject to change or removal without notice.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D98454721

fbshipit-source-id: 7f7488fab6bc94c52b94a3ae2d9a7a7914815d63
…react#56249)

Summary:
Pull Request resolved: react#56249

Prevents iOS Switch component leaking into the ReactAndroid snapshot by adding `*/components/switch/iosswitch/*` path to the `exclude_patterns` in the parser config.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D98473064

fbshipit-source-id: de25c4cbe839f8a065b8465e48a2b8c2a5ba81d7
…ot (react#56251)

Summary:
Pull Request resolved: react#56251

Excludes InputAccessory which is an iOS-only component with no Android support at any layer. In the `InputAccessoryView.js` there is explicit iOS guard which logs warning on Android.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D98478125

fbshipit-source-id: 871923e001024971167a7bb2eb900ca3867983a4
…eact#56250)

Summary:
Pull Request resolved: react#56250

Excludes iOS-specific symbols from the ReactAndroid C++ API snapshot. The snapshot contains iOS native modules CxxSpec templates, their data structs, and bridging structs that have no relevance on Android. These symbols leaked because the Android codegen generates CxxSpec templates for ALL JavaScript module specs regardless of platform.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D98480080

fbshipit-source-id: a5990c4769456ab756095129851eb4e8dbeda912
…#56253)

Summary:
Pull Request resolved: react#56253

Renames flag for verifying that the C++ public API snapshot is with sync with the actual public API surface to match the JS API command.

Changelog:
[Internal]

Reviewed By: huntie

Differential Revision: D98484129

fbshipit-source-id: ec806353f263b00e5060d9e7f0333bcf4cced148
Summary:
Pull Request resolved: react#56286

[changelog](https://github.com/facebook/flow/blob/main/Changelog.md)
Changelog: [Internal]

Reviewed By: gkz

Differential Revision: D98860515

fbshipit-source-id: 196ffafcee417ac2949822848fe7752070a2c30a
Summary:
Pull Request resolved: react#56207

Changelog: [Internal]

Reviewed By: cipolleschi

Differential Revision: D96101927

fbshipit-source-id: 06c6dd11c145be44bcdd97f14683a222c66c96c6
Summary:
Add Changelog for 0.85.0-rc.7

## Changelog:
[Internal] - Add Changelog for 0.85.0-rc.7

Pull Request resolved: react#56276

Test Plan: N/A

Reviewed By: cipolleschi

Differential Revision: D98792883

Pulled By: alanleedev

fbshipit-source-id: c21c189e35d3eca3a013e2e924c87725cec86153
Summary:
Adds missing `mixBlendMode: 'plus-lighter'` which has full support on CSS across all browsers (as opposed to, for example, `plus-darker`)

iOS: ended up using linear dodge blend mode which should be identical, I tried using `@"addition"` which should've used `CIAdditionCompositing` but that didn't work, although I did confirm `maximum` does work and apply  `CIMaximumCompositing`, funny stuff, can't wait for SwiftUI layer to take this over

Android works as expected with its `BlendMode.PLUS`

## Changelog:

[GENERAL] [ADDED] - Add mixBlendMode plus-lighter

Pull Request resolved: react#56278

Test Plan: <img width="726" height="822" alt="image" src="https://github.com/user-attachments/assets/6f8a235c-f79b-4739-9d6c-90c989bad5f5" />

Reviewed By: javache, jorge-cab

Differential Revision: D98842036

Pulled By: NickGerleman

fbshipit-source-id: 3f4bf83918276579c48c784479d2a20bf2a2ba4c
Summary:
Pull Request resolved: react#56282

Fixes react#56185
Fixes react#56186
Fixes react#56187

Delete the `fixTextClippingAndroid15useBoundsForWidth()` feature flag and all code gated behind it. This flag was never shipped, and the new code path has been implicated in several bugs.

The change removes:
- The feature flag definition and all generated plumbing (C++, JNI, Kotlin, JS)
- The visual-bounds-based width measurement path in `TextLayoutManager.kt`
- The `setUseBoundsForWidth(true)` call in `buildLayout()`
- The MobileConfig parameter (`react_fabric.fix_text_clipping_android_15_use_bounds_for_width`)
- The Facebook Android and OSS Experimental overrides

The old advance-based width logic is retained as the sole code path.

Changelog: [Internal]

Reviewed By: cortinico

Differential Revision: D98427218

fbshipit-source-id: 7c322353d9c0a0548386a486ecd4280b73a66872
…fined with props 2.0 (react#56288)

Summary:
When Android props 2.0 diffs a `View` where `zIndex` changes from a value to `undefined`, `HostPlatformViewProps::getDiffProps` calls `zIndex.value()` and throws `bad_optional_access`:

https://github.com/user-attachments/assets/89752243-ff48-42c7-a584-b47a091b4a4d

This change emits `folly::dynamic(nullptr)` when `zIndex` is cleared instead.

## Changelog:

[ANDROID] [FIXED] - Fixed a crash when clearing `zIndex` with props 2.0 enabled

Pull Request resolved: react#56288

Test Plan:
Use the repro in `packages/rn-tester/js/examples/Playground/RNTesterPlayground.js`:

```js
function Playground() {
  const [toggle, setToggle] = React.useState(false);

  return (
    <View style={styles.container}>
      <Button title="Toggle" onPress={() => setToggle(t => !t)} />
      <View
        style={{
          backgroundColor: toggle ? 'blue' : 'red',
          height: 100,
          width: 100,
          position: 'absolute',
          zIndex: toggle ? undefined : 1,
        }}
      />
    </View>
  );
}
```

1. Enable Android props 2.0:

```
  override fun enableAccumulatedUpdatesInRawPropsAndroid(): Boolean = true
  override fun enableExclusivePropsUpdateAndroid(): Boolean = true
  override fun enablePropsUpdateReconciliationAndroid(): Boolean = true
```

2. run RNTester Playground on Android, and press `Toggle` to switch `zIndex` between `1` and `undefined`.

This is with the issue fixed:

https://github.com/user-attachments/assets/11253c23-b235-4e70-89a3-0d7bd07937f5

Reviewed By: javache

Differential Revision: D98960669

Pulled By: NickGerleman

fbshipit-source-id: d4a98434c599d2298c5cfc8c6895988ed0743af6
Summary:
Pull Request resolved: react#56293

Changelog: [Internal]

Reviewed By: mdvacca

Differential Revision: D98942266

fbshipit-source-id: b6df078e4e10191b464b3aebc70d55cca5f12fa2
Summary:
Pull Request resolved: react#56300

Changelog: [Internal]

Reviewed By: marcoww6

Differential Revision: D99004126

fbshipit-source-id: dfedc13c867cb768777e2ba65256a2c40ffb1d08
Summary:
Pull Request resolved: react#56289

Changelog: [GENERAL][FIXED] Link VirtualView component

I saw D98039999 and I wanted to check how the new components are working in OSS, and currently they don't. VirtualView component isn't correctly linked in OSS. This diff addresses that.

Note that VirtualView in OSS requires `babel-plugin-transform-flow-enums` which is not part of the default template.

Reviewed By: CalixTang

Differential Revision: D98887952

fbshipit-source-id: f06ec9d4581c6fa3f2185641cb4b9f7acb8f557e
…56292)

Summary:
Pull Request resolved: react#56292

The TinyMap is a helper class under internal directory, not referenced anywhere in the snapshot, and considered unsafe (from the comment). It is not part of any module, so it is better to remove that from the snapshot.

The `packAnimatedProps` method is used in `AnimationBackend` for translation from `AnimatedProps` to `folly::dynamic` and should not be used outside of React Native.

Changelog:
[Internal]

Reviewed By: cipolleschi

Differential Revision: D98907855

fbshipit-source-id: e3a371cc088000a23f1ce1121fda808494979140
…EY (react#56304)

Summary:
Pull Request resolved: react#56304

Add support for specifying a custom `timeStamp` in the `Event` constructor options via a private symbol key (`EVENT_INIT_TIMESTAMP_KEY`) defined in `EventInternals`. This is for internal construction of events using a custom timestamp (instead of event object creation), for use cases like dispatching events from the host platform using the original timestamps.

- Added `EVENT_INIT_TIMESTAMP_KEY` symbol to `EventInternals`
- Added `setEventInitTimeStamp(eventInit, timeStamp)` helper function in `EventInternals` that validates the type and sets the symbol-keyed property on the event init object
- Updated the `Event` constructor to read the custom timestamp from options if present, falling back to `performance.now()`
- Added Fantom tests for custom timestamp and zero as a valid timestamp

Changelog: [Internal]

Reviewed By: huntie

Differential Revision: D99076591

fbshipit-source-id: 2ea00394de885a5f338c1b3fe4792d5b4768cd7b
Summary:
Pull Request resolved: react#56295

Changelog: [Android][Added] - Pass event object to `BackHandler` `hardwareBackPress` events to access timeStamp from native event.

BackHandler on Android emits the `hardwareBackPress` event with a `null`
payload — no timestamp or event data. This means there is no way for
handlers to know when the user actually pressed the back button, which
prevents accurate performance tracing for back navigations.

This diff:
- Sends `SystemClock.uptimeMillis()` as `timestamp` in the native
  `DeviceEventManagerModule.emitHardwareBackPressed()` event payload
- Creates a new `HardwareBackPressEvent` class extending the DOM `Event`
  class, which overrides the `timeStamp` getter to return the native
  timestamp (falling back to `performance.now()` if unavailable)
- Makes the public constructor throw `TypeError("Illegal constructor")`
  following the `PerformanceEntry` pattern
- Updates all BackHandler platform files (Android, iOS, macOS, Windows)
  and type definitions (Flow, TypeScript) to create and pass the event
  to handlers
- Updates the BackHandler mock to pass events in `mockPressBack`
- Adds Fantom integration tests for both `HardwareBackPressEvent` and
  `BackHandler`

Reviewed By: huntie

Differential Revision: D98941079

fbshipit-source-id: baca35947cd7e8f598e9e040059579fb6e19553e
Summary:
scheduleCallback() and pause() held synchronized(paused) while calling
ReactChoreographer.postFrameCallback/removeFrameCallback, which acquire
synchronized(callbackQueues). ReactChoreographer dispatches frame
callbacks inside synchronized(callbackQueues), invoking
executeFrameCallback -> scheduleCallback -> synchronized(paused).

This is a lock ordering inversion: background thread acquires paused
then callbackQueues, main thread acquires callbackQueues then paused.

Fix: move postFrameCallback/removeFrameCallback calls outside the
synchronized(paused) block. The atomic state check (paused +
callbackPosted) stays inside the lock, only the ReactChoreographer
interaction moves outside.

Why this is safe:
- callbackPosted.getAndSet(true) inside the lock guarantees at most one
  thread proceeds to post. A concurrent scheduleCallback will see
  callbackPosted=true and bail out.
- If pause() runs between the lock release and postFrameCallback:
  pause sets paused=true and callbackPosted=false, then calls
  removeFrameCallback. Two outcomes depending on ordering inside
  callbackQueues (which serializes both calls):
  (a) post runs first, then remove cancels it — clean.
  (b) remove runs first (nothing to remove), then post adds a callback.
      That callback fires once, executeFrameCallback sees paused=true
      via scheduleCallback and does not re-post. Net effect: one extra
      no-op frame, then the loop stops.
- resume() already operated without synchronized(paused) before this
  change, so no new races are introduced on that path.

## Changelog:
[Android] [Changed] - AnimationBackendChoreographer doesn't guard the ReactChoreographer post/remove with synchronized(paused)

Reviewed By: zeyap

Differential Revision: D99099455

fbshipit-source-id: 5c5e9e76ec23fd300a0a67c98b70a9c5bdb08f30
Summary:
Pull Request resolved: react#56273

Adds a new, experimental `ReactNativeApplication.unstable_fastRefreshComplete` CDP event, emitted to subscribed active CDP sessions when a Fast Refresh update completes.

**Notes**

- As with D97486551, we reuse the `changeId` block in `HMRClient.js`, ensuring duplicate updates for the same change are not reported.

Changelog: [Internal]

Reviewed By: GijsWeterings, hoxyq

Differential Revision: D98493216

fbshipit-source-id: b0b81a210fb84873e9358aa5484038062f110103
…ule (react#56257)

Summary:
Pull Request resolved: react#56257

## Changelog:

[General] [Changed] - move ViewTransition APIs not for react reconciler to its own TurboModule

Move `unstable_getViewTransitionInstance` which is not consumed by react reconciler out of UIManagerBinding into a standalone NativeViewTransition CxxTurboModule, following the NativeDOM pattern. This avoids bloating UIManager with ViewTransition-specific APIs.

Reviewed By: christophpurrer

Differential Revision: D98360009

fbshipit-source-id: 191d0c8cc39fbe1cff87e12ad9a99d5e125b0250
Summary:
Pull Request resolved: react#56302

Changelog: [Internal]

migrate `ProgressBarAndroid` from Jest to Fantom

Note: AndroidProgressBar does not expose props in the Fantom rendered output, so the test only verifies that the component renders. The old Jest snapshot verified JS-level props via the shallow renderer, but those aren't available through Fantom's native rendering pipeline for this component.

Reviewed By: sammy-SC

Differential Revision: D98998943

fbshipit-source-id: 6c570eaed1639e18cb54e29920c22aa9b9397615
)

Summary:
Guard `ReactViewGroup.addChildrenForAccessibility` against transient non-descendant races during accessibility traversal on Android.

This replaces direct `super.addChildrenForAccessibility(...)` calls with a small wrapper that:
- catches `IllegalArgumentException`
- only swallows the specific "descendant of this view" case
- rethrows all other `IllegalArgumentException`s

## Why
There are recurring crashes with stack traces ending in:
`ViewGroup.offsetRectBetweenParentAndChild` -> `offsetDescendantRectToMyCoords` -> `addChildrenForAccessibility` -> `IllegalArgumentException: parameter must be a descendant of this view`.

This can happen when accessibility is traversing children while views are being re-parented/removed.

Related reports:
- react#32649
- react#38925
- react#7377
- kirillzyusko/react-native-keyboard-controller#961
- kirillzyusko/react-native-keyboard-controller#962
- dotnet/maui#32927

There is also precedent in RN for handling this class of non-descendant race defensively:
- react#55273

## Scope
This is intentionally minimal and localized to accessibility child collection in `ReactViewGroup`. Behavior is unchanged in the non-racy path.

## Changelog:
[Android] [Fixed] - Guard `ReactViewGroup.addChildrenForAccessibility` against transient non-descendant accessibility traversal crashes.

Pull Request resolved: react#56182

Test Plan: Validated in a downstream RN Android app on Android 16 with repeated sheet/modal open-close stress and active accessibility hierarchy traversal; crash reproduces before patch and no longer reproduces with this guard.

Reviewed By: jorge-cab

Differential Revision: D97861147

Pulled By: Abbondanzo

fbshipit-source-id: 15e624a94d5acd99777a7426787b52d8e85cdf8a
Summary:
Pull Request resolved: react#56318

[changelog](https://github.com/facebook/flow/blob/main/Changelog.md)
Changelog: [Internal]

Reviewed By: gkz

Differential Revision: D99477741

fbshipit-source-id: 3d3175111b128ae85c75db55d7e2f1d4bf3e1372
Summary:
Pull Request resolved: react#56337

Feature is currently always on.

## Changelog:

[internal]

Reviewed By: marcoww6

Differential Revision: D99681591

fbshipit-source-id: 82a651fea23e160dd753c2e9644d0423e6a80395
…nvocation (react#56201)

Summary:
Pull Request resolved: react#56201

JavaMethodWrapper is a legacy architecture class that wraps ReactMethod-annotated
Java methods via reflection for the bridge-based NativeModule invocation path.

When ReactNativeFeatureFlags.useTurboModuleInterop is enabled (the new architecture),
this class is completely bypassed — the TurboModule interop layer uses
JavaInteropTurboModule (C++) with direct JNI invocation via
JavaTurboModule::invokeJavaMethod(), which converts JSI values to JNI arguments
directly in C++ without any Java-side reflection.

This diff:
- Deletes JavaMethodWrapper.kt (only instantiated from JavaModuleWrapper.findMethods())
- Deletes BaseJavaModuleTest.kt (test that exercised JavaMethodWrapper)
- Removes the NativeMethod interface from JavaModuleWrapper (only implemented by JavaMethodWrapper)
- Rewrites JavaModuleWrapper.findMethods() to compute method type inline without JavaMethodWrapper
- Changes JavaModuleWrapper.invoke() to throw UnsupportedOperationException
- Sets md.signature to empty string for sync methods to prevent C++ null deref

The JavaModuleWrapper class shell is kept because it is still referenced from C++ JNI
(JavaModuleWrapper.cpp) and NativeModuleRegistry. Full removal is planned as follow-up.

Changelog: [Internal] internal

Reviewed By: cortinico, javache

Differential Revision: D97387121

fbshipit-source-id: 5c6a16f5b8d92430e4afeb3603b5bc538c076f90
…ds (react#56040)

Summary:
X-link: react/yoga#1918

Pull Request resolved: react#56040

Fixed 101 MissingOverrideAnnotation lint errors in YogaNodeJNIBase.java.

Added Override annotation to all public methods that override abstract methods from the YogaNode superclass but were missing the annotation. This includes style getters/setters (direction, flex, margin, padding, border, position, width, height, min/max dimensions, aspect ratio, gap), layout methods (reset, calculateLayout, dirty), tree manipulation (addChildAt, removeChildAt, indexOf), and measurement/baseline functions.

Changelog: [Internal] internal

Reviewed By: cortinico

Differential Revision: D95413075

fbshipit-source-id: fc148c8aefe734c090541b6eb02815c1446d2e98
…ster

Summary:
Chronos Job Instance ID: 1125908291255772
Sandcastle Job Instance ID: 22518000715806458
allow-large-files
ignore-conflict-markers
opt-out-review
drop-conflicts

Differential Revision: D99780677

fbshipit-source-id: 915f9d29d6587b15730422cceb9023df25d3a843
Summary:
Same fix as react#56584 (targeting 0.83-stable), applied to main.

Add a `redbox` subspec to `React-debug.podspec` with its own `header_dir`, following the same pattern `React-Fabric` uses for its subdirectories.

Without this, static library builds (without `USE_FRAMEWORKS`) flatten all headers into the top-level `header_dir` (`react/debug`), so imports like `<react/debug/redbox/RedBoxErrorParser.h>` fail because the `redbox/` subdirectory is lost.

On main this is currently masked because `test_e2e_ios_templateapp` uses prebuilt `React.framework`, but it would break any from-source static library build that includes `React-CoreModules`.

Changelog: [Internal]

Pull Request resolved: react#56585

Test Plan: CI

Reviewed By: cortinico

Differential Revision: D102809818

Pulled By: motiz88

fbshipit-source-id: 9871706a8e028c27f64f4d0dd9942d7c408c6b3b
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Set RCT_HERMES_V1_ENABLED=1 on the resolve-hermes job so the resolver reads
HERMES_V1_VERSION_NAME (250829098.0.12) instead of HERMES_VERSION_NAME
(1000.0.0), which 404s and falls back to a stale hermes-v0.14.0 engine lacking
the facebook::jsi IRuntime ABI. Align the build-from-source fallback tag in
.hermesv1version to the same version.

Fixes the missing IRuntime symbol link failures in Prebuild macOS Core.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Preserve validated per-branch source and corrected stack dependencies.
Preserve validated per-branch source and corrected stack dependencies.
Preserve validated per-branch source and corrected stack dependencies.
Preserve validated per-branch source and corrected stack dependencies.
Preserve package versions and the linear stack; change only equivalent executable-path metadata.
Preserve package versions and the linear stack; change only equivalent executable-path metadata.
Preserve package versions and the linear stack; change only equivalent executable-path metadata.
Preserve package versions and the linear stack; change only equivalent executable-path metadata.
Apply the independently reviewed branch-specific CI follow-up while preserving public-registry locks and the linear stack.
Apply the independently reviewed branch-specific CI follow-up while preserving public-registry locks and the linear stack.
Apply the independently reviewed branch-specific CI follow-up while preserving public-registry locks and the linear stack.

This branch has not been deployed

No deployments
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.