Skip to content

v8 stack 1/5: modernize the toolchain and rename to ai.openspace - #23

Closed
dmurphy5 wants to merge 1 commit into
masterfrom
dylan/v8-stack-1-foundation
Closed

v8 stack 1/5: modernize the toolchain and rename to ai.openspace#23
dmurphy5 wants to merge 1 commit into
masterfrom
dylan/v8-stack-1-foundation

Conversation

@dmurphy5

@dmurphy5 dmurphy5 commented Jul 27, 2026

Copy link
Copy Markdown

The stack

Five PRs, each based on the one before it. This is 1/5.

PR Contents Base
1 #23 toolchain, dependencies, and the ai.openspace rename 👈 master
2 #24 TurboModule spec and the JS surface #23
3 #25 Android durable journal and TurboModule #24
4 #26 iOS Swift TurboModule rewrite #25
5 #27 docs and example app #26

#22 stays open and untouched as the single-diff view of the same change.
Its tree and this stack's tip are byte-identical (tree f8404b0), so merging
either one produces exactly the same master. Review whichever is easier to
follow; merge one and close the other.


Foundation for the v8 rewrite, and the first of five stacked PRs. Nothing here
changes behavior: every Kotlin source is byte-identical to master apart from its
package declaration.

What's in it

Dependencies move to what Diana ships — React Native 0.84.1, React 19.2.3,
TypeScript 5.9 — and the example app moves with them (Gradle 8.14.3, Kotlin
2.1.20, SDK 36, newArchEnabled) so CI exercises the toolchain a consumer
actually gets.

Android build switches to the React Native Gradle plugin, which supplies the
react-android version and will run codegen once a spec exists. The library
inherits compileSdk/minSdk/targetSdk from the host app instead of pinning
them, with fallbacks matching Diana. The manifest package attribute moves to
android.namespace, as AGP 8 requires.

The rename: com.vydia.RNUploaderai.openspace.backgroundupload. Source
only — the JS module name is unchanged, so nothing on the JS side moves. Git
tracks all eight files as renames, so each shows as a one-line diff.

Packaging: a files allowlist, so publishing stops shipping internal notes
and build output; typings points at source; the checked-in lib/*.d.ts build
output is deleted. CI gains typecheck and Android unit-test steps.

The design doc for the whole phase is added under docs/ so the rest of the
stack has something to be read against. It's prose — skip it in review if you'd
rather read the code.

Why this shape

The package rename has to be atomic to compile, so it can't be spread across the
later PRs. Doing it here, with content otherwise untouched, means the Android PR
later in the stack shows only real logic changes instead of whole-file adds.

Verified

yarn lint:ci, yarn typecheck, and :react-native-background-upload:testDebugUnitTest
all pass on this commit.

Breaking

Requires React Native 0.84+ and React 19+. Consumers with ProGuard rules
referencing com.vydia.RNUploader must update the package name.

Foundation for the v8 rewrite. No behavior changes — every Kotlin source is
byte-identical to master apart from its package declaration.

Dependencies move to what Diana ships: React Native 0.84.1, React 19.2.3,
TypeScript 5.9. The example app moves with them (Gradle 8.14.3, Kotlin 2.1.20,
SDK 36, newArchEnabled) so CI exercises the same toolchain a consumer gets.

Android switches to the React Native Gradle plugin, which supplies the
react-android version and will run codegen once a spec exists. The library now
inherits compileSdk/minSdk/targetSdk from the host app instead of pinning them,
with fallbacks matching Diana. The manifest `package` attribute moves to
`android.namespace`, as AGP 8 requires.

The `com.vydia.RNUploader` package becomes `ai.openspace.backgroundupload`.
This is a source-level rename only; the JS module name is unchanged, so nothing
on the JS side moves.

Packaging: `files` allowlist so publishing stops shipping internal notes and
build output, `typings` points at source, and the checked-in `lib/*.d.ts` build
output is deleted. CI gains typecheck and Android unit-test steps.

BREAKING CHANGE: requires React Native 0.84+ and React 19+. Consumers with
ProGuard rules referencing com.vydia.RNUploader must update the package name.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.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.

1 participant