Skip to content

test: add iOS 27 lifecycle pass-through fixture (MBL-2232) - #634

Closed
Shahroz16 wants to merge 12 commits into
codex/mbl-2278-cocoapods-target-normalizationfrom
codex/mbl-2232-lifecycle-contract
Closed

test: add iOS 27 lifecycle pass-through fixture (MBL-2232)#634
Shahroz16 wants to merge 12 commits into
codex/mbl-2278-cocoapods-target-normalizationfrom
codex/mbl-2232-lifecycle-contract

Conversation

@Shahroz16

@Shahroz16 Shahroz16 commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Summary\n- vendor the reviewed MBL-2232 iOS lifecycle contract and relational validator\n- add one sample-only native Swift pass-through stream for existing AppDelegate and routing seats\n- preserve published wrapper code, JavaScript runtime code, delegate ownership, completion ownership, and the existing killed-state workaround\n- keep evidence claims at L0/L1 only\n\n## Validation\n- canonical validator suite: 113/113\n- native wiring tests: 5/5\n- TypeScript: pass\n- canonical lock verification: 18 files\n- Xcode 26.6 simulator builds: APN and FCM pass when stacked exactly with MBL-2278\n- independent Claude Fable adversarial review: ACCEPT\n\n## Dependencies and boundaries\n- canonical source and producer: customerio-ios PR #1209\n- CocoaPods/autolinking build stack: customerio-reactnative PR #633\n- no L2 runtime capture or physical-device APN/FCM evidence is claimed in this PR\n- MBL-2232 remains in progress until cross-SDK canonical captures are complete


Note

Low Risk
Primarily documentation, schemas, and diagnostic/test harness wiring; no production SDK or auth paths are modified in the shown diff, and runtime L2/L3 evidence is explicitly not claimed.

Overview
Adds the byte-locked MBL-2232 iOS lifecycle trace v1 package: trace and capture-manifest JSON schemas, Python relational validator with test vectors, contract lock, and long-form docs for evidence levels (diagnostic/L2/L3), callback registry, and wrapper topologies (Flutter, Expo, standalone RN).

Documents the React Native example as an optional, harness-gated native Swift-only stream (CIO_LIFECYCLE_* env) that records existing AppDelegate/routing seats without JS producers, new delegates, or changes to the published ios/ wrapper; evidence stays L0/L1 until validated captures exist.

CI (assert-lint) uses full git history and always runs example/scripts/lifecycle-trace-native-test/wiring.test.mjs with CIO_LIFECYCLE_BASE_REF on PRs so the fixture delta is checked against the PR base while excluding stacked prerequisite commits.

Reviewed by Cursor Bugbot for commit a2a733d. Bugbot is set up for automated code reviews on this repo. Configure here.

@github-actions

github-actions Bot commented Aug 12, 2026

Copy link
Copy Markdown
Contributor

Sample app builds 📱

Below you will find the list of the latest versions of the sample apps. It's recommended to always download the latest builds of the sample apps to accurately test the pull request.


  • iOS FCM: 634.12.0 (29784004)
  • iOS APN: 634.12.0 (29784004)

@Shahroz16
Shahroz16 changed the base branch from main to codex/mbl-2278-cocoapods-target-normalization August 18, 2026 07:23
@Shahroz16
Shahroz16 marked this pull request as ready for review August 18, 2026 07:23
@Shahroz16
Shahroz16 requested a review from a team as a code owner August 18, 2026 07:23
@Shahroz16

Copy link
Copy Markdown
Contributor Author

Closing this evidence-only PR as part of the lifecycle validation simplification. React Native remains a native pass-through unless a wrapper-specific defect is reproduced, so we will not merge a copied schema, lock, recorder, or capture harness. The focused CocoaPods prerequisite remains in #633, and runtime validation belongs in the shared MBL-2233 matrix. The branch remains available for reference.

@Shahroz16 Shahroz16 closed this Aug 18, 2026
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