From 2b14fc0d0152fffa67ef0e701263eeaddcf9f8d3 Mon Sep 17 00:00:00 2001 From: Daniil Fadeev Date: Tue, 4 Aug 2026 12:53:53 +0300 Subject: [PATCH 1/3] feat: expose frozen remote config assignments --- Runtime/Scripts/Dto/RemoteConfigurationSource.cs | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Runtime/Scripts/Dto/RemoteConfigurationSource.cs b/Runtime/Scripts/Dto/RemoteConfigurationSource.cs index 9e80b92..a45f20b 100644 --- a/Runtime/Scripts/Dto/RemoteConfigurationSource.cs +++ b/Runtime/Scripts/Dto/RemoteConfigurationSource.cs @@ -33,6 +33,10 @@ public RemoteConfigurationAssignmentType FormatAssignmentType(object typeValue) { return RemoteConfigurationAssignmentType.Manual; } + else if (type == "frozen") + { + return RemoteConfigurationAssignmentType.Frozen; + } return RemoteConfigurationAssignmentType.Unknown; } @@ -70,7 +74,8 @@ public enum RemoteConfigurationAssignmentType { Unknown, Auto, - Manual + Manual, + Frozen } public enum RemoteConfigurationSourceType From 00b4dd563a5fd1b14337300b804f938268d6cd4f Mon Sep 17 00:00:00 2001 From: Daniil Fadeev Date: Tue, 4 Aug 2026 13:35:34 +0300 Subject: [PATCH 2/3] build: require frozen-aware Sandwich bridge --- Editor/QonversionDependencies.xml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Editor/QonversionDependencies.xml b/Editor/QonversionDependencies.xml index 5add313..07a854c 100644 --- a/Editor/QonversionDependencies.xml +++ b/Editor/QonversionDependencies.xml @@ -1,11 +1,11 @@ - + - + From 05de62841f235f1fb37faf89afaac733e7127719 Mon Sep 17 00:00:00 2001 From: Daniil Fadeev Date: Tue, 4 Aug 2026 18:48:57 +0300 Subject: [PATCH 3/3] ci: enforce frozen assignment mapping --- .github/workflows/checks.yml | 20 ++++++++++++++++++++ scripts/test-frozen-assignment-contract.mjs | 13 +++++++++++++ 2 files changed, 33 insertions(+) create mode 100644 .github/workflows/checks.yml create mode 100644 scripts/test-frozen-assignment-contract.mjs diff --git a/.github/workflows/checks.yml b/.github/workflows/checks.yml new file mode 100644 index 0000000..4363518 --- /dev/null +++ b/.github/workflows/checks.yml @@ -0,0 +1,20 @@ +name: Checks + +on: + pull_request: + workflow_dispatch: + +permissions: + contents: read + +jobs: + bridge-contract: + runs-on: ubuntu-latest + timeout-minutes: 2 + steps: + - uses: actions/checkout@v4 + - uses: actions/setup-node@v4 + with: + node-version: 22 + - name: Verify frozen assignment contract + run: node scripts/test-frozen-assignment-contract.mjs diff --git a/scripts/test-frozen-assignment-contract.mjs b/scripts/test-frozen-assignment-contract.mjs new file mode 100644 index 0000000..54c64ae --- /dev/null +++ b/scripts/test-frozen-assignment-contract.mjs @@ -0,0 +1,13 @@ +import assert from "node:assert/strict"; +import { readFileSync } from "node:fs"; + +const source = readFileSync("Runtime/Scripts/Dto/RemoteConfigurationSource.cs", "utf8"); +const dependencies = readFileSync("Editor/QonversionDependencies.xml", "utf8"); + +assert.match(source, /type\s*==\s*"frozen"[\s\S]*RemoteConfigurationAssignmentType\.Frozen/); +assert.match(source, /return\s+RemoteConfigurationAssignmentType\.Unknown/); +assert.match(source, /enum\s+RemoteConfigurationAssignmentType[\s\S]*Frozen/); +assert.match(dependencies, /io\.qonversion:sandwich:7\.13\.0/); +assert.match(dependencies, /QonversionSandwich" version="7\.13\.0"/); + +console.log("Frozen assignment bridge contract is intact.");