feat(native): add cross-platform renderer foundation - #506
Merged
Conversation
|
ntk preview
Built from |
7 tasks
4 tasks
This was referenced Sep 7, 2026
bntvllnt
added a commit
that referenced
this pull request
Sep 7, 2026
## Summary Closes #503 Supersedes #490 Updates root Turbo from lockfile-resolved 2.8.3 to 2.10.10. Diff is limited to package.json and pnpm-lock.yaml: six renamed platform optional packages and existing ESLint Turbo peer bindings; no unrelated dependency drift. ## Independent review No blocking findings. Reviewed every lockfile hunk. Turbo 2.10.10 exceeds the 2.9.14 fixes for GHSA-hcf7-66rw-9f5r and GHSA-3qcw-2rhx-2726. Package version stays 0.4.0; release workflow unchanged. ## Verification at HEAD f5ee000 [Quality Gates](https://github.com/vllnt/ui/actions/runs/32083205163/job/95550126348): frozen installation, pnpm -F @vllnt/ui lint, pnpm -F @vllnt/ui exec tsc --noEmit --project tsconfig.build.json, pnpm build and pnpm test:once all passed. Tests: 327 files / 1718 tests. Registry lint/drift/integrity and story verification/build also passed. CI ran the synthetic merge; coordinator verified its tree equals the raw PR head tree: 81ea4b8. Current main 38db630 is an ancestor of this head. No local rerun claimed. All currently reported GitHub checks pass, including E2E, React Doctor and CodeQL. ## Release and recovery User authorized landing via PR; preserve automatic 0.4.0 canary behavior. No stable workflow dispatch or latest-tag mutation. Recovery is a normal revert PR if post-merge checks regress. Cross-platform #479/#506 is excluded from this change. --------- Co-authored-by: bntvllnt <bntvllnt@users.noreply.github.com>
12 tasks
bntvllnt
marked this pull request as ready for review
September 7, 2026 16:19
…tform # Conflicts: # package.json # pnpm-lock.yaml
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the source-only React Native platform: shared tokens/contracts, core package, 171 Native modules, an Expo Android/iOS catalog, and platform-aware EN/FR registry discovery, installation, SEO, MCP and LLM surfaces. Stable Web installation remains
@vllnt/ui@^0.3.0; Native installation remains unavailable/experimental.Checkpoint
1963f57includes the accumulated reviewed component repairs, colocated/shared regression organization, registry fixes, package-boundary tests and 0.4.0 canary guards. Mergef7ed137incorporates main705fb7b, retaining Native tooling and regenerating the lockfile with the Turbo security upgrade (resolved 2.10.12). No reviewed dirty work was omitted.Follow-up
ccdb7d0resolves fresh CI React Doctor findings: Toast effects own cleanup while preserving original expiry deadlines across rerenders; keyed fragments isolate StepByStep list identity from forwarded props. Full Native tests and CI-pinned React Doctor 0.5.8 pass (zero errors, 104 advisory warnings).Validation — HEAD
ccdb7d0Node 22.23.2 / Corepack pnpm 9.15.4, macOS:
pnpm buildandpnpm test:once: passed; tests 6/6 workspace tasks, zero cached; Web 318 files / 1678 tests.pnpm ci:native: passed, including 34 suites / 225 tests, package checks, Expo Doctor and Android/iOS Metro exports.i18n:check,registry:integrity,registry:check: passed; EN/FR parity, 313 items, stable install target ^0.3.0.node --test scripts/release-guard.test.mjs packages/ui-native/scripts/check-boundaries.test.mjs: 6/6 passed (5 release + 1 boundary).pnpm dlx react-doctor@0.5.8 . --diff origin/main --offline --fail-on errorpasses with zero errors. Fresh remote checks remain required.0.4.0-canary.66.shaccdb7d0: exact archive versions/Native→core dependency/dist entries asserted; offline installation, strict consumer TypeScript, core runtime/JSON subpaths and Android/iOS Metro resolution with exports enabled/disabled passed. Packages resolve inside isolated node_modules, not workspace sources. An exact-version-only pnpm override transports the unpublished core tarball; it cannot match a different version, and archive dependency equality is independently asserted. This is resolution/type proof, not a packed Native device render or full packed Metro transform.UI evidence and limitations
Historical Task61 strict independent main-baseline comparison: 305/305 passed with PR snapshot updates disabled; full E2E 78 passed / 7 live-Storybook skips. This evidence covers the reviewed source tree before release/version and merge changes, not a new final-HEAD run. No head snapshots were updated. Physical iOS/Android, VoiceOver/TalkBack, minimum-runtime matrix and residual contract/design findings remain explicitly documented in
docs/PR506_*REVIEW*.md; source inspection of 171 modules is not production certification. PR #508's durable Linux baseline work is not incorporated or claimed complete.Merge authorization and checks
The user explicitly authorizes conflict resolution and squash merge, accepting only
ntk / previewfailure for now. This supersedes historical reports' no-merge/draft language; this PR remains ready, not converted to draft. All final-head non-preview remote checks passed: Quality, Native, E2E, React Doctor, both CodeQL analyses, issue link, Storybook build/tests/coverage and visual job. CI: https://github.com/vllnt/ui/actions/runs/34230240495 ; Storybook: https://github.com/vllnt/ui/actions/runs/34230240491 ; health: https://github.com/vllnt/ui/actions/runs/34230240475 . The visual job's existing snapshot-update behavior is not claimed as strict regression proof. Onlyntk / previewfailed. Normal head-fenced squash merge is authorized. No admin override, branch-protection changes, force push, hook bypass or approval bypass is authorized.Release boundaries
Merge may trigger existing main CI/Web canary automation. Checked-in guards restrict 0.4.0 to canary and reject stable promotion; Native/core versions match 0.4.0, exact paired prerelease dependencies and staging/canary tags are retained. Native's enable-variable/environment gate is unchanged; no credentials or enablement settings are changed. No manual publication, deployment, stable promotion or workflow dispatch is performed. Device/AT and publication-recovery verification remain required before advertising Native installation.
Related to #479