diff --git a/client/iosApp/Resources.zip b/client/iosApp/Resources.zip index 6890d9bd37..c0f2f45fd8 100644 Binary files a/client/iosApp/Resources.zip and b/client/iosApp/Resources.zip differ diff --git a/client/iosApp/Resources/app_packages/ciris_persist/__init__.py b/client/iosApp/Resources/app_packages/ciris_persist/__init__.py index 45a3bbcac4..d3dcdbb171 100644 --- a/client/iosApp/Resources/app_packages/ciris_persist/__init__.py +++ b/client/iosApp/Resources/app_packages/ciris_persist/__init__.py @@ -58,3 +58,25 @@ # v1.10.1 (CIRISPersist#88) — handle-free process-singleton reset. "reset_engine", ] + +# v3.12.2 (CIRISPersist#156) — diagnostic harness surface. Re-exported +# only when the underlying Rust wheel was built with `--features +# debug-tools`; release wheels (default) don't have these symbols on +# the native module, so the import falls through silently. +# +# Harnesses test with `if hasattr(ciris_persist, "panic_count"):` +# before invoking. The full opt-in chain remains: +# 1. wheel built with `--features debug-tools` (compile-time) +# 2. CIRIS_PERSIST_PANIC_LOG exported (runtime) +# 3. caller invokes panic_count() / install_panic_logger() +try: + from .ciris_persist import ( # type: ignore[attr-defined] + install_panic_logger, + panic_count, + ) + + __all__.extend(["install_panic_logger", "panic_count"]) +except ImportError: + # Release wheel — no debug-tools feature. The diagnostic surface + # is genuinely absent, and that's the intended security posture. + pass diff --git a/client/iosApp/app_packages_native/ciris_edge/ciris_edge.abi3.so b/client/iosApp/app_packages_native/ciris_edge/ciris_edge.abi3.so index 6cbfb79fe3..0de7e3e651 100644 Binary files a/client/iosApp/app_packages_native/ciris_edge/ciris_edge.abi3.so and b/client/iosApp/app_packages_native/ciris_edge/ciris_edge.abi3.so differ diff --git a/client/iosApp/app_packages_native/ciris_persist/ciris_persist.abi3.so b/client/iosApp/app_packages_native/ciris_persist/ciris_persist.abi3.so index f1532acd7a..452cf86076 100755 Binary files a/client/iosApp/app_packages_native/ciris_persist/ciris_persist.abi3.so and b/client/iosApp/app_packages_native/ciris_persist/ciris_persist.abi3.so differ