diff --git a/CHANGELOG.md b/CHANGELOG.md
index f851d03..7dfcd93 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,7 +1,8 @@
# Changelog
-## Unreleased
+## 0.3.1 (7 Nov 2026)
+- `strait init` writes React Native 0.11.0 (now on npm, was 0.10.2).
- `strait doctor` and `strait test`: on a link domain before Dashboard → Apps & stores is filled in (Strait answers 404 `{"error":"not configured"}`), the finding is `app.none` with "Fill in Dashboard → Apps & stores (package name and SHA-256 fingerprint / Team ID and bundle ID), wait a minute, then check again", the same step `strait init` gives, not `host.file_missing` ("use your Strait link domain as endpoint"). Same wording as `doctor()` in the SDKs (51 shared vectors, shared-spec ADR 0002 amendment).
## 0.3.0 (7 Nov 2026)
diff --git a/package.json b/package.json
index cef5e9f..27afffd 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@straitlink/cli",
- "version": "0.3.0",
+ "version": "0.3.1",
"description": "Strait deep links from the terminal: init sets them up in a React Native, Expo, Flutter or Android app, doctor checks your link host, links creates and lists links and saves QR codes.",
"keywords": [
"strait",
diff --git a/src/install.mjs b/src/install.mjs
index c7ff918..b44c0bc 100644
--- a/src/install.mjs
+++ b/src/install.mjs
@@ -23,7 +23,7 @@ export const sourceFor = (src, registry) => (typeof src.source === 'string' ? sr
*/
export const VERSIONS = {
version: '0.11.0', // Swift (Unity is not written by this CLI)
- rnVersion: '0.10.2',
+ rnVersion: '0.11.0',
flutterVersion: '0.10.1',
androidVersion: '0.10.0',
};
diff --git a/src/version.mjs b/src/version.mjs
index 53e447a..40f6461 100644
--- a/src/version.mjs
+++ b/src/version.mjs
@@ -1,2 +1,2 @@
// Kept equal to package.json version (test/links.test.mjs checks it). Sent as the API User-Agent.
-export const CLI_VERSION = '0.3.0';
+export const CLI_VERSION = '0.3.1';
diff --git a/test/init.test.mjs b/test/init.test.mjs
index cfdfe63..5ad138e 100644
--- a/test/init.test.mjs
+++ b/test/init.test.mjs
@@ -24,7 +24,7 @@ test('React Native: writes links.ts with key, host and an onLink handler, prints
assert.match(links, /endpoint: 'https:\/\/acme\.strait\.link'/);
assert.match(links, /links\.onLink\(\(e\) =>/);
assert.match(links, /links\.start\(\);/);
- assert.match(r.out, /npm install @straitlink\/react-native@0\.10\.2 /);
+ assert.match(r.out, /npm install @straitlink\/react-native@0\.11\.0 /);
assert.match(r.out, //);
assert.match(r.out, //);
assert.match(r.out, /curl https:\/\/acme\.strait\.link\/\.well-known\/assetlinks\.json/);
diff --git a/test/install.test.mjs b/test/install.test.mjs
index ddcddd8..3062aff 100644
--- a/test/install.test.mjs
+++ b/test/install.test.mjs
@@ -10,18 +10,18 @@ const root = fileURLToPath(new URL('..', import.meta.url));
const walk = (d) => readdirSync(d).flatMap((n) => (n === 'node_modules' || n === '.git' ? [] : statSync(join(d, n)).isDirectory() ? walk(join(d, n)) : [join(d, n)]));
test('github and registry sources', () => {
- // Versions as of 7 Nov 2026 (site.config.json packages = npm / pub.dev / JitPack): RN 0.10.2, Flutter 0.10.1, Android 0.10.0.
+ // Versions as of 7 Nov 2026 (site.config.json packages = npm / pub.dev / JitPack): RN 0.11.0, Flutter 0.10.1, Android 0.10.0.
const gh = installSpecs({ source: 'github', githubOwner: 'strait-sdks' });
- assert.equal(gh.reactNative, 'github:strait-sdks/strait-sdk-react-native#v0.10.2');
+ assert.equal(gh.reactNative, 'github:strait-sdks/strait-sdk-react-native#v0.11.0');
assert.equal(gh.android, 'com.github.strait-sdks:strait-sdk-android:v0.10.0');
assert.equal(gh.androidRepository, 'https://jitpack.io');
assert.match(gh.flutterPubspec, /url: https:\/\/github\.com\/strait-sdks\/strait-sdk-flutter\n {6}ref: v0\.10\.1/);
const today = installSpecs();
- assert.equal(today.reactNative, '@straitlink/react-native@0.10.2', 'npm in registry mode (16 Oct)');
+ assert.equal(today.reactNative, '@straitlink/react-native@0.11.0', 'npm in registry mode (16 Oct)');
assert.equal(today.flutterPubspec, ' strait_sdk: ^0.10.1', 'pub.dev in registry mode (16 Oct)');
assert.equal(today.android, `com.github.${INSTALL.githubOwner}:strait-sdk-android:v0.10.0`, 'Android stays on JitPack');
const reg = installSpecs({ ...INSTALL, source: 'registry' });
- assert.equal(reg.reactNative, '@straitlink/react-native@0.10.2');
+ assert.equal(reg.reactNative, '@straitlink/react-native@0.11.0');
assert.equal(reg.android, 'in.straitlink:strait-sdk-android:0.10.0');
assert.equal(reg.flutterPubspec, ' strait_sdk: ^0.10.1');
assert.equal(reg.androidRepository, null);