Skip to content

Upgrade Phases 1+2: E2E VRC exchange harness, React Native 0.77.3, drop BCSC#13

Closed
albertoleon7794 wants to merge 9 commits into
mainfrom
upgrade/phase2-rn77
Closed

Upgrade Phases 1+2: E2E VRC exchange harness, React Native 0.77.3, drop BCSC#13
albertoleon7794 wants to merge 9 commits into
mainfrom
upgrade/phase2-rn77

Conversation

@albertoleon7794

Copy link
Copy Markdown
Collaborator

Summary

  • Phase 1 (Upgrade Phase 1: Appium two-wallet E2E harness for VRC exchange #8): Appium/WebdriverIO two-wallet E2E harness in e2e/ — full onboarding plus a complete VRC exchange between an Android emulator and an iOS simulator, using an invitation-URL paste fallback instead of camera QR scanning.
  • Phase 2 (Upgrade Phase 2: React Native 0.73.11 → 0.77.3, drop BCSC integration #9): React Native 0.73.11 → 0.77.3 (Kotlin 2.0.21, Gradle 8.10.2, AGP 8.7.3, compileSdk 35, iOS target 15.1, Flipper removed), @react-native-firebase 14 → 21, RCTAppDependencyProvider in AppDelegate, CMake patches for the RN 0.76+ libreactnative.so consolidation, and fixes for the safe-area-context 5.x layout regression that hid bottom controls in modal screens.
  • Drops the unused BCSC integration (packages/bcsc-core, app/src/bcsc-theme/, BCSC state/mode) while keeping the keyring theme. KeyRing is now the only mode.
  • Bumps the bifold submodule to e94c45b2 (branch upgrade/phase2-rn77 on keyring-bifold: E2E invitation hook, RN 0.77 compat, layout fixes).
  • credo-ts, bifold version, and React 18 are intentionally untouched — those move in Phase 3 (Upgrade Phase 3: bifold 3.0.16 + credo-ts 0.6.3 + React 19 + RN 0.81 #10).

Progress log and phase plan: UPGRADE_PROGRESS.md.

Test plan

  • app jest: 14 suites / 27 tests green
  • bifold core jest: 134 suites / 1242 tests green (includes VRC conformance tests)
  • typecheck + eslint green in both repos
  • Android assembleDebug and iOS simulator build pass
  • Two-device E2E VRC exchange green on Android and iOS

Closes #8. Closes #9.

Made with Cursor

Replace hardcoded BC Gov mediator URL check with
MEDIATOR_USE_V2_BATCH_PICKUP. When true, agent startup initiates
Pickup V2 live mode and batch pickup for Credo-TS mediators.

Refs #4

Signed-off-by: Alberto L <aleon@law.harvard.edu>
WebdriverIO harness under e2e/: fresh install, onboarding, invitation
paste, bidirectional VRC offer acceptance, and Contacts-list assertion
on Android emulator + iOS simulator. Green end-to-end run recorded in
UPGRADE_PROGRESS.md. Silence dev-only IndyVdr LogBox toast that
overlaid the UI and broke taps.

Signed-off-by: Alberto L <aleon@law.harvard.edu>
Signed-off-by: Alberto L <aleon@law.harvard.edu>
App template updated per Upgrade Helper: Gradle 8.10.2 / AGP 8.7.3 /
Kotlin 2.0.21 / buildTools 35 / NDK 27.1.12297006, plugin-based
autolinking in settings.gradle, OpenSourceMergedSoMapping in
MainApplication, iOS deployment target 15.1, -bundleURL AppDelegate,
Flipper removed from Podfile.

Ecosystem bumps (gesture-handler 2.22, safe-area-context 5.1,
screens 4.6, svg 15.11, vision-camera 4.7.3, webview 13.13).

RN 0.76+ prefab fix: patch @hyperledger anoncreds/askar/indy-vdr
CMakeLists to link the merged ReactAndroid::reactnative target, plus
jniLibs pickFirsts for the duplicated prefab .so files.

bcsc-core codegen spec adjusted for RN 0.77's stricter parser
(UnsafeObject instead of any/indexer, no Omit<>).

Gate: app jest 23/88 PASS, bifold core jest 134/1242 PASS, Android
assembleDebug and iOS simulator build both succeed.

Signed-off-by: Alberto L <aleon@law.harvard.edu>
Signed-off-by: Alberto L <aleon@law.harvard.edu>
Removes the react-native-bcsc-core native module workspace
(packages/bcsc-core) and the entire BCSC surface in the app:
src/bcsc-theme/, the BCSC store slice (BCSCState, BCSCDispatchAction,
Mode enum), BCSCApiClientProvider, Developer screen theme/mode
toggles, useSetupSteps, and related tests. Root now always renders
the KeyRing stack and keyring-theme remains the only theme.

Also cleans up the @bcsc-theme babel/tsconfig/metro aliases and the
bcsc-core workspace/dependency entries; gradle locks and Podfile.lock
regenerated (RNBcscCore pod gone).

Gate: typecheck, eslint, jest (14 suites / 27 tests), Android
assembleDebug and iOS simulator build all pass.

Signed-off-by: Alberto L <aleon@law.harvard.edu>
…t regression

- Upgrade @react-native-firebase app/messaging 14.12.0 -> 21.14.0 (v14 is
  incompatible with RN 0.77; iOS crashed at startup with "No Firebase App
  '[DEFAULT]' has been created").
- Set RCTAppDependencyProvider in AppDelegate.mm, required by RN 0.77 for
  third-party Fabric component/module resolution (fixes
  setSheetLargestUndimmedDetent unrecognized-selector crash from
  react-native-screens).
- Apply flex:1 SafeAreaView/ScrollView fix to PersonCredentialLoading
  (same safe-area-context 5.x layout regression fixed in bifold).
- Bump bifold submodule (layout fixes in modal screens).
- Mark Phase 2 complete in UPGRADE_PROGRESS.md: jest green, both platforms
  build, two-device E2E VRC exchange green on Android and iOS.
The quality workflow still built packages/bcsc-core, which was removed in
the Phase 2 BCSC cleanup, so the Lint+Format+Types job failed on a missing
directory. Remove the build/cache steps and re-enable the TypeScript check
that was disabled pending bcsc theme type errors (now gone; passes locally).
albertoleon7794 added a commit that referenced this pull request Jul 8, 2026
…edo patch, merge plan)

Bump the bifold submodule to the Phase 5 commit (RCard/VRC separation, JCS
witness digest, VCDM 2.0 verification + negotiated issuance with RCE v2).
Apply the @credo-ts/core 0.6.3 yarn patch in the app tree as well (accept
the VC 2.0 context as first @context entry, make issuanceDate optional) so
the wallet's own dependency graph resolves the same patched credo.

Gates green 2026-07-08: app + bifold jest/typecheck/lint, two-device E2E
VRC exchange on the VC 2.0 flow, and a backward-compat E2E where a Phase-4
baseline build exchanges with the new app (legacy 1.1 VRC with issuer
object, no RCard) and then upgrades in place with its store intact.

Adds MERGE_PLAN.md documenting the PR merge order (bifold #26 first as a
merge commit, then wallet #13 and #14) and the submodule-pointer rules.
Upstream credo issue: openwallet-foundation/credo-ts#2864.
@albertoleon7794

Copy link
Copy Markdown
Collaborator Author

Superseded by the consolidated upgrade PR #17, which folds phases 1–5 plus RCE v3 and the eddsa-rdfc-2022 Data Integrity work into a single review branch. Closing without merge — see the consolidated PR.

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.

Upgrade Phase 2: React Native 0.73.11 → 0.77.3, drop BCSC integration Upgrade Phase 1: Appium two-wallet E2E harness for VRC exchange

1 participant