Skip to content

Support Policy

Tier 1 is certified support with release-blocking evidence for every required cell.

Tier 2 is built and tested in CI without release certification.

Synchro makes no support claim outside these tiers.

The supported matrix is deliberately narrow:

Surface Required environments
Server PostgreSQL 18 on Ubuntu 24.04 Linux x64
Apple client iOS 17 and current stable iOS
Android client Android API 24 and current stable Android API
React Native bridge React Native 0.82.1 and 0.88.x on current stable iOS and current stable Android

PostgreSQL 14, 15, 16, and 17 are excluded. Existing build features or incidental successful use do not expand this matrix.

The React Native package accepts react-native >=0.82.1 <0.89.0 and react >=19.1.1 <20.0.0. Package checks exercise both bridge paths on RN 0.82.1 and 0.88.0. The representative semantic corpus uses RN 0.88.0. Native engine cells provide minimum operating system coverage.

Current package consumers pin React Native 0.88.0. React Native 0.88 requires React 19.3.0 and Node ^22.13.0 || ^24.3.0 || >=26.0.0.

Applications built with Xcode 27 must adopt the UIKit scene lifecycle. The example and consumer hosts use this lifecycle.

The supported CLI toolchain uses CLI 20.2.0 and its Android and iOS platform packages at the same version. The package delivers version-bound corrections for CLI Android configuration and CLI clean 20.2.0. The Codegen correction escapes the documented source directory before it constructs the fixed source-extension pattern. The clean correction escapes the host temporary-directory prefix before it adds its authored cache suffix patterns. These corrections preserve literal directory names with braces or brackets without changing authored glob suffixes.

Follow the npm setup steps after each fresh installation. Yarn applications must preserve the same correction through Yarn’s patch protocol. The published package exports canonical patches at @trainstar/synchro-react-native/tooling-patches/cli-config-android-20.2.0.patch and @trainstar/synchro-react-native/tooling-patches/cli-clean-20.2.0.patch.

The package also exports the stream-json 1.9.1 Assembler correction for bunyamin 1.6.3 trace tooling. It backports upstream property handling without changing the dependency major. Applications with this trace tool must apply the delivered correction before they use it:

Terminal window
node node_modules/@trainstar/synchro-react-native/tooling-patches/apply.cjs stream-json

The setup command verifies exact package identities and source hashes. It rejects an unexpected installation and accepts repeated execution only for the exact verified postimage. These corrections do not change the upstream package versions.

Library projects that run bob build must apply the delivered react-native-builder-bob 0.40.18 correction after each fresh installation:

Terminal window
node node_modules/@trainstar/synchro-react-native/tooling-patches/apply.cjs bob

The correction replaces glob removal of Bob’s resolved output and TypeScript build-info paths with the installed fs-extra literal operation. It preserves the prior current-working-directory ownership boundary, compilation, and TypeScript generation. The package exports its canonical patch at @trainstar/synchro-react-native/tooling-patches/react-native-builder-bob-0.40.18.patch.

RN 0.82.1 pins fmt 11.0.2, which fails with the Xcode 27 compiler. The backport changes the fmt pod version, its Git tag, and the RCT-Folly dependency to 12.1.0. It does not change C++ source. The application owns its React Native dependency. Installing Synchro does not apply this patch to the application.

For Yarn 4 applications:

  1. Copy the patch into .yarn/patches/.

  2. Set the application dependency to this value:

    "react-native": "patch:react-native@npm:0.82.1#./.yarn/patches/react-native-npm-0.82.1-c9dce9d96d.patch"
  3. Run yarn install and commit the patch, manifest, and lockfile.

  4. Run pod update fmt RCT-Folly --no-repo-update in the application iOS directory.

  5. Confirm that Podfile.lock resolves fmt 12.1.0.

Other package managers must preserve the same patch across dependency installations. This backport applies only to the RN 0.82.1 minimum track.

macOS hosts Apple toolchain and Swift scenario execution. A host role does not create a PostgreSQL support cell.

Minimum tracks protect iOS 17, Android API 24, and RN 0.82.1. Current tracks protect stable Apple and Android platform releases available when a candidate starts.

current-stable is an authored policy selector, not a permanent version number. release-manifest.json records exact candidate versions.

This page and conformance/support-matrix.json state required and excluded cells. They do not claim that a release passed those cells.

Testing evidence records executed checks for required cells and sealed artifacts. A version does not become supported from an unrelated development test.

Package smoke verifies install, connect, push, pull, process termination, and resume.

A new Tier 1 cell requires named production demand that justifies its recurring evidence cost.

See Testing Evidence Overview and Testing Evidence. Use RELEASE.md as the sole release procedure.