Skip to content

chore(release): 0.1.5 - #20

Merged
Fiona2016 merged 1 commit into
publishfrom
release/0.1.5
Aug 27, 2026
Merged

chore(release): 0.1.5#20
Fiona2016 merged 1 commit into
publishfrom
release/0.1.5

Conversation

@Fiona2016

Copy link
Copy Markdown
Collaborator

Version bump only — no functional change on top of what is already on publish.

Ships the startup-crash fix from #19, plus the two property-replacement corrections from #18 that were necessary but not sufficient.

What 0.1.4 broke: on an app whose styling library owns the element factory (anything built on css-interop, e.g. nativewind), patching React.createElement routed every createElement call in the process — React's own internals included — through machinery the host wrote for its own calls. The heap grew until Hermes aborted at startup. 0.1.3 never hit this because the assignment threw before it could take effect; 0.1.4 removed that exception and the factory got replaced for the first time.

Verified end to end on a simulator release build of a css-interop based app, with the 0.1.4 build as the negative control:

build result
0.1.4 as published 💥 hermes::vm::GCBase::oom → SIGABRT
#18 alone 💥 same crash
this ✅ starts, reports views and resources, and records taps

Taps observed on the fixed build: t_actions rows of type tap across /login, /incident and an incident detail view, with matching view_action_count.

./check-version-matches-tag.sh 0.1.5 passes for all 13 declarations, including the two native SdkVersion files that feed _dd.sdk_version. Changed file set matches the previous release commit exactly. lerna run prepare succeeds for all 9 projects — the gate that 0.1.4's first attempt failed on.

Merging this, then pushing tag v0.1.5, triggers the publish workflow.

Fixes a startup crash introduced in 0.1.4. On an app whose styling library owns the
element factory - anything built on css-interop - patching React.createElement routed
every createElement call in the process, React's internals included, through machinery
the host wrote for its own calls, and the heap grew until Hermes aborted. 0.1.3 never
hit this because the assignment threw before it could take effect.

That patch is now skipped once `jsxRuntimes` says where the app's elements come from.
Nothing is lost: under the automatic JSX transform such an app never calls
React.createElement, and the declared runtime is what records taps. Apps that declare
nothing keep the previous behaviour.

Also carries two corrections to how the property was replaced - an accessor is left to
the host, and the saved original now comes from the same object the replacement lands
on - which were needed but not sufficient on their own.

Verified on a simulator release build of a css-interop based app: it starts, reports
views and resources, and records taps.
@Fiona2016
Fiona2016 merged commit 5259c6e into publish Aug 27, 2026
1 check passed
@Fiona2016
Fiona2016 deleted the release/0.1.5 branch August 27, 2026 08:35
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.

1 participant