commit 3e27097917acde3127a8a412cb118f1e0aacf253
parent cef43c597b8dc892d6385b4665266914e96e63e5
Author: triesap <tyson@radroots.org>
Date: Sun, 9 Aug 2026 16:58:49 +0000
blossom: retain bounded server error evidence
- parse only validated public service error identifiers
- preserve generic SDK failure codes and HTTP status
- propagate server evidence through mobile runtime and UniFFI
- cover bounds, redaction, and FFI schema evolution
Diffstat:
2 files changed, 4 insertions(+), 1 deletion(-)
diff --git a/core/crates/tera_core/src/runtime/builder.rs b/core/crates/tera_core/src/runtime/builder.rs
@@ -185,12 +185,13 @@ mod tests {
.sdk_blossom_evidence()
.expect("Blossom evidence")
.expect("configured evidence");
- assert_eq!(evidence.schema_version, 1);
+ assert_eq!(evidence.schema_version, 2);
assert_eq!(evidence.state, "configured_unobserved");
assert_eq!(evidence.last_successful_state, "configured_unobserved");
assert_eq!(evidence.transport_security, "development_cleartext");
assert!(evidence.observed_at_unix_ms.is_none());
assert!(evidence.error_code.is_none());
+ assert!(evidence.server_error_code.is_none());
assert!(
runtime
.configure_blossom(
diff --git a/core/crates/tera_core/src/runtime/sdk.rs b/core/crates/tera_core/src/runtime/sdk.rs
@@ -61,6 +61,7 @@ pub struct SdkBlossomEvidenceRecord {
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,
@@ -294,6 +295,7 @@ fn sdk_blossom_evidence_record(
observed_at_unix_ms: value.observed_at_unix_ms(),
http_status: value.http_status(),
error_code: value.error_code().map(str::to_owned),
+ server_error_code: value.server_error_code().map(str::to_owned),
error_phase: value
.error_phase()
.map(blossom_phase_label)