field_ios

In-the-field app for Radroots on iOS
git clone https://radroots.dev/git/field_ios.git
Log | Files | Refs | README | LICENSE

commit 1328fa2a85e3bc232dca78b4d036d749ec5606fb
parent 375f8153fb6a7619713592498e8f90eaf457f771
Author: triesap <tyson@radroots.org>
Date:   Sun,  9 Aug 2026 17:22:40 +0000

merge: reconcile mobile runtime and Blossom fixes

- Preserve the standalone authority and catalog hardening history.
- Integrate bounded public Blossom server error evidence.
- Integrate Tokio-context execution for exported mobile futures.
- Retain the exact merged lockfile and verified package boundaries.

Diffstat:
Mcore/crates/tera_ffi/Cargo.toml | 2+-
Mcore/crates/tera_ffi/src/dto.rs | 2++
Mcore/crates/tera_ffi/src/runtime.rs | 2+-
Mcore/crates/tera_ffi/tests/runtime_delegation.rs | 3++-
4 files changed, 6 insertions(+), 3 deletions(-)

diff --git a/core/crates/tera_ffi/Cargo.toml b/core/crates/tera_ffi/Cargo.toml @@ -32,7 +32,7 @@ tracing = { workspace = true } tracing-appender = { workspace = true } tracing-subscriber = { workspace = true } thiserror = { workspace = true } -uniffi = { workspace = true } +uniffi = { workspace = true, features = ["tokio"] } [target.'cfg(unix)'.dependencies] rustix = { workspace = true } diff --git a/core/crates/tera_ffi/src/dto.rs b/core/crates/tera_ffi/src/dto.rs @@ -1874,6 +1874,7 @@ pub struct FfiBlossomEvidenceRecord { pub observed_at_unix_ms: Option<u64>, pub http_status: Option<u16>, pub error_code: Option<String>, + pub server_error_code: Option<String>, pub error_phase: Option<String>, pub retryable: bool, pub possible_orphan: bool, @@ -1907,6 +1908,7 @@ impl From<SdkBlossomEvidenceRecord> for FfiBlossomEvidenceRecord { observed_at_unix_ms: value.observed_at_unix_ms, http_status: value.http_status, error_code: value.error_code, + server_error_code: value.server_error_code, error_phase: value.error_phase, retryable: value.retryable, possible_orphan: value.possible_orphan, diff --git a/core/crates/tera_ffi/src/runtime.rs b/core/crates/tera_ffi/src/runtime.rs @@ -43,7 +43,7 @@ pub struct RadrootsRuntime { subscriptions: Arc<SubscriptionHub>, } -#[cfg_attr(not(coverage_nightly), uniffi::export)] +#[cfg_attr(not(coverage_nightly), uniffi::export(async_runtime = "tokio"))] impl RadrootsRuntime { #[cfg_attr(not(coverage_nightly), uniffi::constructor)] pub async fn new( diff --git a/core/crates/tera_ffi/tests/runtime_delegation.rs b/core/crates/tera_ffi/tests/runtime_delegation.rs @@ -123,13 +123,14 @@ async fn native_boundary_delegates_the_complete_core_surface() { .sdk_blossom_evidence() .expect("Blossom evidence") .expect("configured evidence"); - assert_eq!(evidence.schema_version, 1); + assert_eq!(evidence.schema_version, 2); assert_eq!(evidence.origin, "https://media.example"); assert_eq!(evidence.config_fingerprint, blossom.config_fingerprint); assert_eq!(evidence.state, "configured_unobserved"); assert_eq!(evidence.transport_security, "public_webpki"); assert!(evidence.observed_at_unix_ms.is_none()); assert!(evidence.error_code.is_none()); + assert!(evidence.server_error_code.is_none()); runtime .configure_blossom( FfiBlossomHostKind::Simulator,