From 1a2aba2d2460f7b337be9f7011be4f4f7d6a6ab5 Mon Sep 17 00:00:00 2001 From: Thomas Date: Sat, 4 Apr 2026 15:54:49 +0100 Subject: [PATCH] resolved integration work for the recovery receptor --- Cargo.lock | 722 +++++----- host/Cargo.lock | 1189 ++++++++++------- host/Cargo.toml | 13 +- host/conductora/Cargo.toml | 6 +- .../src/config/providers/holochain.rs | 2 +- host/conductora/src/config/storage.json | 2 +- .../conductora/src/map_commands/all_spaces.rs | 7 +- .../src/map_commands/debug_serde.rs | 2 +- .../src/map_commands/map_request.rs | 11 +- .../conductora/src/map_commands/root_space.rs | 20 +- .../conductora/src/map_commands/serde_test.rs | 2 +- host/conductora/src/map_commands/status.rs | 2 +- host/conductora/src/runtime/init_runtime.rs | 48 +- host/conductora/src/setup/app_builder.rs | 2 +- host/conductora/src/setup/common_setup.rs | 2 +- .../src/setup/providers/holochain/setup.rs | 6 +- .../src/setup/providers/local/setup.rs | 3 +- .../src/setup/receptor_config_registry.rs | 3 +- .../Cargo.toml | 9 +- .../src/client_context.rs | 47 + .../client_holon_service.rs | 354 +++++ .../src/client_shared_objects/mod.rs | 2 + .../src/conductor_dance_caller.rs | 0 .../src/dances_client/client_dance_builder.rs | 243 ++++ .../src/dances_client/mod.rs | 2 + .../src/holochain_conductor_client.rs | 2 +- .../src/holochain_receptor.rs | 33 +- .../src/lib.rs | 4 + host/crates/holons_client/Cargo.toml | 7 +- .../holons_client/src/client_session.rs | 47 + .../src/dances_client/client_dance_builder.rs | 2 +- host/crates/holons_client/src/lib.rs | 50 +- .../holons_client/src/receptor_cache.rs | 121 ++ .../holons_client/src/receptor_factory.rs | 143 ++ .../src/shared_types/base_receptor.rs | 45 - .../holons_client/src/shared_types/mod.rs | 4 - host/crates/holons_receptor/src/cache.rs | 89 -- host/crates/holons_receptor/src/factory.rs | 135 -- host/crates/holons_receptor/src/lib.rs | 8 - .../src/receptors/local_receptor/mod.rs | 5 - .../holons_receptor/src/receptors/mod.rs | 4 - .../Cargo.toml | 8 +- host/crates/local_receptors/src/lib.rs | 5 + .../src}/local_client.rs | 0 .../src}/local_receptor.rs | 16 +- host/crates/recovery_receptor/Cargo.toml | 2 +- .../src/local_recovery_receptor.rs | 2 +- host/crates/shared_types/Cargo.toml | 17 + host/crates/shared_types/src/base_receptor.rs | 20 + .../src}/holon_space.rs | 0 host/crates/shared_types/src/lib.rs | 9 + .../src}/map_request.rs | 2 +- .../src}/map_response.rs | 0 .../core_shared_objects/transactions/tx_id.rs | 4 + 54 files changed, 2209 insertions(+), 1274 deletions(-) rename host/crates/{holochain_receptor => deprecated_holochain_receptor}/Cargo.toml (64%) create mode 100644 host/crates/deprecated_holochain_receptor/src/client_context.rs create mode 100644 host/crates/deprecated_holochain_receptor/src/client_shared_objects/client_holon_service.rs create mode 100644 host/crates/deprecated_holochain_receptor/src/client_shared_objects/mod.rs rename host/crates/{holochain_receptor => deprecated_holochain_receptor}/src/conductor_dance_caller.rs (100%) create mode 100644 host/crates/deprecated_holochain_receptor/src/dances_client/client_dance_builder.rs create mode 100644 host/crates/deprecated_holochain_receptor/src/dances_client/mod.rs rename host/crates/{holochain_receptor => deprecated_holochain_receptor}/src/holochain_conductor_client.rs (99%) rename host/crates/{holochain_receptor => deprecated_holochain_receptor}/src/holochain_receptor.rs (92%) rename host/crates/{holochain_receptor => deprecated_holochain_receptor}/src/lib.rs (79%) create mode 100644 host/crates/holons_client/src/client_session.rs create mode 100644 host/crates/holons_client/src/receptor_cache.rs create mode 100644 host/crates/holons_client/src/receptor_factory.rs delete mode 100644 host/crates/holons_client/src/shared_types/base_receptor.rs delete mode 100644 host/crates/holons_client/src/shared_types/mod.rs delete mode 100644 host/crates/holons_receptor/src/cache.rs delete mode 100644 host/crates/holons_receptor/src/factory.rs delete mode 100644 host/crates/holons_receptor/src/lib.rs delete mode 100644 host/crates/holons_receptor/src/receptors/local_receptor/mod.rs delete mode 100644 host/crates/holons_receptor/src/receptors/mod.rs rename host/crates/{holons_receptor => local_receptors}/Cargo.toml (58%) create mode 100644 host/crates/local_receptors/src/lib.rs rename host/crates/{holons_receptor/src/receptors/local_receptor => local_receptors/src}/local_client.rs (100%) rename host/crates/{holons_receptor/src/receptors/local_receptor => local_receptors/src}/local_receptor.rs (89%) create mode 100644 host/crates/shared_types/Cargo.toml create mode 100644 host/crates/shared_types/src/base_receptor.rs rename host/crates/{holons_client/src/shared_types => shared_types/src}/holon_space.rs (100%) create mode 100644 host/crates/shared_types/src/lib.rs rename host/crates/{holons_client/src/shared_types => shared_types/src}/map_request.rs (99%) rename host/crates/{holons_client/src/shared_types => shared_types/src}/map_response.rs (100%) diff --git a/Cargo.lock b/Cargo.lock index 23b89aa6..5ae75025 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -87,7 +87,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", - "anstyle-parse", + "anstyle-parse 0.2.7", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse 1.0.0", "anstyle-query", "anstyle-wincon", "colorchoice", @@ -97,9 +112,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" @@ -110,6 +125,15 @@ dependencies = [ "utf8parse", ] +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + [[package]] name = "anstyle-query" version = "1.1.5" @@ -159,9 +183,9 @@ dependencies = [ [[package]] name = "arc-swap" -version = "1.8.2" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9f3647c145568cec02c42054e07bdf9a5a698e15b466fb2341bfc393cd24aa5" +checksum = "a07d1f37ff60921c83bdfc7407723bdefe89b44b98a9b772f225c8f9d67141a6" dependencies = [ "rustversion", ] @@ -264,9 +288,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.16.1" +version = "1.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "94bffc006df10ac2a68c83692d734a465f8ee6c5b384d8545a636f81d858f4bf" +checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" dependencies = [ "aws-lc-sys", "zeroize", @@ -274,9 +298,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.38.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4321e568ed89bb5a7d291a7f37997c2c0df89809d7b6d12062c81ddb54aa782e" +checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399" dependencies = [ "cc", "cmake", @@ -416,6 +440,15 @@ version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "230c5f1ca6a325a32553f8640d31ac9b49f2411e901e427570154868b46da4f7" +[[package]] +name = "bincode" +version = "1.3.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1f45e9417d87227c7a56d22e471c6206462cba514c7590c09aff4cf6d1ddcad" +dependencies = [ + "serde", +] + [[package]] name = "bindgen" version = "0.70.1" @@ -451,7 +484,7 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "shlex", "syn 2.0.117", ] @@ -610,9 +643,9 @@ checksum = "4964518bd3b4a8190e832886cdc0da9794f12e8e6c1613a9e90ff331c4c8724b" [[package]] name = "cc" -version = "1.2.56" +version = "1.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aebf35691d1bfb0ac386a69bac2fde4dd276fb618cf8bf4f5318fe285e821bb2" +checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" dependencies = [ "find-msvc-tools", "jobserver", @@ -695,9 +728,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.60" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2797f34da339ce31042b27d23607e051786132987f595b02ba4f6a6dffb7030a" +checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" dependencies = [ "clap_builder", "clap_derive", @@ -705,11 +738,11 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.60" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "24a241312cea5059b13574bb9b3861cabf758b879c15190b37b6d6fd63ab6876" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ - "anstream", + "anstream 1.0.0", "anstyle", "clap_lex", "strsim 0.11.1", @@ -718,9 +751,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.55" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -730,9 +763,20 @@ dependencies = [ [[package]] name = "clap_lex" -version = "1.0.0" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3a822ea5bc7590f9d40f1ba12c0dc3c2760f3482c6984db1573ad11031420831" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" + +[[package]] +name = "client_shared_types" +version = "0.1.0" +dependencies = [ + "core_types", + "holons_boundary", + "holons_core", + "serde", + "serde_bytes", +] [[package]] name = "cloudabi" @@ -745,18 +789,18 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" dependencies = [ "cc", ] [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "colored" @@ -867,7 +911,7 @@ version = "0.1.0" dependencies = [ "integrity_core_types", "serde", - "uuid", + "uuid 1.18.1", ] [[package]] @@ -1276,6 +1320,29 @@ dependencies = [ "openssl-src", ] +[[package]] +name = "deprecated_holochain_receptor" +version = "0.1.0" +dependencies = [ + "async-trait", + "base_types", + "client_shared_types", + "core_types", + "futures-executor", + "holochain_client", + "holochain_types", + "holon_dance_builders", + "holons_boundary", + "holons_core", + "holons_loader_client", + "holons_trust_channel", + "integrity_core_types", + "serde_bytes", + "tokio", + "tracing", + "type_names", +] + [[package]] name = "der" version = "0.7.10" @@ -1543,18 +1610,18 @@ dependencies = [ [[package]] name = "env_filter" -version = "1.0.0" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a1c3cc8e57274ec99de65301228b537f1e4eedc1b8e0f9411c6caac8ae7308f" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" dependencies = [ "log", ] [[package]] name = "env_logger" -version = "0.11.9" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2daee4ea451f429a58296525ddf28b45a3b64f1acf6587e2067437bb11e218d" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" dependencies = [ "env_filter", "log", @@ -1573,7 +1640,19 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "39cab71617ae0d63f51a36d69f866391735b51691dbda63cf6f96d042b63efeb" dependencies = [ "libc", - "windows-sys 0.61.2", + "windows-sys 0.59.0", +] + +[[package]] +name = "event-emitter-rs" +version = "0.1.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7dccdd0a59457ba353cc44c26d431ca5089f2cf93035c780a1b3f2814a017ebd" +dependencies = [ + "bincode", + "lazy_static", + "serde", + "uuid 0.8.2", ] [[package]] @@ -1742,9 +1821,12 @@ dependencies = [ [[package]] name = "fragile" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" +checksum = "8878864ba14bb86e818a412bfd6f18f9eabd4ec0f008a28e8f7eb61db532fcf9" +dependencies = [ + "futures-core", +] [[package]] name = "fs-err" @@ -1938,19 +2020,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "getrandom" -version = "0.4.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" -dependencies = [ - "cfg-if 1.0.4", - "libc", - "r-efi", - "wasip2", - "wasip3", -] - [[package]] name = "gimli" version = "0.28.1" @@ -2306,7 +2375,7 @@ dependencies = [ "unwrap_to", "url", "url2", - "uuid", + "uuid 1.18.1", "wasmer", "wasmer-middlewares", ] @@ -2367,6 +2436,31 @@ dependencies = [ "url", ] +[[package]] +name = "holochain_client" +version = "0.7.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b29ca41800cdbf235c150282decd8eec109fd19c5019f39beccfa089b4102ddc" +dependencies = [ + "anyhow", + "async-trait", + "ed25519-dalek", + "event-emitter-rs", + "holo_hash", + "holochain_conductor_api", + "holochain_nonce", + "holochain_types", + "holochain_websocket", + "holochain_zome_types", + "kitsune2_api", + "lair_keystore_api", + "parking_lot", + "rand 0.8.5", + "serde", + "thiserror 2.0.18", + "tokio", +] + [[package]] name = "holochain_conductor_api" version = "0.5.6" @@ -2951,15 +3045,19 @@ version = "0.1.0" dependencies = [ "async-trait", "base_types", + "client_shared_types", "core_types", + "deprecated_holochain_receptor", "futures-executor", "holon_dance_builders", "holons_boundary", "holons_core", "integrity_core_types", + "recovery_receptor", "serde", "serde_bytes", "tokio", + "tracing", ] [[package]] @@ -2975,7 +3073,7 @@ dependencies = [ "sha2", "tracing", "type_names", - "uuid", + "uuid 1.18.1", ] [[package]] @@ -3079,7 +3177,7 @@ dependencies = [ "tracing", "tracing-subscriber", "type_names", - "uuid", + "uuid 1.18.1", ] [[package]] @@ -3155,21 +3253,21 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69c3a5eccb191563dc17c9e350fd7584292ab2910824a5750b117d9c466e1734" dependencies = [ - "anstream", + "anstream 0.6.21", "anstyle", "backtrace", "serde", "serde_derive", "sysinfo 0.34.2", "toml 0.9.5", - "uuid", + "uuid 1.18.1", ] [[package]] name = "hyper" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" dependencies = [ "atomic-waker", "bytes", @@ -3182,7 +3280,6 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -3267,9 +3364,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" dependencies = [ "displaydoc", "litemap", @@ -3280,9 +3377,9 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "33747cecc725eebb47ac503fab725e395d50cb7889ae490a1359f130611d4cc5" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -3320,9 +3417,9 @@ checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" [[package]] name = "icu_provider" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" dependencies = [ "displaydoc", "icu_locale_core", @@ -3333,12 +3430,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "id-arena" -version = "2.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d3067d79b975e8844ca9eb072e16b31c3c1c36928edf9c6789548c524d0d954" - [[package]] name = "ident_case" version = "1.0.1" @@ -3395,7 +3486,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "232929e1d75fe899576a3d5c7416ad0d88dbfbb3c3d6aa00873a7408a50ddb88" dependencies = [ "ahash", - "clap 4.5.60", + "clap 4.6.0", "crossbeam-channel", "crossbeam-utils", "dashmap", @@ -3439,9 +3530,9 @@ checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" dependencies = [ "memchr", "serde", @@ -3455,7 +3546,7 @@ checksum = "3640c1c38b8e4e43584d8df18be5fc6b0aa314ce6ebf51b53313d4306cca8e46" dependencies = [ "hermit-abi 0.5.2", "libc", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -3521,9 +3612,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "jni" @@ -3534,7 +3625,7 @@ dependencies = [ "cesu8", "cfg-if 1.0.4", "combine", - "jni-sys", + "jni-sys 0.3.1", "log", "thiserror 1.0.69", "walkdir", @@ -3543,9 +3634,31 @@ dependencies = [ [[package]] name = "jni-sys" -version = "0.3.0" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.117", +] [[package]] name = "jobserver" @@ -3559,10 +3672,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.91" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b49715b7073f385ba4bc528e5747d02e66cb39c6146efb66b781f131f0fb399c" +checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" dependencies = [ + "cfg-if 1.0.4", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -3665,7 +3780,7 @@ dependencies = [ "axum-server", "base64 0.22.1", "bytes", - "clap 4.5.60", + "clap 4.6.0", "ctrlc", "ed25519-dalek", "futures", @@ -3813,9 +3928,9 @@ checksum = "09edd9e8b54e49e587e4f6295a7d29c3ea94d469cb40ab8ca70b288248a81db2" [[package]] name = "libc" -version = "0.2.182" +version = "0.2.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6800badb6cb2082ffd7b6a67e6125bb39f18782f793520caee8cb8846be06112" +checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" [[package]] name = "libflate" @@ -3853,9 +3968,9 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.14" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1744e39d1d6a9948f4f388969627434e31128196de472883b39f148769bfe30a" +checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" dependencies = [ "bitflags 2.11.0", "libc", @@ -3875,7 +3990,7 @@ dependencies = [ "minisign-verify", "pkg-config", "tar", - "ureq 3.2.0", + "ureq 3.3.0", "vcpkg", "zip", ] @@ -3906,9 +4021,9 @@ checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "lock_api" @@ -4025,9 +4140,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "minisign-verify" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e856fdd13623a2f5f2f54676a4ee49502a96a80ef4a62bcedd23d52427c44d43" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" [[package]] name = "miniz_oxide" @@ -4041,9 +4156,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "wasi 0.11.1+wasi-snapshot-preview1", @@ -4192,7 +4307,7 @@ version = "0.50.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7957b9740744892f114936ab4a57b3f487491bbeafaf8083688b16841a4240e5" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -4302,9 +4417,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -4312,9 +4427,9 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ "proc-macro-crate", "proc-macro2", @@ -4381,9 +4496,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" @@ -4420,9 +4535,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.111" +version = "0.9.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" +checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" dependencies = [ "cc", "libc", @@ -4571,9 +4686,9 @@ checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" [[package]] name = "potential_utf" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ "zerovec", ] @@ -4709,9 +4824,9 @@ dependencies = [ [[package]] name = "proptest" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "37566cb3fdacef14c0737f9546df7cfeadbfbc9fef10991038bf5015d0c80532" +checksum = "4b45fcc2344c680f5025fe57779faef368840d0bd1f42f216291f0dc4ace4744" dependencies = [ "bit-set", "bit-vec", @@ -4828,9 +4943,9 @@ dependencies = [ [[package]] name = "quick_cache" -version = "0.6.18" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ada44a88ef953a3294f6eb55d2007ba44646015e18613d2f213016379203ef3" +checksum = "5a70b1b8b47e31d0498ecbc3c5470bb931399a8bfed1fd79d1717a61ce7f96e3" dependencies = [ "equivalent", "hashbrown 0.16.1", @@ -4857,7 +4972,7 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "rustls", "socket2", "thiserror 2.0.18", @@ -4868,16 +4983,16 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ "bytes", "getrandom 0.3.4", "lru-slab", "rand 0.9.2", "ring", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "rustls", "rustls-pki-types", "slab", @@ -4898,14 +5013,14 @@ dependencies = [ "once_cell", "socket2", "tracing", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -4935,7 +5050,7 @@ checksum = "06cc23a61faf4643d8b59ed52c27ed434476dd7aa6f39e1eff7d6bbd35985093" dependencies = [ "r2d2", "rusqlite", - "uuid", + "uuid 1.18.1", ] [[package]] @@ -5214,6 +5329,24 @@ dependencies = [ "rand_core 0.3.1", ] +[[package]] +name = "recovery_receptor" +version = "0.1.0" +dependencies = [ + "client_shared_types", + "core_types", + "futures-executor", + "holons_boundary", + "holons_core", + "rusqlite", + "serde", + "serde_json", + "sha2", + "tokio", + "tracing", + "uuid 1.18.1", +] + [[package]] name = "redox_syscall" version = "0.5.18" @@ -5412,7 +5545,7 @@ dependencies = [ "rend", "rkyv_derive", "tinyvec", - "uuid", + "uuid 1.18.1", ] [[package]] @@ -5542,9 +5675,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" [[package]] name = "rustc_version" @@ -5565,7 +5698,7 @@ dependencies = [ "errno", "libc", "linux-raw-sys", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -5617,9 +5750,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" dependencies = [ "aws-lc-rs", "ring", @@ -5712,7 +5845,7 @@ dependencies = [ "anstyle", "base64 0.22.1", "bytes", - "clap 4.5.60", + "clap 4.6.0", "ed25519-dalek", "futures", "rand 0.8.5", @@ -5726,9 +5859,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ "windows-sys 0.61.2", ] @@ -6087,9 +6220,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "simdutf8" @@ -6117,12 +6250,12 @@ checksum = "67b1b7a3b5fe4f1376887184045fcf45c69e92af734b7aaddc05fb777b6fbd03" [[package]] name = "socket2" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -6371,9 +6504,9 @@ dependencies = [ [[package]] name = "tar" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +checksum = "22692a6476a21fa75fdfc11d452fda482af402c008cdbaf3476414e122040973" dependencies = [ "filetime", "libc", @@ -6400,25 +6533,25 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.26.0" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82a72c767771b47409d2345987fda8628641887d5466101319899796367354a0" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.1", + "getrandom 0.3.4", "once_cell", "rustix", - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] name = "terminal_size" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" +checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", - "windows-sys 0.60.2", + "windows-sys 0.59.0", ] [[package]] @@ -6531,9 +6664,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", "zerovec", @@ -6541,9 +6674,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -6556,9 +6689,9 @@ checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" [[package]] name = "tokio" -version = "1.49.0" +version = "1.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "2bd1c4c0fc4a7ab90fc15ef6daaa3ec3b893f004f915f2392557ed23237820cd" dependencies = [ "bytes", "libc", @@ -6573,9 +6706,9 @@ dependencies = [ [[package]] name = "tokio-macros" -version = "2.6.1" +version = "2.7.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" +checksum = "385a6cb71ab9ab790c5fe8d67f1645e6c450a7ce006a33de03daa956cf70a496" dependencies = [ "proc-macro2", "quote", @@ -6709,7 +6842,7 @@ dependencies = [ "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", - "winnow 0.7.14", + "winnow 0.7.15", ] [[package]] @@ -6721,16 +6854,16 @@ dependencies = [ "indexmap 2.11.1", "toml_datetime 0.7.0", "toml_parser", - "winnow 0.7.14", + "winnow 0.7.15", ] [[package]] name = "toml_parser" -version = "1.0.9+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "702d4415e08923e7e1ef96cd5727c0dfed80b4d2fa25db9647fe5eb6f7c5a4c4" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 0.7.14", + "winnow 1.0.1", ] [[package]] @@ -6741,9 +6874,9 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "toml_writer" -version = "1.0.6+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" [[package]] name = "tower" @@ -6865,9 +6998,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.22" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", "nu-ansi-term", @@ -7061,9 +7194,9 @@ checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" [[package]] name = "unicode-width" @@ -7125,22 +7258,22 @@ dependencies = [ [[package]] name = "ureq" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc97a28575b85cfedf2a7e7d3cc64b3e11bd8ac766666318003abbacc7a21fc" +checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0" dependencies = [ "base64 0.22.1", "log", "percent-encoding", "ureq-proto", - "utf-8", + "utf8-zero", ] [[package]] name = "ureq-proto" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d81f9efa9df032be5934a46a068815a10a042b494b6a58cb0a1a97bb5467ed6f" +checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c" dependencies = [ "base64 0.22.1", "http", @@ -7183,6 +7316,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -7195,6 +7334,15 @@ version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "06abde3611657adf66d383f00b093d7faecc7fa57071cce2578660c9f1010821" +[[package]] +name = "uuid" +version = "0.8.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bc5cf98d8186244414c848017f0e2676b3fcb46807f6668a97dfe67359a3c4b7" +dependencies = [ + "getrandom 0.2.17", +] + [[package]] name = "uuid" version = "1.18.1" @@ -7215,7 +7363,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "23b082222b4f6619906941c17eb2297fff4c2fb96cb60164170522942a200bd8" dependencies = [ "outref", - "uuid", + "uuid 1.18.1", "vsimd", ] @@ -7298,20 +7446,11 @@ dependencies = [ "wit-bindgen", ] -[[package]] -name = "wasip3" -version = "0.4.0+wasi-0.3.0-rc-2026-01-06" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5428f8bf88ea5ddc08faddef2ac4a67e390b88186c703ce6dbd955e1c145aca5" -dependencies = [ - "wit-bindgen", -] - [[package]] name = "wasm-bindgen" -version = "0.2.114" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6532f9a5c1ece3798cb1c2cfdba640b9b3ba884f5db45973a6f442510a87d38e" +checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" dependencies = [ "cfg-if 1.0.4", "once_cell", @@ -7322,23 +7461,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.64" +version = "0.4.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e9c5522b3a28661442748e09d40924dfb9ca614b21c00d3fd135720e48b67db8" +checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" dependencies = [ - "cfg-if 1.0.4", - "futures-util", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.114" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18a2d50fcf105fb33bb15f00e7a77b772945a2ee45dcf454961fd843e74c18e6" +checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -7346,9 +7481,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.114" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03ce4caeaac547cdf713d280eda22a730824dd11e6b8c3ca9e42247b25c631e3" +checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" dependencies = [ "bumpalo", "proc-macro2", @@ -7359,9 +7494,9 @@ dependencies = [ [[package]] name = "wasm-bindgen-shared" -version = "0.2.114" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75a326b8c223ee17883a4251907455a2431acc2791c98c26279376490c378c16" +checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" dependencies = [ "unicode-ident", ] @@ -7376,18 +7511,6 @@ dependencies = [ "wasmparser 0.244.0", ] -[[package]] -name = "wasm-metadata" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb0e353e6a2fbdc176932bbaab493762eb1255a7900fe0fea1a2f96c296cc909" -dependencies = [ - "anyhow", - "indexmap 2.11.1", - "wasm-encoder", - "wasmparser 0.244.0", -] - [[package]] name = "wasmer" version = "6.1.0" @@ -7560,7 +7683,6 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "47b807c72e1bac69382b3a6fb3dbe8ea4c0ed87ff5629b8685ae6b9a611028fe" dependencies = [ "bitflags 2.11.0", - "hashbrown 0.15.5", "indexmap 2.11.1", "semver", ] @@ -7589,9 +7711,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.91" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "854ba17bb104abfb26ba36da9729addc7ce7f06f5c0f90f3c391f8461cca21f9" +checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" dependencies = [ "js-sys", "wasm-bindgen", @@ -7663,7 +7785,7 @@ version = "0.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c2a7b1c03c876122aa43f3020e6c3c3ee5c05081c9a00739faf7503aeba10d22" dependencies = [ - "windows-sys 0.61.2", + "windows-sys 0.59.0", ] [[package]] @@ -7891,15 +8013,6 @@ dependencies = [ "windows-targets 0.52.6", ] -[[package]] -name = "windows-sys" -version = "0.60.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f2f500e4d28234f72040990ec9d39e3a6b950f9f22d3dba18416c35882612bcb" -dependencies = [ - "windows-targets 0.53.5", -] - [[package]] name = "windows-sys" version = "0.61.2" @@ -7933,30 +8046,13 @@ dependencies = [ "windows_aarch64_gnullvm 0.52.6", "windows_aarch64_msvc 0.52.6", "windows_i686_gnu 0.52.6", - "windows_i686_gnullvm 0.52.6", + "windows_i686_gnullvm", "windows_i686_msvc 0.52.6", "windows_x86_64_gnu 0.52.6", "windows_x86_64_gnullvm 0.52.6", "windows_x86_64_msvc 0.52.6", ] -[[package]] -name = "windows-targets" -version = "0.53.5" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4945f9f551b88e0d65f3db0bc25c33b8acea4d9e41163edf90dcd0b19f9069f3" -dependencies = [ - "windows-link 0.2.1", - "windows_aarch64_gnullvm 0.53.1", - "windows_aarch64_msvc 0.53.1", - "windows_i686_gnu 0.53.1", - "windows_i686_gnullvm 0.53.1", - "windows_i686_msvc 0.53.1", - "windows_x86_64_gnu 0.53.1", - "windows_x86_64_gnullvm 0.53.1", - "windows_x86_64_msvc 0.53.1", -] - [[package]] name = "windows-threading" version = "0.1.0" @@ -7978,12 +8074,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" -[[package]] -name = "windows_aarch64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9d8416fa8b42f5c947f8482c43e7d89e73a173cead56d044f6a56104a6d1b53" - [[package]] name = "windows_aarch64_msvc" version = "0.42.2" @@ -7996,12 +8086,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" -[[package]] -name = "windows_aarch64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b9d782e804c2f632e395708e99a94275910eb9100b2114651e04744e9b125006" - [[package]] name = "windows_i686_gnu" version = "0.42.2" @@ -8014,24 +8098,12 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" -[[package]] -name = "windows_i686_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "960e6da069d81e09becb0ca57a65220ddff016ff2d6af6a223cf372a506593a3" - [[package]] name = "windows_i686_gnullvm" version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" -[[package]] -name = "windows_i686_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa7359d10048f68ab8b09fa71c3daccfb0e9b559aed648a8f95469c27057180c" - [[package]] name = "windows_i686_msvc" version = "0.42.2" @@ -8044,12 +8116,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" -[[package]] -name = "windows_i686_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e7ac75179f18232fe9c285163565a57ef8d3c89254a30685b57d83a38d326c2" - [[package]] name = "windows_x86_64_gnu" version = "0.42.2" @@ -8062,12 +8128,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" -[[package]] -name = "windows_x86_64_gnu" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9c3842cdd74a865a8066ab39c8a7a473c0778a3f29370b5fd6b4b9aa7df4a499" - [[package]] name = "windows_x86_64_gnullvm" version = "0.42.2" @@ -8080,12 +8140,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" -[[package]] -name = "windows_x86_64_gnullvm" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0ffa179e2d07eee8ad8f57493436566c7cc30ac536a3379fdf008f47f6bb7ae1" - [[package]] name = "windows_x86_64_msvc" version = "0.42.2" @@ -8098,12 +8152,6 @@ version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" -[[package]] -name = "windows_x86_64_msvc" -version = "0.53.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d6bbff5f0aada427a1e5a6da5f1f98158182f26556f345ac9e04d36d0ebed650" - [[package]] name = "winnow" version = "0.6.26" @@ -8115,100 +8163,24 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.14" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" dependencies = [ "memchr", ] [[package]] -name = "wit-bindgen" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" -dependencies = [ - "wit-bindgen-rust-macro", -] - -[[package]] -name = "wit-bindgen-core" -version = "0.51.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea61de684c3ea68cb082b7a88508a8b27fcc8b797d738bfc99a82facf1d752dc" -dependencies = [ - "anyhow", - "heck 0.5.0", - "wit-parser", -] - -[[package]] -name = "wit-bindgen-rust" -version = "0.51.0" +name = "winnow" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c566e0f4b284dd6561c786d9cb0142da491f46a9fbed79ea69cdad5db17f21" -dependencies = [ - "anyhow", - "heck 0.5.0", - "indexmap 2.11.1", - "prettyplease", - "syn 2.0.117", - "wasm-metadata", - "wit-bindgen-core", - "wit-component", -] +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" [[package]] -name = "wit-bindgen-rust-macro" +name = "wit-bindgen" version = "0.51.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c0f9bfd77e6a48eccf51359e3ae77140a7f50b1e2ebfe62422d8afdaffab17a" -dependencies = [ - "anyhow", - "prettyplease", - "proc-macro2", - "quote", - "syn 2.0.117", - "wit-bindgen-core", - "wit-bindgen-rust", -] - -[[package]] -name = "wit-component" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d66ea20e9553b30172b5e831994e35fbde2d165325bec84fc43dbf6f4eb9cb2" -dependencies = [ - "anyhow", - "bitflags 2.11.0", - "indexmap 2.11.1", - "log", - "serde", - "serde_derive", - "serde_json", - "wasm-encoder", - "wasm-metadata", - "wasmparser 0.244.0", - "wit-parser", -] - -[[package]] -name = "wit-parser" -version = "0.244.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc8ac4bc1dc3381b7f59c34f00b67e18f910c2c0f50015669dde7def656a736" -dependencies = [ - "anyhow", - "id-arena", - "indexmap 2.11.1", - "log", - "semver", - "serde", - "serde_derive", - "serde_json", - "unicode-xid", - "wasmparser 0.244.0", -] +checksum = "d7249219f66ced02969388cf2bb044a09756a083d0fab1e566056b04d9fbcaa5" [[package]] name = "writeable" @@ -8255,9 +8227,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -8266,9 +8238,9 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", @@ -8278,18 +8250,18 @@ dependencies = [ [[package]] name = "zerocopy" -version = "0.8.40" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a789c6e490b576db9f7e6b6d661bcc9799f7c0ac8352f56ea20193b2681532e5" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.40" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f65c489a7071a749c849713807783f70672b28094011623e200cb86dcb835953" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", @@ -8298,18 +8270,18 @@ dependencies = [ [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", @@ -8325,9 +8297,9 @@ checksum = "b97154e67e32c85465826e8bcc1c59429aaaf107c1e4a9e53c8d8ccd5eff88d0" [[package]] name = "zerotrie" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" dependencies = [ "displaydoc", "yoke", @@ -8336,9 +8308,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ "yoke", "zerofrom", @@ -8347,9 +8319,9 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", diff --git a/host/Cargo.lock b/host/Cargo.lock index 72ab980a..45a781b8 100644 --- a/host/Cargo.lock +++ b/host/Cargo.lock @@ -9,13 +9,13 @@ dependencies = [ "anyhow", "app_dirs2", "async-trait", + "client_shared_types", "core_types", + "deprecated_holochain_receptor", "futures", "holochain_client", - "holochain_receptor", "holons_client", "holons_core", - "holons_receptor", "holons_trust_channel", "map_commands", "recovery_receptor", @@ -133,7 +133,22 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "43d5b281e737544384e969a5ccad3f1cdd24b48086a0fc1b2a5262a26b8f4f4a" dependencies = [ "anstyle", - "anstyle-parse", + "anstyle-parse 0.2.7", + "anstyle-query", + "anstyle-wincon", + "colorchoice", + "is_terminal_polyfill", + "utf8parse", +] + +[[package]] +name = "anstream" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "824a212faf96e9acacdbd09febd34438f8f711fb84e09a8916013cd7815ca28d" +dependencies = [ + "anstyle", + "anstyle-parse 1.0.0", "anstyle-query", "anstyle-wincon", "colorchoice", @@ -143,9 +158,9 @@ dependencies = [ [[package]] name = "anstyle" -version = "1.0.13" +version = "1.0.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5192cca8006f1fd4f7237516f40fa183bb07f8fbdfedaa0036de5ea9b0b45e78" +checksum = "940b3a0ca603d1eade50a4846a2afffd5ef57a9feac2c0e2ec2e14f9ead76000" [[package]] name = "anstyle-parse" @@ -156,6 +171,15 @@ dependencies = [ "utf8parse", ] +[[package]] +name = "anstyle-parse" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "52ce7f38b242319f7cabaa6813055467063ecdc9d355bbb4ce0c68908cd8130e" +dependencies = [ + "utf8parse", +] + [[package]] name = "anstyle-query" version = "1.1.5" @@ -178,9 +202,9 @@ dependencies = [ [[package]] name = "anyhow" -version = "1.0.101" +version = "1.0.102" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f0e0fee31ef5ed1ba1316088939cea399010ed7731dba877ed44aeb407a75ea" +checksum = "7f202df86484c868dbad7eaa557ef785d5c66295e41b460ef922eca0723b842c" [[package]] name = "app_dirs2" @@ -250,9 +274,9 @@ dependencies = [ [[package]] name = "async-executor" -version = "1.13.3" +version = "1.14.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "497c00e0fd83a72a79a39fcbd8e3e2f055d6f6c7e025f3b3d91f4f8e76527fb8" +checksum = "c96bf972d85afc50bf5ab8fe2d54d1586b4e0b46c97c50a0c9e71e2f7bcd812a" dependencies = [ "async-task", "concurrent-queue", @@ -332,7 +356,7 @@ checksum = "3b43422f69d8ff38f95f1b2bb76517c91589a924d1559a0e935d7c8ce0274c11" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -416,7 +440,7 @@ checksum = "9035ad2d096bed7955a320ee7e2230574d28fd3c3a0f186cbea1ff3c7eed5dbb" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -488,9 +512,9 @@ dependencies = [ [[package]] name = "aws-lc-rs" -version = "1.15.4" +version = "1.16.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b7b6141e96a8c160799cc2d5adecd5cbbe5054cb8c7c4af53da0f83bb7ad256" +checksum = "a054912289d18629dc78375ba2c3726a3afe3ff71b4edba9dedfca0e3446d1fc" dependencies = [ "aws-lc-sys", "zeroize", @@ -498,9 +522,9 @@ dependencies = [ [[package]] name = "aws-lc-sys" -version = "0.37.0" +version = "0.39.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c34dda4df7017c8db52132f0f8a2e0f8161649d15723ed63fc00c82d0f2081a" +checksum = "83a25cf98105baa966497416dbd42565ce3a8cf8dbfd59803ec9ad46f3126399" dependencies = [ "cc", "cmake", @@ -597,7 +621,7 @@ dependencies = [ "regex", "rustc-hash 1.1.0", "shlex", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -615,9 +639,9 @@ dependencies = [ "proc-macro2", "quote", "regex", - "rustc-hash 2.1.1", + "rustc-hash 2.1.2", "shlex", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -727,9 +751,9 @@ dependencies = [ [[package]] name = "bumpalo" -version = "3.19.1" +version = "3.20.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5dd9dc738b7a8311c7ade152424974d8115f2cdad61e8dab8dac9f2362298510" +checksum = "5d20789868f4b01b2f2caec9f5c4e0213b41e3e5702a50157d699ae31ced2fcb" [[package]] name = "bytecheck" @@ -773,7 +797,7 @@ checksum = "89385e82b5d1821d2219e0b095efa2cc1f246cbf99080f3be46a1a85c0d392d9" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -901,9 +925,9 @@ dependencies = [ [[package]] name = "cc" -version = "1.2.55" +version = "1.2.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "47b26a0954ae34af09b50f0de26458fa95369a0d478d8236d3f93082b219bd29" +checksum = "e1e928d4b69e3077709075a938a05ffbedfa53a84c8f766efbf8220bb1ff60e1" dependencies = [ "find-msvc-tools", "jobserver", @@ -967,9 +991,9 @@ checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" [[package]] name = "chrono" -version = "0.4.43" +version = "0.4.44" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fac4744fb15ae8337dc853fee7fb3f4e48c0fbaa23d0afe49c447b4fab126118" +checksum = "c673075a2e0e5f4a1dde27ce9dee1ea4558c7ffe648f576438a20ca1d2acc4b0" dependencies = [ "iana-time-zone", "js-sys", @@ -1017,9 +1041,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.57" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6899ea499e3fb9305a65d5ebf6e3d2248c5fab291f300ad0a704fbe142eae31a" +checksum = "b193af5b67834b676abd72466a96c1024e6a6ad978a1f484bd90b85c94041351" dependencies = [ "clap_builder", "clap_derive", @@ -1027,11 +1051,11 @@ dependencies = [ [[package]] name = "clap_builder" -version = "4.5.57" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b12c8b680195a62a8364d16b8447b01b6c2c8f9aaf68bee653be34d4245e238" +checksum = "714a53001bf66416adb0e2ef5ac857140e7dc3a0c48fb28b2f10762fc4b5069f" dependencies = [ - "anstream", + "anstream 1.0.0", "anstyle", "clap_lex", "strsim 0.11.1", @@ -1040,21 +1064,32 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.55" +version = "4.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a92793da1a46a5f2a02a6f4c46c6496b28c43638adea8306fcb0caa1634f24e5" +checksum = "1110bd8a634a1ab8cb04345d8d878267d57c3cf1b38d91b71af6686408bbca6a" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "clap_lex" -version = "0.7.7" +version = "1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c3e64b0cc0439b12df2fa678eae89a1c56a529fd067a9115f7827f1fffd22b32" +checksum = "c8d4a3bb8b1e0c1050499d1815f5ab16d04f0959b233085fb31653fbfc9d98f9" + +[[package]] +name = "client_shared_types" +version = "0.1.0" +dependencies = [ + "core_types", + "holons_boundary", + "holons_core", + "serde", + "serde_bytes", +] [[package]] name = "cloudabi" @@ -1067,18 +1102,18 @@ dependencies = [ [[package]] name = "cmake" -version = "0.1.57" +version = "0.1.58" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75443c44cd6b379beb8c5b45d85d0773baf31cce901fe7bb252f4eff3008ef7d" +checksum = "c0f78a02292a74a88ac736019ab962ece0bc380e3f977bf72e376c5d78ff0678" dependencies = [ "cc", ] [[package]] name = "colorchoice" -version = "1.0.4" +version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b05b61dc5112cbb17e4b6cd61790d9845d13888356391624cbe7e41efeac1e75" +checksum = "1d07550c9036bf2ae0c684c4297d503f838287c83c53686d05370d0e139ae570" [[package]] name = "colored" @@ -1192,9 +1227,9 @@ checksum = "773648b94d0e5d620f64f280777445740e61fe701025087ec8b57f45c791888b" [[package]] name = "core-graphics" -version = "0.24.0" +version = "0.25.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fa95a34622365fa5bbf40b20b75dba8dfa8c94c734aea8ac9a5ca38af14316f1" +checksum = "064badf302c3194842cf2c5d61f56cc88e54a759313879cdf03abdd27d0c3b97" dependencies = [ "bitflags 2.9.4", "core-foundation 0.10.1", @@ -1234,9 +1269,9 @@ dependencies = [ [[package]] name = "corosensei" -version = "0.3.2" +version = "0.3.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2b2b4c7e3e97730e6b0b8c5ff5ca82c663d1a645e4f630f4fa4c24e80626787e" +checksum = "2c54787b605c7df106ceccf798df23da4f2e09918defad66705d1cedf3bb914f" dependencies = [ "autocfg 1.5.0", "cfg-if 1.0.4", @@ -1256,7 +1291,7 @@ dependencies = [ "lazy_static", "proc-macro2", "regex", - "syn 2.0.114", + "syn 2.0.117", "unicode-xid", ] @@ -1268,7 +1303,7 @@ checksum = "25fcfea2ee05889597d35e986c2ad0169694320ae5cc8f6d2640a4bb8a884560" dependencies = [ "lazy_static", "proc-macro2", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1474,6 +1509,19 @@ dependencies = [ "syn 1.0.109", ] +[[package]] +name = "cssparser" +version = "0.36.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dae61cf9c0abb83bd659dab65b7e4e38d8236824c85f0f804f173567bda257d2" +dependencies = [ + "cssparser-macros", + "dtoa-short", + "itoa", + "phf 0.13.1", + "smallvec", +] + [[package]] name = "cssparser-macros" version = "0.6.1" @@ -1481,7 +1529,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "13b588ba4ac1a99f7f2964d24b3d896ddc6bf847ee3855dbd4366f058cfcd331" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1491,7 +1539,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "32a2785755761f3ddc1492979ce1e48d2c00d09311c39e4466429188f3dd6501" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1501,7 +1549,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e0b1fab2ae45819af2d0731d60f2afe17227ebb1a1538a236da84c93e9a60162" dependencies = [ "dispatch2", - "nix 0.31.1", + "nix 0.31.2", "windows-sys 0.61.2", ] @@ -1529,7 +1577,7 @@ checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1587,7 +1635,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1601,7 +1649,7 @@ dependencies = [ "proc-macro2", "quote", "strsim 0.11.1", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1623,7 +1671,7 @@ checksum = "fc34b93ccb385b40dc71c6fceac4b2ad23662c7eeb248cf10d529b7e055b6ead" dependencies = [ "darling_core 0.20.11", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1634,7 +1682,7 @@ checksum = "d38308df82d1080de0afee5d069fa14b0326a88c14f15c5ccda35b4a6c414c81" dependencies = [ "darling_core 0.21.3", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1692,9 +1740,32 @@ dependencies = [ [[package]] name = "deflate64" -version = "0.1.10" +version = "0.1.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "26bf8fc351c5ed29b5c2f0cbbac1b209b74f60ecd62e675a998df72c49af5204" +checksum = "ac6b926516df9c60bfa16e107b21086399f8285a44ca9711344b9e553c5146e2" + +[[package]] +name = "deprecated_holochain_receptor" +version = "0.1.0" +dependencies = [ + "async-trait", + "base_types", + "client_shared_types", + "core_types", + "futures-executor", + "holochain_client", + "holochain_types", + "holon_dance_builders", + "holons_boundary", + "holons_core", + "holons_loader_client", + "holons_trust_channel", + "integrity_core_types", + "serde_bytes", + "tokio", + "tracing", + "type_names", +] [[package]] name = "der" @@ -1724,7 +1795,7 @@ checksum = "2cdc8d50f426189eef89dac62fabfa0abb27d5cc008f25bf4156a0203325becc" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1735,7 +1806,7 @@ checksum = "67e77553c4162a157adbf834ebae5b415acbecbeafc7a74b0e886657506a7611" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1756,7 +1827,7 @@ dependencies = [ "darling 0.20.11", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1766,7 +1837,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ab63b0e2bf4d5928aff72e83a7dace85d7bba5fe12dcc3c5a572d78caffd3f3c" dependencies = [ "derive_builder_core", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1779,7 +1850,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1801,7 +1872,7 @@ dependencies = [ "proc-macro2", "quote", "rustc_version", - "syn 2.0.114", + "syn 2.0.117", "unicode-xid", ] @@ -1849,17 +1920,11 @@ dependencies = [ "windows-sys 0.61.2", ] -[[package]] -name = "dispatch" -version = "0.2.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bd0c93bb4b0c6d9b77f4435b0ae98c24d17f1c45b2ff844c6151a07256ca923b" - [[package]] name = "dispatch2" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "89a09f22a6c6069a18470eb92d2298acf25463f14256d24778e1230d789a2aec" +checksum = "1e0e367e4e7da84520dedcac1901e4da967309406d1e51017ae1abfb97adbd38" dependencies = [ "bitflags 2.9.4", "block2", @@ -1875,7 +1940,7 @@ checksum = "97369cbbc041bc366949bc74d34658d6cda5621039731c6310521892a3a20ae0" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1898,7 +1963,7 @@ checksum = "0fbbb781877580993a8707ec48672673ec7b81eeba04cfd2310bd28c08e47c8f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -1911,6 +1976,21 @@ dependencies = [ "quick-error", ] +[[package]] +name = "dom_query" +version = "0.27.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "521e380c0c8afb8d9a1e83a1822ee03556fc3e3e7dbc1fd30be14e37f9cb3f89" +dependencies = [ + "bit-set", + "cssparser 0.36.0", + "foldhash 0.2.0", + "html5ever 0.38.0", + "precomputed-hash", + "selectors 0.36.1", + "tendril 0.5.0", +] + [[package]] name = "downcast" version = "0.11.0" @@ -1995,9 +2075,9 @@ dependencies = [ [[package]] name = "embed-resource" -version = "3.0.6" +version = "3.0.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55a075fc573c64510038d7ee9abc7990635863992f83ebc52c8b433b8411a02e" +checksum = "63a1d0de4f2249aa0ff5884d7080814f446bb241a559af6c170a41e878ed2d45" dependencies = [ "cc", "memchr", @@ -2060,23 +2140,23 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "env_filter" -version = "0.1.4" +version = "1.0.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1bf3c259d255ca70051b30e2e95b5446cdb8949ac4cd22c0d7fd634d89f568e2" +checksum = "32e90c2accc4b07a8456ea0debdc2e7587bdd890680d71173a15d4ae604f6eef" dependencies = [ "log", ] [[package]] name = "env_logger" -version = "0.11.8" +version = "0.11.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "13c863f0904021b108aa8b2f55046443e6b1ebde8fd4a15c399893aae4fa069f" +checksum = "0621c04f2196ac3f488dd583365b9c09be011a4ab8b9f37248ffcc8f6198b56a" dependencies = [ "env_filter", "log", @@ -2322,7 +2402,7 @@ checksum = "1a5c6c585bc94aaf2c7b51dd4c2ba22680844aba4c687be581871a6f518c5742" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2352,9 +2432,12 @@ dependencies = [ [[package]] name = "fragile" -version = "2.0.1" +version = "2.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28dd6caf6059519a65843af8fe2a3ae298b14b80179855aeb4adc2c1934ee619" +checksum = "8878864ba14bb86e818a412bfd6f18f9eabd4ec0f008a28e8f7eb61db532fcf9" +dependencies = [ + "futures-core", +] [[package]] name = "fs_extra" @@ -2380,9 +2463,9 @@ dependencies = [ [[package]] name = "futures" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "65bc07b1a8bc7c85c5f2e110c476c7389b4554ba72af57d8445ea63a576b0876" +checksum = "8b147ee9d1f6d097cef9ce628cd2ee62288d963e16fb287bd9286455b241382d" dependencies = [ "futures-channel", "futures-core", @@ -2395,9 +2478,9 @@ dependencies = [ [[package]] name = "futures-channel" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dff15bf788c671c1934e366d07e30c1814a8ef514e1af724a602e8a2fbe1b10" +checksum = "07bbe89c50d7a535e539b8c17bc0b49bdb77747034daa8087407d655f3f7cc1d" dependencies = [ "futures-core", "futures-sink", @@ -2405,15 +2488,15 @@ dependencies = [ [[package]] name = "futures-core" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "05f29059c0c2090612e8d742178b0580d2dc940c837851ad723096f87af6663e" +checksum = "7e3450815272ef58cec6d564423f6e755e25379b217b0bc688e295ba24df6b1d" [[package]] name = "futures-executor" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e28d1d997f585e54aebc3f97d39e72338912123a67330d723fdbb564d646c9f" +checksum = "baf29c38818342a3b26b5b923639e7b1f4a61fc5e76102d4b1981c6dc7a7579d" dependencies = [ "futures-core", "futures-task", @@ -2422,9 +2505,9 @@ dependencies = [ [[package]] name = "futures-io" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9e5c1b78ca4aae1ac06c48a526a655760685149f0d465d21f37abfe57ce075c6" +checksum = "cecba35d7ad927e23624b22ad55235f2239cfa44fd10428eecbeba6d6a717718" [[package]] name = "futures-lite" @@ -2441,32 +2524,32 @@ dependencies = [ [[package]] name = "futures-macro" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "162ee34ebcb7c64a8abebc059ce0fee27c2262618d7b60ed8faf72fef13c3650" +checksum = "e835b70203e41293343137df5c0664546da5745f82ec9b84d40be8336958447b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "futures-sink" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e575fab7d1e0dcb8d0c7bcf9a63ee213816ab51902e6d244a95819acacf1d4f7" +checksum = "c39754e157331b013978ec91992bde1ac089843443c49cbc7f46150b0fad0893" [[package]] name = "futures-task" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f90f7dce0722e95104fcb095585910c0977252f286e354b5e3bd38902cd99988" +checksum = "037711b3d59c33004d3856fbdc83b99d4ff37a24768fa1be9ce3538a1cde4393" [[package]] name = "futures-util" -version = "0.3.31" +version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9fa08315bb612088cc391249efdc3bc77536f16c91f6cf495e6fbe85b20a4a81" +checksum = "389ca41296e6190b48053de0321d02a77f32f8a5d2461dd38762c0593805c6d6" dependencies = [ "futures-channel", "futures-core", @@ -2476,7 +2559,6 @@ dependencies = [ "futures-task", "memchr", "pin-project-lite", - "pin-utils", "slab", ] @@ -2631,20 +2713,20 @@ dependencies = [ "cfg-if 1.0.4", "js-sys", "libc", - "r-efi", + "r-efi 5.3.0", "wasip2", "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.4.1" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "139ef39800118c7683f2fd3c98c1b23c09ae076556b435f8e9064ae108aaeeec" +checksum = "0de51e6874e94e7bf76d726fc5d13ba782deca734ff60d5bb2fb2607c7406555" dependencies = [ "cfg-if 1.0.4", "libc", - "r-efi", + "r-efi 6.0.0", "wasip2", "wasip3", ] @@ -2732,7 +2814,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -2823,7 +2905,7 @@ dependencies = [ "proc-macro-error", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3178,7 +3260,7 @@ dependencies = [ "rand-utf8", "rand_chacha 0.3.1", "rusqlite", - "rustls 0.23.36", + "rustls 0.23.37", "schemars 0.8.22", "sd-notify", "serde", @@ -3476,25 +3558,6 @@ dependencies = [ "tracing", ] -[[package]] -name = "holochain_receptor" -version = "0.1.0" -dependencies = [ - "async-trait", - "base_types", - "core_types", - "holochain_client", - "holochain_types", - "holons_boundary", - "holons_client", - "holons_core", - "holons_loader_client", - "holons_trust_channel", - "serde_bytes", - "tracing", - "type_names", -] - [[package]] name = "holochain_runtime" version = "0.1.0" @@ -3520,7 +3583,7 @@ dependencies = [ "mr_bundle", "one_err", "portpicker", - "rustls 0.23.36", + "rustls 0.23.37", "sbd-server", "serde", "serde_json", @@ -3566,7 +3629,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "01865625f72d8b6a05487440dfce3c03b0fc83ae03bba7ed6bfbc2f6f8143d14" dependencies = [ "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -3886,15 +3949,19 @@ version = "0.1.0" dependencies = [ "async-trait", "base_types", + "client_shared_types", "core_types", + "deprecated_holochain_receptor", "futures-executor", "holon_dance_builders", "holons_boundary", "holons_core", "integrity_core_types", + "recovery_receptor", "serde", "serde_bytes", "tokio", + "tracing", ] [[package]] @@ -3939,22 +4006,6 @@ dependencies = [ "type_names", ] -[[package]] -name = "holons_receptor" -version = "0.1.0" -dependencies = [ - "async-trait", - "core_types", - "hex", - "holochain_receptor", - "holons_client", - "holons_core", - "serde_bytes", - "serde_json", - "sha2", - "tracing", -] - [[package]] name = "holons_trust_channel" version = "0.1.0" @@ -3996,10 +4047,20 @@ checksum = "3b7410cae13cbc75623c98ac4cbfd1f0bedddf3227afc24f370cf0f50a44a11c" dependencies = [ "log", "mac", - "markup5ever", + "markup5ever 0.14.1", "match_token", ] +[[package]] +name = "html5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1054432bae2f14e0061e33d23402fbaa67a921d319d56adc6bcf887ddad1cbc2" +dependencies = [ + "log", + "markup5ever 0.38.0", +] + [[package]] name = "http" version = "0.2.12" @@ -4073,7 +4134,7 @@ version = "2.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69c3a5eccb191563dc17c9e350fd7584292ab2910824a5750b117d9c466e1734" dependencies = [ - "anstream", + "anstream 0.6.21", "anstyle", "backtrace", "serde", @@ -4109,9 +4170,9 @@ dependencies = [ [[package]] name = "hyper" -version = "1.8.1" +version = "1.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2ab2d4f250c3d7b1c9fcdff1cece94ea4e2dfbec68614f7b87cb205f24ca9d11" +checksum = "6299f016b246a94207e63da54dbe807655bf9e00044f73ded42c3ac5305fbcca" dependencies = [ "atomic-waker", "bytes", @@ -4124,7 +4185,6 @@ dependencies = [ "httpdate", "itoa", "pin-project-lite", - "pin-utils", "smallvec", "tokio", "want", @@ -4151,9 +4211,9 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "e3c93eb611681b207e1fe55d5a71ecf91572ec8a6705cdb6857f7d8d5242cf58" dependencies = [ "http 1.4.0", - "hyper 1.8.1", + "hyper 1.9.0", "hyper-util", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", @@ -4173,12 +4233,12 @@ dependencies = [ "futures-util", "http 1.4.0", "http-body 1.0.1", - "hyper 1.8.1", + "hyper 1.9.0", "ipnet", "libc", "percent-encoding", "pin-project-lite", - "socket2 0.6.2", + "socket2 0.6.3", "system-configuration 0.7.0", "tokio", "tower-layer", @@ -4223,12 +4283,13 @@ dependencies = [ [[package]] name = "icu_collections" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c6b649701667bbe825c3b7e6388cb521c23d88644678e83c0c4d0a621a34b43" +checksum = "2984d1cd16c883d7935b9e07e44071dca8d917fd52ecc02c04d5fa0b5a3f191c" dependencies = [ "displaydoc", "potential_utf", + "utf8_iter", "yoke", "zerofrom", "zerovec", @@ -4236,9 +4297,9 @@ dependencies = [ [[package]] name = "icu_locale_core" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "edba7861004dd3714265b4db54a3c390e880ab658fec5f7db895fae2046b5bb6" +checksum = "92219b62b3e2b4d88ac5119f8904c10f8f61bf7e95b640d25ba3075e6cac2c29" dependencies = [ "displaydoc", "litemap", @@ -4249,9 +4310,9 @@ dependencies = [ [[package]] name = "icu_normalizer" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f6c8828b67bf8908d82127b2054ea1b4427ff0230ee9141c54251934ab1b599" +checksum = "c56e5ee99d6e3d33bd91c5d85458b6005a22140021cc324cea84dd0e72cff3b4" dependencies = [ "icu_collections", "icu_normalizer_data", @@ -4263,15 +4324,15 @@ dependencies = [ [[package]] name = "icu_normalizer_data" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7aedcccd01fc5fe81e6b489c15b247b8b0690feb23304303a9e560f37efc560a" +checksum = "da3be0ae77ea334f4da67c12f149704f19f81d1adf7c51cf482943e84a2bad38" [[package]] name = "icu_properties" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "020bfc02fe870ec3a66d93e677ccca0562506e5872c650f893269e08615d74ec" +checksum = "bee3b67d0ea5c2cca5003417989af8996f8604e34fb9ddf96208a033901e70de" dependencies = [ "icu_collections", "icu_locale_core", @@ -4283,15 +4344,15 @@ dependencies = [ [[package]] name = "icu_properties_data" -version = "2.1.2" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "616c294cf8d725c6afcd8f55abc17c56464ef6211f9ed59cccffe534129c77af" +checksum = "8e2bbb201e0c04f7b4b3e14382af113e17ba4f63e2c9d2ee626b720cbce54a14" [[package]] name = "icu_provider" -version = "2.1.1" +version = "2.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "85962cf0ce02e1e0a629cc34e7ca3e373ce20dda4c4d7294bbd0bf1fdb59e614" +checksum = "139c4cf31c8b5f33d7e199446eff9c1e02decfc2f0eec2c8d71f65befa45b421" dependencies = [ "displaydoc", "icu_locale_core", @@ -4383,7 +4444,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "232929e1d75fe899576a3d5c7416ad0d88dbfbb3c3d6aa00873a7408a50ddb88" dependencies = [ "ahash", - "clap 4.5.57", + "clap 4.6.0", "crossbeam-channel", "crossbeam-utils", "dashmap", @@ -4524,15 +4585,15 @@ dependencies = [ [[package]] name = "ipnet" -version = "2.11.0" +version = "2.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "469fb0b9cefa57e3ef31275ee7cacb78f2fdca44e4765491884a2b119d4eb130" +checksum = "d98f6fed1fde3f8c21bc40a1abb88dd75e67924f9cffc3ef95607bad8017f8e2" [[package]] name = "iri-string" -version = "0.7.10" +version = "0.7.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c91338f0783edbd6195decb37bae672fd3b165faffb89bf7b9e6942f8b1a731a" +checksum = "25e659a4bb38e810ebc252e53b5814ff908a8c58c2a9ce2fae1bbec24cbf4e20" dependencies = [ "memchr", "serde", @@ -4602,9 +4663,9 @@ dependencies = [ [[package]] name = "itoa" -version = "1.0.17" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "92ecc6618181def0457392ccd0ee51198e065e016d1d527a7ac1b6dc7c1f09d2" +checksum = "8f42a60cbdf9a97f5d2305f08a87dc4e09308d1276d28c869c684d7777685682" [[package]] name = "javascriptcore-rs" @@ -4638,7 +4699,7 @@ dependencies = [ "cesu8", "cfg-if 1.0.4", "combine", - "jni-sys", + "jni-sys 0.3.1", "log", "thiserror 1.0.69", "walkdir", @@ -4647,9 +4708,31 @@ dependencies = [ [[package]] name = "jni-sys" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8eaf4bc02d17cbdd7ff4c7438cafcdf7fb9a4613313ad11b4f8fefe7d3fa0130" +checksum = "41a652e1f9b6e0275df1f15b32661cf0d4b78d4d87ddec5e0c3c20f097433258" +dependencies = [ + "jni-sys 0.4.1", +] + +[[package]] +name = "jni-sys" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c6377a88cb3910bee9b0fa88d4f42e1d2da8e79915598f65fb0c7ee14c878af2" +dependencies = [ + "jni-sys-macros", +] + +[[package]] +name = "jni-sys-macros" +version = "0.4.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "38c0b942f458fe50cdac086d2f946512305e5631e720728f2a61aabcd47a6264" +dependencies = [ + "quote", + "syn 2.0.117", +] [[package]] name = "jobserver" @@ -4663,10 +4746,12 @@ dependencies = [ [[package]] name = "js-sys" -version = "0.3.85" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c942ebf8e95485ca0d52d97da7c5a2c387d0e7f0ba4c35e93bfcaee045955b3" +checksum = "2e04e2ef80ce82e13552136fabeef8a5ed1f985a96805761cbb9a2c34e7664d9" dependencies = [ + "cfg-if 1.0.4", + "futures-util", "once_cell", "wasm-bindgen", ] @@ -4730,9 +4815,9 @@ dependencies = [ [[package]] name = "keccak" -version = "0.1.5" +version = "0.1.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +checksum = "cb26cec98cce3a3d96cbb7bced3c4b16e3d13f27ec56dbd62cbc8f39cfb9d653" dependencies = [ "cpufeatures", ] @@ -4882,10 +4967,10 @@ version = "0.8.8-speedreader" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "02cb977175687f33fa4afa0c95c112b987ea1443e5a51c8f8ff27dc618270cc2" dependencies = [ - "cssparser", - "html5ever", + "cssparser 0.29.6", + "html5ever 0.29.1", "indexmap 2.11.1", - "selectors", + "selectors 0.24.0", ] [[package]] @@ -4982,9 +5067,9 @@ dependencies = [ [[package]] name = "libc" -version = "0.2.180" +version = "0.2.184" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcc35a38544a891a5f7c865aca548a982ccb3b8650a5b06d0fd33a10283c56fc" +checksum = "48f5d2a454e16a5ea0f4ced81bd44e4cfc7bd3a507b61887c99fd3538b28e4af" [[package]] name = "libflate" @@ -5052,13 +5137,14 @@ dependencies = [ [[package]] name = "libredox" -version = "0.1.12" +version = "0.1.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d0b95e02c851351f877147b7deea7b1afb1df71b63aa5f8270716e0c5720616" +checksum = "7ddbf48fd451246b1f8c2610bd3b4ac0cc6e149d89832867093ab69a17194f08" dependencies = [ "bitflags 2.9.4", "libc", - "redox_syscall 0.7.0", + "plain", + "redox_syscall 0.7.3", ] [[package]] @@ -5073,9 +5159,9 @@ dependencies = [ "minisign-verify", "pkg-config", "tar", - "ureq 3.2.0", + "ureq 3.3.0", "vcpkg", - "zip 7.3.0", + "zip 7.2.0", ] [[package]] @@ -5098,15 +5184,15 @@ checksum = "0c6639b70a7ce854b79c70d7e83f16b5dc0137cc914f3d7d03803b513ecc67ac" [[package]] name = "linux-raw-sys" -version = "0.11.0" +version = "0.12.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "df1d3c3b53da64cf5760482273a98e575c651a67eec7f77df96b5b642de8f039" +checksum = "32a66949e030da00e8c7d4434b251670a91556f4144941d37452769c25d58a53" [[package]] name = "litemap" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6373607a59f0be73a39b6fe456b8192fcc3585f602af20751600e974dd455e77" +checksum = "92daf443525c4cce67b150400bc2316076100ce0b3686209eb8cf3c31612e6f0" [[package]] name = "local-ip-address" @@ -5229,9 +5315,20 @@ dependencies = [ "log", "phf 0.11.3", "phf_codegen 0.11.3", - "string_cache", - "string_cache_codegen", - "tendril", + "string_cache 0.8.9", + "string_cache_codegen 0.5.4", + "tendril 0.4.3", +] + +[[package]] +name = "markup5ever" +version = "0.38.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8983d30f2915feeaaab2d6babdd6bc7e9ed1a00b66b5e6d74df19aa9c0e91862" +dependencies = [ + "log", + "tendril 0.5.0", + "web_atoms", ] [[package]] @@ -5248,7 +5345,7 @@ checksum = "88a9689d8d44bf9964484516275f5cd4c9b59457a6940c1d5d0ecbb94510a36b" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5339,9 +5436,9 @@ checksum = "68354c5c6bd36d73ff3feceb05efa59b6acb7626617f4962be322a825e61f79a" [[package]] name = "minisign-verify" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e856fdd13623a2f5f2f54676a4ee49502a96a80ef4a62bcedd23d52427c44d43" +checksum = "22f9645cb765ea72b8111f36c522475d2daa0d22c957a9826437e97534bc4e9e" [[package]] name = "miniz_oxide" @@ -5355,9 +5452,9 @@ dependencies = [ [[package]] name = "mio" -version = "1.1.1" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a69bcab0ad47271a0234d9422b131806bf3968021e5dc9328caf2d4cd58557fc" +checksum = "50b7e5b27aa02a74bac8c3f23f448f8d87ff11f92d3aac1a6ed369ee08cc56c1" dependencies = [ "libc", "wasi 0.11.1+wasi-snapshot-preview1", @@ -5462,7 +5559,7 @@ checksum = "4568f25ccbd45ab5d5603dc34318c1ec56b117531781260002151b8530a9f931" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -5491,7 +5588,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "c3f42e7bbe13d351b6bead8286a43aac9534b82bd3cc43e47037f012ebfd62d4" dependencies = [ "bitflags 2.9.4", - "jni-sys", + "jni-sys 0.3.1", "log", "ndk-sys", "num_enum", @@ -5511,7 +5608,7 @@ version = "0.6.0+11769913" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "ee6cda3051665f1fb8d9e08fc35c96d5a244fb1be711a03b71118828afc9a873" dependencies = [ - "jni-sys", + "jni-sys 0.3.1", ] [[package]] @@ -5571,9 +5668,9 @@ dependencies = [ [[package]] name = "nix" -version = "0.31.1" +version = "0.31.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "225e7cfe711e0ba79a68baeddb2982723e4235247aefce1482f2f16c27865b66" +checksum = "5d6d0705320c1e6ba1d912b5e37cf18071b6c2e9b7fa8215a1e8a7651966f5d3" dependencies = [ "bitflags 2.9.4", "cfg-if 1.0.4", @@ -5728,9 +5825,9 @@ dependencies = [ [[package]] name = "num_enum" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b1207a7e20ad57b847bbddc6776b968420d38292bbfe2089accff5e19e82454c" +checksum = "5d0bca838442ec211fa11de3a8b0e0e8f3a4522575b5c4c06ed722e005036f26" dependencies = [ "num_enum_derive", "rustversion", @@ -5738,21 +5835,21 @@ dependencies = [ [[package]] name = "num_enum_derive" -version = "0.7.5" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ff32365de1b6743cb203b710788263c44a03de03802daf96092f2da4fe6ba4d7" +checksum = "680998035259dcfcafe653688bf2aa6d3e2dc05e98be6ab46afb089dc84f1df8" dependencies = [ "proc-macro-crate 3.4.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "objc2" -version = "0.6.3" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b7c2599ce0ec54857b29ce62166b0ed9b4f6f1a70ccc9a71165b6154caca8c05" +checksum = "3a12a8ed07aefc768292f076dc3ac8c48f3781c8f2d5851dd3d98950e8c5a89f" dependencies = [ "objc2-encode", "objc2-exception-helper", @@ -5766,38 +5863,8 @@ checksum = "d49e936b501e5c5bf01fda3a9452ff86dc3ea98ad5f283e1455153142d97518c" dependencies = [ "bitflags 2.9.4", "block2", - "libc", "objc2", - "objc2-cloud-kit", - "objc2-core-data", "objc2-core-foundation", - "objc2-core-graphics", - "objc2-core-image", - "objc2-core-text", - "objc2-core-video", - "objc2-foundation", - "objc2-quartz-core", -] - -[[package]] -name = "objc2-cloud-kit" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "73ad74d880bb43877038da939b7427bba67e9dd42004a18b809ba7d87cee241c" -dependencies = [ - "bitflags 2.9.4", - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-core-data" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0b402a653efbb5e82ce4df10683b6b28027616a2715e90009947d50b8dd298fa" -dependencies = [ - "bitflags 2.9.4", - "objc2", "objc2-foundation", ] @@ -5825,41 +5892,6 @@ dependencies = [ "objc2-io-surface", ] -[[package]] -name = "objc2-core-image" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e5d563b38d2b97209f8e861173de434bd0214cf020e3423a52624cd1d989f006" -dependencies = [ - "objc2", - "objc2-foundation", -] - -[[package]] -name = "objc2-core-text" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0cde0dfb48d25d2b4862161a4d5fcc0e3c24367869ad306b0c9ec0073bfed92d" -dependencies = [ - "bitflags 2.9.4", - "objc2", - "objc2-core-foundation", - "objc2-core-graphics", -] - -[[package]] -name = "objc2-core-video" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d425caf1df73233f29fd8a5c3e5edbc30d2d4307870f802d18f00d83dc5141a6" -dependencies = [ - "bitflags 2.9.4", - "objc2", - "objc2-core-foundation", - "objc2-core-graphics", - "objc2-io-surface", -] - [[package]] name = "objc2-encode" version = "4.1.0" @@ -5883,7 +5915,6 @@ checksum = "e3e0adef53c21f888deb4fa59fc59f7eb17404926ee8a6f59f5df0fd7f9f3272" dependencies = [ "bitflags 2.9.4", "block2", - "libc", "objc2", "objc2-core-foundation", ] @@ -5909,16 +5940,6 @@ dependencies = [ "objc2-core-foundation", ] -[[package]] -name = "objc2-javascript-core" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a1e6550c4caed348956ce3370c9ffeca70bb1dbed4fa96112e7c6170e074586" -dependencies = [ - "objc2", - "objc2-core-foundation", -] - [[package]] name = "objc2-quartz-core" version = "0.3.2" @@ -5931,17 +5952,6 @@ dependencies = [ "objc2-foundation", ] -[[package]] -name = "objc2-security" -version = "0.3.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "709fe137109bd1e8b5a99390f77a7d8b2961dafc1a1c5db8f2e60329ad6d895a" -dependencies = [ - "bitflags 2.9.4", - "objc2", - "objc2-core-foundation", -] - [[package]] name = "objc2-ui-kit" version = "0.3.2" @@ -5966,8 +5976,6 @@ dependencies = [ "objc2-app-kit", "objc2-core-foundation", "objc2-foundation", - "objc2-javascript-core", - "objc2-security", ] [[package]] @@ -5995,9 +6003,9 @@ dependencies = [ [[package]] name = "once_cell" -version = "1.21.3" +version = "1.21.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" +checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50" [[package]] name = "once_cell_polyfill" @@ -6034,9 +6042,9 @@ dependencies = [ [[package]] name = "openssl-sys" -version = "0.9.111" +version = "0.9.112" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "82cab2d520aa75e3c58898289429321eb788c3106963d0dc886ec7a5f4adc321" +checksum = "57d55af3b3e226502be1526dfdba67ab0e9c96fc293004e79576b2b9edb0dbdb" dependencies = [ "cc", "libc", @@ -6223,6 +6231,17 @@ dependencies = [ "phf_shared 0.11.3", ] +[[package]] +name = "phf" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c1562dc717473dbaa4c1f85a36410e03c047b2e7df7f45ee938fbef64ae7fadf" +dependencies = [ + "phf_macros 0.13.1", + "phf_shared 0.13.1", + "serde", +] + [[package]] name = "phf_codegen" version = "0.8.0" @@ -6243,6 +6262,16 @@ dependencies = [ "phf_shared 0.11.3", ] +[[package]] +name = "phf_codegen" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "49aa7f9d80421bca176ca8dbfebe668cc7a2684708594ec9f3c0db0805d5d6e1" +dependencies = [ + "phf_generator 0.13.1", + "phf_shared 0.13.1", +] + [[package]] name = "phf_generator" version = "0.8.0" @@ -6273,6 +6302,16 @@ dependencies = [ "rand 0.8.5", ] +[[package]] +name = "phf_generator" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "135ace3a761e564ec88c03a77317a7c6b80bb7f7135ef2544dbe054243b89737" +dependencies = [ + "fastrand", + "phf_shared 0.13.1", +] + [[package]] name = "phf_macros" version = "0.10.0" @@ -6297,7 +6336,20 @@ dependencies = [ "phf_shared 0.11.3", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", +] + +[[package]] +name = "phf_macros" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "812f032b54b1e759ccd5f8b6677695d5268c588701effba24601f6932f8269ef" +dependencies = [ + "phf_generator 0.13.1", + "phf_shared 0.13.1", + "proc-macro2", + "quote", + "syn 2.0.117", ] [[package]] @@ -6327,31 +6379,40 @@ dependencies = [ "siphasher 1.0.2", ] +[[package]] +name = "phf_shared" +version = "0.13.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e57fef6bc5981e38c2ce2d63bfa546861309f875b8a75f092d1d54ae2d64f266" +dependencies = [ + "siphasher 1.0.2", +] + [[package]] name = "pin-project" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "677f1add503faace112b9f1373e43e9e054bfdd22ff1a63c1bc485eaec6a6a8a" +checksum = "f1749c7ed4bcaf4c3d0a3efc28538844fb29bcdd7d2b67b2be7e20ba861ff517" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.10" +version = "1.1.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6e918e4ff8c4549eb882f14b3a4bc8c8bc93de829416eacf579f1207a8fbf861" +checksum = "d9b20ed30f105399776b9c883e68e536ef602a16ae6f596d2c473591d6ad64c6" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "pin-project-lite" -version = "0.2.16" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b3cff922bd51709b605d9ead9aa71031d81447142d828eb4a6eba76fe619f9b" +checksum = "a89322df9ebe1c1578d689c92318e070967d1042b512afbe49518723f4e6d5cd" [[package]] name = "pin-utils" @@ -6361,9 +6422,9 @@ checksum = "8b870d8c151b6f2fb93e84a13146138f05d02ed11c7e7c54f8826aaaf7c9f184" [[package]] name = "piper" -version = "0.2.4" +version = "0.2.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "96c8c490f422ef9a4efd2cb5b42b76c8613d7e7dfc1caf667b8a3350a5acc066" +checksum = "c835479a4443ded371d6c535cbfd8d31ad92c5d23ae9770a61bc155e4992a3c1" dependencies = [ "atomic-waker", "fastrand", @@ -6386,6 +6447,12 @@ version = "0.3.32" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "7edddbd0b52d732b21ad9a5fab5c704c14cd949e5e9a1ec5929a24fded1b904c" +[[package]] +name = "plain" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b4596b6d070b27117e987119b4dac604f3c58cfb0b191112e24771b2faeac1a6" + [[package]] name = "plist" version = "1.8.0" @@ -6437,9 +6504,9 @@ dependencies = [ [[package]] name = "potential_utf" -version = "0.1.4" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b73949432f5e2a09657003c25bca5e19a0e9c84f8058ca374f49e0ebe605af77" +checksum = "0103b1cef7ec0cf76490e969665504990193874ea05c85ff9bab8b911d0a0564" dependencies = [ "zerovec", ] @@ -6481,15 +6548,15 @@ dependencies = [ [[package]] name = "predicates-core" -version = "1.0.9" +version = "1.0.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "727e462b119fe9c93fd0eb1429a5f7647394014cf3c04ab2c0350eeb09095ffa" +checksum = "cad38746f3166b4031b1a0d39ad9f954dd291e7854fcc0eed52ee41a0b50d144" [[package]] name = "predicates-tree" -version = "1.0.12" +version = "1.0.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72dd2d6d381dfb73a193c7fca536518d7caee39fc8503f74e7dc0be0531b425c" +checksum = "d0de1b847b39c8131db0467e9df1ff60e6d0562ab8e9a16e568ad0fdb372e2f2" dependencies = [ "predicates-core", "termtree", @@ -6512,7 +6579,7 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "479ca8adacdd7ce8f1fb39ce9ecccbfe93a3f1344b3d0d97f20bc0196208f62b" dependencies = [ "proc-macro2", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6586,7 +6653,7 @@ dependencies = [ "proc-macro-error-attr2", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6624,7 +6691,7 @@ dependencies = [ "itertools 0.14.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6664,7 +6731,7 @@ checksum = "7347867d0a7e1208d93b46767be83e2b8f978c3dad35f775ac8d8847551d6fe1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -6693,9 +6760,9 @@ dependencies = [ [[package]] name = "quick_cache" -version = "0.6.18" +version = "0.6.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7ada44a88ef953a3294f6eb55d2007ba44646015e18613d2f213016379203ef3" +checksum = "5a70b1b8b47e31d0498ecbc3c5470bb931399a8bfed1fd79d1717a61ce7f96e3" dependencies = [ "equivalent", "hashbrown 0.16.1", @@ -6722,9 +6789,9 @@ dependencies = [ "pin-project-lite", "quinn-proto", "quinn-udp", - "rustc-hash 2.1.1", - "rustls 0.23.36", - "socket2 0.6.2", + "rustc-hash 2.1.2", + "rustls 0.23.37", + "socket2 0.6.3", "thiserror 2.0.18", "tokio", "tracing", @@ -6733,17 +6800,17 @@ dependencies = [ [[package]] name = "quinn-proto" -version = "0.11.13" +version = "0.11.14" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f1906b49b0c3bc04b5fe5d86a77925ae6524a19b816ae38ce1e426255f1d8a31" +checksum = "434b42fec591c96ef50e21e886936e66d3cc3f737104fdb9b737c40ffb94c098" dependencies = [ "bytes", "getrandom 0.3.4", "lru-slab", "rand 0.9.2", "ring", - "rustc-hash 2.1.1", - "rustls 0.23.36", + "rustc-hash 2.1.2", + "rustls 0.23.37", "rustls-pki-types", "slab", "thiserror 2.0.18", @@ -6761,16 +6828,16 @@ dependencies = [ "cfg_aliases", "libc", "once_cell", - "socket2 0.6.2", + "socket2 0.6.3", "tracing", "windows-sys 0.60.2", ] [[package]] name = "quote" -version = "1.0.44" +version = "1.0.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21b2ebcf727b7760c461f091f9f0f539b77b8e87f2fd88131e7f1b433b3cece4" +checksum = "41f2619966050689382d2b44f664f4bc593e129785a36d6ee376ddf37259b924" dependencies = [ "proc-macro2", ] @@ -6781,6 +6848,12 @@ version = "5.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "69cdb34c158ceb288df11e18b4bd39de994f6657d83847bdffdbd7f346754b0f" +[[package]] +name = "r-efi" +version = "6.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f8dcc9c7d52a811697d2151c701e0d08956f92b0e24136cf4cf27b57a6a0d9bf" + [[package]] name = "r2d2" version = "0.8.10" @@ -7103,10 +7176,10 @@ dependencies = [ name = "recovery_receptor" version = "0.1.0" dependencies = [ + "client_shared_types", "core_types", "futures-executor", "holons_boundary", - "holons_client", "holons_core", "rusqlite", "serde", @@ -7128,9 +7201,9 @@ dependencies = [ [[package]] name = "redox_syscall" -version = "0.7.0" +version = "0.7.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49f3fe0889e69e2ae9e41f4d6c4c0181701d00e4697b356fb1f74173a5e0ee27" +checksum = "6ce70a74e890531977d37e532c34d45e9055d2409ed08ddba14529471ed0be16" dependencies = [ "bitflags 2.9.4", ] @@ -7163,7 +7236,7 @@ checksum = "b7186006dcb21920990093f30e3dea63b7d6e977bf1256be20c3563a5db070da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -7218,9 +7291,9 @@ dependencies = [ [[package]] name = "regex-syntax" -version = "0.8.9" +version = "0.8.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a96887878f22d7bad8a3b6dc5b7440e0ada9a245242924394987b21cf2210a4c" +checksum = "dc897dd8d9e8bd1ed8cdad82b5966c3e0ecae09fb1907d58efaa013543185d0a" [[package]] name = "region" @@ -7306,7 +7379,7 @@ dependencies = [ "http 1.4.0", "http-body 1.0.1", "http-body-util", - "hyper 1.8.1", + "hyper 1.9.0", "hyper-rustls 0.27.7", "hyper-util", "js-sys", @@ -7314,7 +7387,7 @@ dependencies = [ "percent-encoding", "pin-project-lite", "quinn", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pki-types", "serde", "serde_json", @@ -7347,7 +7420,7 @@ dependencies = [ "http 1.4.0", "http-body 1.0.1", "http-body-util", - "hyper 1.8.1", + "hyper 1.9.0", "hyper-util", "js-sys", "log", @@ -7370,9 +7443,9 @@ dependencies = [ [[package]] name = "rgb" -version = "0.8.52" +version = "0.8.53" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0c6a884d2998352bb4daf0183589aec883f16a6da1f4dde84d8e2e9a5409a1ce" +checksum = "47b34b781b31e5d73e9fbc8689c70551fd1ade9a19e3e28cfec8580a79290cc4" dependencies = [ "bytemuck", ] @@ -7418,7 +7491,7 @@ checksum = "8100bb34c0a1d0f907143db3149e6b4eea3c33b9ee8b189720168e818303986f" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -7508,9 +7581,9 @@ checksum = "08d43f7aa6b08d49f382cde6a7982047c3426db949b1424bc4b7ec9ae12c6ce2" [[package]] name = "rustc-hash" -version = "2.1.1" +version = "2.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" +checksum = "94300abf3f1ae2e2b8ffb7b58043de3d399c73fa6f4b73826402a5c457614dbe" [[package]] name = "rustc_version" @@ -7523,9 +7596,9 @@ dependencies = [ [[package]] name = "rustix" -version = "1.1.3" +version = "1.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "146c9e247ccc180c1f61615433868c99f3de3ae256a30a43b49f67c2d9171f34" +checksum = "b6fe4565b9518b83ef4f91bb47ce29620ca828bd32cb7e408f0062e9930ba190" dependencies = [ "bitflags 2.9.4", "errno", @@ -7548,16 +7621,16 @@ dependencies = [ [[package]] name = "rustls" -version = "0.23.36" +version = "0.23.37" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c665f33d38cea657d9614f766881e4d510e0eda4239891eea56b4cadcf01801b" +checksum = "758025cb5fccfd3bc2fd74708fd4682be41d99e5dff73c377c0646c6012c73a4" dependencies = [ "aws-lc-rs", "log", "once_cell", "ring", "rustls-pki-types", - "rustls-webpki 0.103.9", + "rustls-webpki 0.103.10", "subtle", "zeroize", ] @@ -7614,9 +7687,9 @@ dependencies = [ [[package]] name = "rustls-webpki" -version = "0.103.9" +version = "0.103.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d7df23109aa6c1567d1c575b9952556388da57401e4ace1d15f79eedad0d8f53" +checksum = "df33b2b81ac578cabaf06b89b0631153a3f416b0a886e8a7a1707fb51abbd1ef" dependencies = [ "aws-lc-rs", "ring", @@ -7666,7 +7739,7 @@ dependencies = [ "ed25519-dalek", "futures", "rand 0.8.5", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-native-certs", "tokio", "tokio-rustls 0.26.4", @@ -7697,11 +7770,11 @@ dependencies = [ "anstyle", "base64 0.22.1", "bytes", - "clap 4.5.57", + "clap 4.6.0", "ed25519-dalek", "futures", "rand 0.8.5", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pemfile 2.2.0", "slab", "tokio", @@ -7711,9 +7784,9 @@ dependencies = [ [[package]] name = "schannel" -version = "0.1.28" +version = "0.1.29" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "891d81b926048e76efe18581bf793546b4c0eaf8448d72be8de2bbee5fd166e1" +checksum = "91c1b7e4904c873ef0710c1f407dde2e6287de2bebc1bbbf7d430bb7cbffd939" dependencies = [ "windows-sys 0.61.2", ] @@ -7775,7 +7848,7 @@ dependencies = [ "proc-macro2", "quote", "serde_derive_internals", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -7805,9 +7878,9 @@ dependencies = [ [[package]] name = "security-framework" -version = "3.5.1" +version = "3.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3297343eaf830f66ede390ea39da1d462b6b0c1b000f420d0a83f898bbbe6ef" +checksum = "d17b898a6d6948c3a8ee4372c17cb384f90d2e6e912ef00895b14fd7ab54ec38" dependencies = [ "bitflags 2.9.4", "core-foundation 0.10.1", @@ -7818,9 +7891,9 @@ dependencies = [ [[package]] name = "security-framework-sys" -version = "2.15.0" +version = "2.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cc1f0cbffaac4852523ce30d8bd3c5cdc873501d96ff467ca09b6767bb8cd5c0" +checksum = "6ce2691df843ecc5d231c0b14ece2acc3efb62c0a398c7e1d875f3983ce020e3" dependencies = [ "core-foundation-sys", "libc", @@ -7833,14 +7906,33 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "0c37578180969d00692904465fb7f6b3d50b9a2b952b87c23d0e2e5cb5013416" dependencies = [ "bitflags 1.3.2", - "cssparser", + "cssparser 0.29.6", "derive_more 0.99.20", "fxhash", "log", "phf 0.8.0", "phf_codegen 0.8.0", "precomputed-hash", - "servo_arc", + "servo_arc 0.2.0", + "smallvec", +] + +[[package]] +name = "selectors" +version = "0.36.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c5d9c0c92a92d33f08817311cf3f2c29a3538a8240e94a6a3c622ce652d7e00c" +dependencies = [ + "bitflags 2.9.4", + "cssparser 0.36.0", + "derive_more 2.1.1", + "log", + "new_debug_unreachable", + "phf 0.13.1", + "phf_codegen 0.13.1", + "precomputed-hash", + "rustc-hash 2.1.2", + "servo_arc 0.4.3", "smallvec", ] @@ -7916,7 +8008,7 @@ checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -7927,7 +8019,7 @@ checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -7951,7 +8043,7 @@ checksum = "175ee3e80ae9982737ca543e96133087cbd9a485eecc3bc4de9c1a37b47ea59c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8013,7 +8105,7 @@ dependencies = [ "darling 0.21.3", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8048,7 +8140,7 @@ checksum = "772ee033c0916d670af7860b6e1ef7d658a4629a6d0b4c8c3e67f09b3765b75d" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8061,6 +8153,15 @@ dependencies = [ "stable_deref_trait", ] +[[package]] +name = "servo_arc" +version = "0.4.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "170fb83ab34de17dc69aa7c67482b22218ddb85da56546f9bd6b929e32a05930" +dependencies = [ + "stable_deref_trait", +] + [[package]] name = "sha1" version = "0.10.6" @@ -8165,9 +8266,9 @@ dependencies = [ [[package]] name = "simd-adler32" -version = "0.3.8" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e320a6c5ad31d271ad523dcf3ad13e2767ad8b1cb8f047f75a8aeaf8da139da2" +checksum = "703d5c7ef118737c72f1af64ad2f6f8c5e1921f818cdcb97b8fe6fc69bf66214" [[package]] name = "simdutf8" @@ -8227,12 +8328,12 @@ dependencies = [ [[package]] name = "socket2" -version = "0.6.2" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86f4aa3ad99f2088c990dfa82d367e19cb29268ed67c574d10d0a4bfe71f07e0" +checksum = "3a766e1110788c36f4fa1c2b71b387a7815aa65f88ce0229841826633d93723e" dependencies = [ "libc", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -8355,6 +8456,18 @@ dependencies = [ "serde", ] +[[package]] +name = "string_cache" +version = "0.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a18596f8c785a729f2819c0f6a7eae6ebeebdfffbfe4214ae6b087f690e31901" +dependencies = [ + "new_debug_unreachable", + "parking_lot", + "phf_shared 0.13.1", + "precomputed-hash", +] + [[package]] name = "string_cache_codegen" version = "0.5.4" @@ -8367,6 +8480,18 @@ dependencies = [ "quote", ] +[[package]] +name = "string_cache_codegen" +version = "0.6.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "585635e46db231059f76c5849798146164652513eb9e8ab2685939dd90f29b69" +dependencies = [ + "phf_generator 0.13.1", + "phf_shared 0.13.1", + "proc-macro2", + "quote", +] + [[package]] name = "strsim" version = "0.8.0" @@ -8442,7 +8567,7 @@ dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8490,9 +8615,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.114" +version = "2.0.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4d107df263a3013ef9b1879b0df87d706ff80f65a86ea879bd9c31f9b307c2a" +checksum = "e665b8803e7b1d2a727f4023456bbbbe74da67099c585258af0ad9c5013b9b99" dependencies = [ "proc-macro2", "quote", @@ -8534,7 +8659,7 @@ checksum = "728a70f3dbaf5bab7f0c4b1ac8d7ae5ea60a4b5549c8a5914361c99147a709d2" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -8621,23 +8746,22 @@ dependencies = [ [[package]] name = "tao" -version = "0.34.5" +version = "0.34.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f3a753bdc39c07b192151523a3f77cd0394aa75413802c883a0f6f6a0e5ee2e7" +checksum = "9103edf55f2da3c82aea4c7fab7c4241032bfeea0e71fa557d98e00e7ce7cc20" dependencies = [ "bitflags 2.9.4", "block2", "core-foundation 0.10.1", "core-graphics", "crossbeam-channel", - "dispatch", + "dispatch2", "dlopen2", "dpi", "gdkwayland-sys", "gdkx11-sys", "gtk", "jni", - "lazy_static", "libc", "log", "ndk", @@ -8649,7 +8773,6 @@ dependencies = [ "once_cell", "parking_lot", "raw-window-handle", - "scopeguard", "tao-macros", "unicode-segmentation", "url", @@ -8667,14 +8790,14 @@ checksum = "f4e16beb8b2ac17db28eab8bca40e62dbfbb34c0fcdc6d9826b11b7b5d047dfd" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "tar" -version = "0.4.44" +version = "0.4.45" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1d863878d212c87a19c1a610eb53bb01fe12951c0501cf5a0d65f724914a667a" +checksum = "22692a6476a21fa75fdfc11d452fda482af402c008cdbaf3476414e122040973" dependencies = [ "filetime", "libc", @@ -8701,9 +8824,9 @@ dependencies = [ [[package]] name = "tauri" -version = "2.10.2" +version = "2.10.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "463ae8677aa6d0f063a900b9c41ecd4ac2b7ca82f0b058cc4491540e55b20129" +checksum = "da77cc00fb9028caf5b5d4650f75e31f1ef3693459dfca7f7e506d1ecef0ba2d" dependencies = [ "anyhow", "bytes", @@ -8752,9 +8875,9 @@ dependencies = [ [[package]] name = "tauri-build" -version = "2.5.5" +version = "2.5.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca7bd893329425df750813e95bd2b643d5369d929438da96d5bbb7cc2c918f74" +checksum = "4bbc990d1dbf57a8e1c7fa2327f2a614d8b757805603c1b9ba5c81bade09fd4d" dependencies = [ "anyhow", "cargo_toml", @@ -8774,9 +8897,9 @@ dependencies = [ [[package]] name = "tauri-codegen" -version = "2.5.4" +version = "2.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aac423e5859d9f9ccdd32e3cf6a5866a15bedbf25aa6630bcb2acde9468f6ae3" +checksum = "d4a24476afd977c5d5d169f72425868613d82747916dd29e0a357c84c4bd6d29" dependencies = [ "base64 0.22.1", "brotli", @@ -8790,7 +8913,7 @@ dependencies = [ "serde", "serde_json", "sha2", - "syn 2.0.114", + "syn 2.0.117", "tauri-utils", "thiserror 2.0.18", "time", @@ -8801,23 +8924,23 @@ dependencies = [ [[package]] name = "tauri-macros" -version = "2.5.4" +version = "2.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b6a1bd2861ff0c8766b1d38b32a6a410f6dc6532d4ef534c47cfb2236092f59" +checksum = "d39b349a98dadaffebb73f0a40dcd1f23c999211e5a2e744403db384d0c33de7" dependencies = [ "heck 0.5.0", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "tauri-codegen", "tauri-utils", ] [[package]] name = "tauri-plugin" -version = "2.5.3" +version = "2.5.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "692a77abd8b8773e107a42ec0e05b767b8d2b7ece76ab36c6c3947e34df9f53f" +checksum = "ddde7d51c907b940fb573006cdda9a642d6a7c8153657e88f8a5c3c9290cd4aa" dependencies = [ "anyhow", "glob", @@ -8866,7 +8989,7 @@ dependencies = [ "holochain_runtime", "holochain_types", "http-body-util", - "hyper 1.8.1", + "hyper 1.9.0", "hyper-util", "lair_keystore_api", "mime_guess", @@ -8884,9 +9007,9 @@ dependencies = [ [[package]] name = "tauri-runtime" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b885ffeac82b00f1f6fd292b6e5aabfa7435d537cef57d11e38a489956535651" +checksum = "2826d79a3297ed08cd6ea7f412644ef58e32969504bc4fbd8d7dbeabc4445ea2" dependencies = [ "cookie", "dpi", @@ -8909,9 +9032,9 @@ dependencies = [ [[package]] name = "tauri-runtime-wry" -version = "2.10.0" +version = "2.10.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5204682391625e867d16584fedc83fc292fb998814c9f7918605c789cd876314" +checksum = "e11ea2e6f801d275fdd890d6c9603736012742a1c33b96d0db788c9cdebf7f9e" dependencies = [ "gtk", "http 1.4.0", @@ -8919,7 +9042,6 @@ dependencies = [ "log", "objc2", "objc2-app-kit", - "objc2-foundation", "once_cell", "percent-encoding", "raw-window-handle", @@ -8936,9 +9058,9 @@ dependencies = [ [[package]] name = "tauri-utils" -version = "2.8.2" +version = "2.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcd169fccdff05eff2c1033210b9b94acd07a47e6fa9a3431cf09cfd4f01c87e" +checksum = "219a1f983a2af3653f75b5747f76733b0da7ff03069c7a41901a5eb3ace4557d" dependencies = [ "anyhow", "brotli", @@ -8946,7 +9068,7 @@ dependencies = [ "ctor", "dunce", "glob", - "html5ever", + "html5ever 0.29.1", "http 1.4.0", "infer", "json-patch", @@ -8995,12 +9117,12 @@ dependencies = [ [[package]] name = "tempfile" -version = "3.25.0" +version = "3.27.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0136791f7c95b1f6dd99f9cc786b91bb81c3800b639b3478e561ddb7be95e5f1" +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd" dependencies = [ "fastrand", - "getrandom 0.4.1", + "getrandom 0.4.2", "once_cell", "rustix", "windows-sys 0.61.2", @@ -9017,14 +9139,24 @@ dependencies = [ "utf-8", ] +[[package]] +name = "tendril" +version = "0.5.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c4790fc369d5a530f4b544b094e31388b9b3a37c0f4652ade4505945f5660d24" +dependencies = [ + "new_debug_unreachable", + "utf-8", +] + [[package]] name = "terminal_size" -version = "0.4.3" +version = "0.4.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "60b8cb979cb11c32ce1603f8137b22262a9d131aaa5c37b5678025f22b8becd0" +checksum = "230a1b821ccbd75b185820a1f1ff7b14d21da1e442e22c0863ea5f08771a8874" dependencies = [ "rustix", - "windows-sys 0.60.2", + "windows-sys 0.61.2", ] [[package]] @@ -9068,7 +9200,7 @@ checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -9079,7 +9211,7 @@ checksum = "ebc4ee7f67670e9b64d05fa4253e753e016c6c95ff35b89b7941d6b856dec1d5" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -9124,9 +9256,9 @@ dependencies = [ [[package]] name = "tinystr" -version = "0.8.2" +version = "0.8.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "42d3e9c45c09de15d06dd8acf5f4e0e399e85927b7f00711024eb7ae10fa4869" +checksum = "c8323304221c2a851516f22236c5722a72eaa19749016521d6dff0824447d96d" dependencies = [ "displaydoc", "zerovec", @@ -9134,9 +9266,9 @@ dependencies = [ [[package]] name = "tinyvec" -version = "1.10.0" +version = "1.11.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa5fdc3bce6191a1dbc8c02d5c8bffcf557bafa17c124c5264a458f1b0613fa" +checksum = "3e61e67053d25a4e82c844e8424039d9745781b3fc4f32b8d55ed50f5f667ef3" dependencies = [ "tinyvec_macros", ] @@ -9161,9 +9293,9 @@ dependencies = [ [[package]] name = "tokio" -version = "1.49.0" +version = "1.50.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72a2903cd7736441aac9df9d7688bd0ce48edccaadf181c3b90be801e81d3d86" +checksum = "27ad5e34374e03cfffefc301becb44e9dc3c17584f414349ebe29ed26661822d" dependencies = [ "bytes", "libc", @@ -9171,20 +9303,20 @@ dependencies = [ "parking_lot", "pin-project-lite", "signal-hook-registry", - "socket2 0.6.2", + "socket2 0.6.3", "tokio-macros", "windows-sys 0.61.2", ] [[package]] name = "tokio-macros" -version = "2.6.0" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af407857209536a95c8e56f8231ef2c2e2aff839b22e07a1ffcbc617e9db9fa5" +checksum = "5c55a2eff8b69ce66c84f85e1da1c233edc36ceb85a2058d11b0d6a3c7e7569c" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -9203,7 +9335,7 @@ version = "0.26.4" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "1729aa945f29d91ba541258c8df89027d5792d85a8841fb65e8bf0f4ede4ef61" dependencies = [ - "rustls 0.23.36", + "rustls 0.23.37", "tokio", ] @@ -9239,7 +9371,7 @@ checksum = "c6989540ced10490aaf14e6bad2e3d33728a2813310a0c71d1574304c49631cd" dependencies = [ "futures-util", "log", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pki-types", "tokio", "tokio-rustls 0.26.4", @@ -9283,7 +9415,7 @@ dependencies = [ "toml_datetime 0.7.0", "toml_parser", "toml_writer", - "winnow 0.7.14", + "winnow 0.7.15", ] [[package]] @@ -9337,7 +9469,7 @@ dependencies = [ "serde_spanned 0.6.9", "toml_datetime 0.6.11", "toml_write", - "winnow 0.7.14", + "winnow 0.7.15", ] [[package]] @@ -9349,16 +9481,16 @@ dependencies = [ "indexmap 2.11.1", "toml_datetime 0.7.0", "toml_parser", - "winnow 0.7.14", + "winnow 0.7.15", ] [[package]] name = "toml_parser" -version = "1.0.7+spec-1.1.0" +version = "1.1.2+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "247eaa3197818b831697600aadf81514e577e0cba5eab10f7e064e78ae154df1" +checksum = "a2abe9b86193656635d2411dc43050282ca48aa31c2451210f4202550afb7526" dependencies = [ - "winnow 0.7.14", + "winnow 1.0.1", ] [[package]] @@ -9369,9 +9501,9 @@ checksum = "5d99f8c9a7727884afe522e9bd5edbfc91a3312b36a77b5fb8926e4c31a41801" [[package]] name = "toml_writer" -version = "1.0.6+spec-1.1.0" +version = "1.1.1+spec-1.1.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab16f14aed21ee8bfd8ec22513f7287cd4a91aa92e44edfe2c17ddd004e92607" +checksum = "756daf9b1013ebe47a8776667b466417e2d4c5679d441c26230efd9ef78692db" [[package]] name = "tower" @@ -9438,7 +9570,7 @@ checksum = "7490cfa5ec963746568740651ac6781f701c9c5ea257c58e057f3ba8cf69e8da" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -9494,9 +9626,9 @@ dependencies = [ [[package]] name = "tracing-subscriber" -version = "0.3.22" +version = "0.3.23" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f30143827ddab0d256fd843b7a66d164e9f271cfa0dde49142c5ca0ca291f1e" +checksum = "cb7f578e5945fb242538965c2d0b04418d38ec25c79d160cd279bf0731c8d319" dependencies = [ "matchers", "nu-ansi-term", @@ -9574,7 +9706,7 @@ dependencies = [ "httparse", "log", "rand 0.8.5", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pki-types", "sha1", "thiserror 1.0.69", @@ -9587,7 +9719,7 @@ version = "1.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "97fee6b57c6a41524a810daee9286c02d7752c4253064d0b05472833a438f675" dependencies = [ - "cfg-if 0.1.10", + "cfg-if 1.0.4", "static_assertions", ] @@ -9670,9 +9802,9 @@ dependencies = [ [[package]] name = "typed-path" -version = "0.12.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3015e6ce46d5ad8751e4a772543a30c7511468070e98e64e20165f8f81155b64" +checksum = "8e28f89b80c87b8fb0cf04ab448d5dd0dd0ade2f8891bae878de66a75a28600e" [[package]] name = "typeid" @@ -9735,15 +9867,15 @@ checksum = "dbc4bc3a9f746d862c45cb89d705aa10f187bb96c76001afab07a0d35ce60142" [[package]] name = "unicode-ident" -version = "1.0.23" +version = "1.0.24" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "537dd038a89878be9b64dd4bd1b260315c1bb94f4d784956b81e27a088d9a09e" +checksum = "e6e4313cd5fcd3dad5cafa179702e2b244f760991f45397d14d4ebf38247da75" [[package]] name = "unicode-segmentation" -version = "1.12.0" +version = "1.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" +checksum = "9629274872b2bfaf8d66f5f15725007f635594914870f65218920345aa11aa8c" [[package]] name = "unicode-width" @@ -9791,7 +9923,7 @@ dependencies = [ "flate2", "log", "once_cell", - "rustls 0.23.36", + "rustls 0.23.37", "rustls-pki-types", "url", "webpki-roots 0.26.11", @@ -9799,22 +9931,22 @@ dependencies = [ [[package]] name = "ureq" -version = "3.2.0" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fdc97a28575b85cfedf2a7e7d3cc64b3e11bd8ac766666318003abbacc7a21fc" +checksum = "dea7109cdcd5864d4eeb1b58a1648dc9bf520360d7af16ec26d0a9354bafcfc0" dependencies = [ "base64 0.22.1", "log", "percent-encoding", "ureq-proto", - "utf-8", + "utf8-zero", ] [[package]] name = "ureq-proto" -version = "0.5.3" +version = "0.6.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d81f9efa9df032be5934a46a068815a10a042b494b6a58cb0a1a97bb5467ed6f" +checksum = "e994ba84b0bd1b1b0cf92878b7ef898a5c1760108fe7b6010327e274917a808c" dependencies = [ "base64 0.22.1", "http 1.4.0", @@ -9869,6 +10001,12 @@ version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "09cc8ee72d2a9becf2f2febe0205bbed8fc6615b7cb429ad062dc7b7ddd036a9" +[[package]] +name = "utf8-zero" +version = "0.8.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b8c0a043c9540bae7c578c88f91dda8bd82e59ae27c21baca69c8b191aaf5a6e" + [[package]] name = "utf8_iter" version = "1.0.4" @@ -10027,9 +10165,9 @@ dependencies = [ [[package]] name = "wasm-bindgen" -version = "0.2.108" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "64024a30ec1e37399cf85a7ffefebdb72205ca1c972291c51512360d90bd8566" +checksum = "0551fc1bb415591e3372d0bc4780db7e587d84e2a7e79da121051c5c4b89d0b0" dependencies = [ "cfg-if 1.0.4", "once_cell", @@ -10040,23 +10178,19 @@ dependencies = [ [[package]] name = "wasm-bindgen-futures" -version = "0.4.58" +version = "0.4.67" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70a6e77fd0ae8029c9ea0063f87c46fde723e7d887703d74ad2616d792e51e6f" +checksum = "03623de6905b7206edd0a75f69f747f134b7f0a2323392d664448bf2d3c5d87e" dependencies = [ - "cfg-if 1.0.4", - "futures-util", "js-sys", - "once_cell", "wasm-bindgen", - "web-sys", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.108" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "008b239d9c740232e71bd39e8ef6429d27097518b6b30bdf9086833bd5b6d608" +checksum = "7fbdf9a35adf44786aecd5ff89b4563a90325f9da0923236f6104e603c7e86be" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -10064,22 +10198,22 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.108" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5256bae2d58f54820e6490f9839c49780dff84c65aeab9e772f15d5f0e913a55" +checksum = "dca9693ef2bab6d4e6707234500350d8dad079eb508dca05530c85dc3a529ff2" dependencies = [ "bumpalo", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.108" +version = "0.2.117" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1f01b580c9ac74c8d8f0c0e4afb04eeef2acf145458e52c03845ee9cd23e3d12" +checksum = "39129a682a6d2d841b6c429d0c51e5cb0ed1a03829d8b3d1e69a011e62cb3d3b" dependencies = [ "unicode-ident", ] @@ -10333,9 +10467,9 @@ dependencies = [ [[package]] name = "web-sys" -version = "0.3.85" +version = "0.3.94" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "312e32e551d92129218ea9a2452120f4aabc03529ef03e4d0d82fb2780608598" +checksum = "cd70027e39b12f0849461e08ffc50b9cd7688d942c1c8e3c7b22273236b4dd0a" dependencies = [ "js-sys", "wasm-bindgen", @@ -10351,6 +10485,18 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "web_atoms" +version = "0.2.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "57a9779e9f04d2ac1ce317aee707aa2f6b773afba7b931222bff6983843b1576" +dependencies = [ + "phf 0.13.1", + "phf_codegen 0.13.1", + "string_cache 0.9.0", + "string_cache_codegen 0.6.1", +] + [[package]] name = "webkit2gtk" version = "2.0.2" @@ -10451,7 +10597,7 @@ checksum = "67a921c1b6914c367b2b823cd4cde6f96beec77d30a939c8199bb377cf9b9b54" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10600,7 +10746,7 @@ checksum = "9107ddc059d5b6fbfbffdfa7a7fe3e22a226def0b2608f72e9d552763d3e1ad7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10611,7 +10757,7 @@ checksum = "053e2e040ab57b9dc951b72c264860db7eb3b0200ba345b4e4c3b14f67855ddf" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10622,7 +10768,7 @@ checksum = "29bee4b38ea3cde66011baa44dba677c432a78593e202392d1e9070cf2a7fca7" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -10633,7 +10779,7 @@ checksum = "3f316c4a2570ba26bbec722032c4099d8c8bc095efccdc15688708623367e358" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -11049,13 +11195,19 @@ dependencies = [ [[package]] name = "winnow" -version = "0.7.14" +version = "0.7.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a5364e9d77fcdeeaa6062ced926ee3381faa2ee02d3eb83a5c27a8825540829" +checksum = "df79d97927682d2fd8adb29682d1140b343be4ac0f08fd68b7765d9c059d3945" dependencies = [ "memchr", ] +[[package]] +name = "winnow" +version = "1.0.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09dac053f1cd375980747450bfc7250c264eaae0583872e845c0c7cd578872b5" + [[package]] name = "winreg" version = "0.50.0" @@ -11106,7 +11258,7 @@ dependencies = [ "heck 0.5.0", "indexmap 2.11.1", "prettyplease", - "syn 2.0.114", + "syn 2.0.117", "wasm-metadata", "wit-bindgen-core", "wit-component", @@ -11122,7 +11274,7 @@ dependencies = [ "prettyplease", "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "wit-bindgen-core", "wit-bindgen-rust", ] @@ -11172,24 +11324,23 @@ checksum = "9edde0db4769d2dc68579893f2306b26c6ecfbe0ef499b013d731b7b9247e0b9" [[package]] name = "wry" -version = "0.54.1" +version = "0.54.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5ed1a195b0375491dd15a7066a10251be217ce743cf4bbbbdcf5391d6473bee0" +checksum = "e5a8135d8676225e5744de000d4dff5a082501bf7db6a1c1495034f8c314edbc" dependencies = [ "base64 0.22.1", "block2", "cookie", "crossbeam-channel", "dirs", + "dom_query", "dpi", "dunce", "gdkx11", "gtk", - "html5ever", "http 1.4.0", "javascriptcore-rs", "jni", - "kuchikiki", "libc", "ndk", "objc2", @@ -11284,9 +11435,9 @@ dependencies = [ [[package]] name = "yoke" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "72d6e5c6afb84d73944e5cedb052c4680d5657337201555f9f2a16b7406d4954" +checksum = "abe8c5fda708d9ca3df187cae8bfb9ceda00dd96231bed36e445a1a48e66f9ca" dependencies = [ "stable_deref_trait", "yoke-derive", @@ -11295,54 +11446,54 @@ dependencies = [ [[package]] name = "yoke-derive" -version = "0.8.1" +version = "0.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b659052874eb698efe5b9e8cf382204678a0086ebf46982b79d6ca3182927e5d" +checksum = "de844c262c8848816172cef550288e7dc6c7b7814b4ee56b3e1553f275f1858e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "synstructure 0.13.2", ] [[package]] name = "zerocopy" -version = "0.8.39" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "db6d35d663eadb6c932438e763b262fe1a70987f9ae936e60158176d710cae4a" +checksum = "eed437bf9d6692032087e337407a86f04cd8d6a16a37199ed57949d415bd68e9" dependencies = [ "zerocopy-derive", ] [[package]] name = "zerocopy-derive" -version = "0.8.39" +version = "0.8.48" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4122cd3169e94605190e77839c9a40d40ed048d305bfdc146e7df40ab0f3e517" +checksum = "70e3cd084b1788766f53af483dd21f93881ff30d7320490ec3ef7526d203bad4" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "zerofrom" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "50cc42e0333e05660c3587f3bf9d0478688e15d870fab3346451ce7f8c9fbea5" +checksum = "69faa1f2a1ea75661980b013019ed6687ed0e83d069bc1114e2cc74c6c04c4df" dependencies = [ "zerofrom-derive", ] [[package]] name = "zerofrom-derive" -version = "0.1.6" +version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d71e5d6e06ab090c67b5e44993ec16b72dcbaabc526db883a360057678b48502" +checksum = "11532158c46691caf0f2593ea8358fed6bbf68a0315e80aae9bd41fbade684a1" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", "synstructure 0.13.2", ] @@ -11363,14 +11514,14 @@ checksum = "85a5b4158499876c763cb03bc4e49185d3cccbabb15b33c627f7884f43db852e" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] name = "zerotrie" -version = "0.2.3" +version = "0.2.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a59c17a5562d507e4b54960e8569ebee33bee890c70aa3fe7b97e85a9fd7851" +checksum = "0f9152d31db0792fa83f70fb2f83148effb5c1f5b8c7686c3459e361d9bc20bf" dependencies = [ "displaydoc", "yoke", @@ -11379,9 +11530,9 @@ dependencies = [ [[package]] name = "zerovec" -version = "0.11.5" +version = "0.11.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c28719294829477f525be0186d13efa9a3c602f7ec202ca9e353d310fb9a002" +checksum = "90f911cbc359ab6af17377d242225f4d75119aec87ea711a880987b18cd7b239" dependencies = [ "yoke", "zerofrom", @@ -11390,13 +11541,13 @@ dependencies = [ [[package]] name = "zerovec-derive" -version = "0.11.2" +version = "0.11.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eadce39539ca5cb3985590102671f2567e659fca9666581ad3411d59207951f3" +checksum = "625dc425cab0dca6dc3c3319506e6593dcb08a9f387ea3b284dbd52a92c40555" dependencies = [ "proc-macro2", "quote", - "syn 2.0.114", + "syn 2.0.117", ] [[package]] @@ -11451,9 +11602,9 @@ dependencies = [ [[package]] name = "zip" -version = "7.3.0" +version = "7.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "268bf6f9ceb991e07155234071501490bb41fd1e39c6a588106dad10ae2a5804" +checksum = "c42e33efc22a0650c311c2ef19115ce232583abbe80850bc8b66509ebef02de0" dependencies = [ "crc32fast", "flate2", @@ -11465,9 +11616,9 @@ dependencies = [ [[package]] name = "zlib-rs" -version = "0.6.0" +version = "0.6.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a7948af682ccbc3342b6e9420e8c51c1fe5d7bf7756002b4a3c6cabfe96a7e3c" +checksum = "3be3d40e40a133f9c916ee3f9f4fa2d9d63435b5fbe1bfc6d9dae0aa0ada1513" [[package]] name = "zopfli" diff --git a/host/Cargo.toml b/host/Cargo.toml index db84e236..05f04503 100644 --- a/host/Cargo.toml +++ b/host/Cargo.toml @@ -3,10 +3,11 @@ resolver = "2" members = [ "conductora", "crates/holons_client", - "crates/holochain_receptor", - "crates/recovery_receptor", - "crates/holons_receptor", + "crates/deprecated_holochain_receptor", + #"crates/local_receptors", "crates/holons_loader_client", + "crates/recovery_receptor", + "crates/shared_types", "conductora/plugins/tauri-plugin-holochain" , "crates/map_commands"] @@ -42,8 +43,10 @@ url2 = "0.0.6" # Internal crate paths (optional for IDE support) holons_client = { path = "crates/holons_client" } -holons_receptor = { path = "crates/holons_receptor" } -holochain_receptor = { path = "crates/holochain_receptor" } +#local_receptors = { path = "crates/local_receptors" } +deprecated_holochain_receptor = { path = "crates/deprecated_holochain_receptor" } holons_loader_client = { path = "crates/holons_loader_client" } +holons_recovery = { path = "crates/holons_recovery" } +client_shared_types = { path = "crates/shared_types" } tauri-plugin-holochain = { path = "conductora/plugins/tauri-plugin-holochain" } recovery_receptor = { path = "crates/recovery_receptor" } \ No newline at end of file diff --git a/host/conductora/Cargo.toml b/host/conductora/Cargo.toml index fb719616..0b9e2687 100644 --- a/host/conductora/Cargo.toml +++ b/host/conductora/Cargo.toml @@ -36,10 +36,8 @@ tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter", "ansi", #map dependencies holons_client = { path = "../crates/holons_client" } -holons_receptor = { path = "../crates/holons_receptor" } -#client_shared_types = { path = "../crates/shared_types" } //next PR -#deprecated_holochain_receptor = { path = "../crates/deprecated_holochain_receptor" } // next PR -holochain_receptor = { path = "../crates/holochain_receptor" } +client_shared_types = { path = "../crates/shared_types" } +deprecated_holochain_receptor = { path = "../crates/deprecated_holochain_receptor" } recovery_receptor = { path = "../crates/recovery_receptor" } holons_core = { workspace = true } holons_trust_channel = { path = "../../shared_crates/holons_trust_channel" } diff --git a/host/conductora/src/config/providers/holochain.rs b/host/conductora/src/config/providers/holochain.rs index 7f333e7a..5d8af01f 100644 --- a/host/conductora/src/config/providers/holochain.rs +++ b/host/conductora/src/config/providers/holochain.rs @@ -29,7 +29,7 @@ pub struct HolochainConfig { #[serde(default)] pub production: bool, } - +//todo: add common functions impl ProviderConfig for HolochainConfig {} pub struct HolochainSelector; diff --git a/host/conductora/src/config/storage.json b/host/conductora/src/config/storage.json index 2a8da1ff..b8796aa1 100644 --- a/host/conductora/src/config/storage.json +++ b/host/conductora/src/config/storage.json @@ -51,7 +51,7 @@ "compression": false, "encryption": false, "features": ["recovery"], - "enabled": false + "enabled": true }, "local_secure": { "type": "local", diff --git a/host/conductora/src/map_commands/all_spaces.rs b/host/conductora/src/map_commands/all_spaces.rs index 50926c4e..fe4a92ae 100644 --- a/host/conductora/src/map_commands/all_spaces.rs +++ b/host/conductora/src/map_commands/all_spaces.rs @@ -1,6 +1,6 @@ -use holons_client::shared_types::holon_space::SpaceInfo; -use holons_receptor::ReceptorFactory; +use client_shared_types::{base_receptor::ReceptorType, holon_space::SpaceInfo}; +use holons_client::receptor_factory::{ReceptorFactory}; use tauri::{command, State}; @@ -11,8 +11,7 @@ pub async fn all_spaces ( tracing::debug!("[TAURI COMMAND] 'all_spaces' command invoked"); - let spaces = receptor_factory.all_spaces_by_type("holochain") - .await + let spaces = receptor_factory.all_spaces_by_type(&ReceptorType::Holochain).await .map_err(|e| format!("receptor service error: {:?}", e))?; Ok(spaces) } \ No newline at end of file diff --git a/host/conductora/src/map_commands/debug_serde.rs b/host/conductora/src/map_commands/debug_serde.rs index 9aaf54e3..04efedcb 100644 --- a/host/conductora/src/map_commands/debug_serde.rs +++ b/host/conductora/src/map_commands/debug_serde.rs @@ -1,4 +1,4 @@ -use holons_client::shared_types::map_request::MapRequestWire; +use client_shared_types::map_request::MapRequestWire; use tauri::command; // Add this temporary command to see the raw JSON diff --git a/host/conductora/src/map_commands/map_request.rs b/host/conductora/src/map_commands/map_request.rs index e5902ce8..9175014e 100644 --- a/host/conductora/src/map_commands/map_request.rs +++ b/host/conductora/src/map_commands/map_request.rs @@ -1,7 +1,6 @@ - -use holons_receptor::factory::ReceptorFactory; -use holons_client::shared_types::map_request::MapRequestWire; -use holons_client::shared_types::map_response::MapResponseWire; +use holons_client::receptor_factory::ReceptorFactory; +use client_shared_types::{base_receptor::ReceptorType, map_request::MapRequestWire}; +use client_shared_types::map_response::MapResponseWire; use tauri::{command, State}; use core_types::HolonError; @@ -13,8 +12,8 @@ pub async fn map_request( tracing::debug!("[TAURI COMMAND] 'map_request' command invoked for space: {:?}", map_request); // a map_request is currently using "holochain" receptor type only - let receptor = receptor_factory.get_receptor_by_type("holochain"); - let context = receptor.transaction_context(); + let receptor = receptor_factory.get_default_receptor_by_type(&ReceptorType::Holochain)?; + let context = receptor.transaction_context()?; let bound_request = map_request.bind(&context)?; receptor diff --git a/host/conductora/src/map_commands/root_space.rs b/host/conductora/src/map_commands/root_space.rs index 8fb51c66..a7c53521 100644 --- a/host/conductora/src/map_commands/root_space.rs +++ b/host/conductora/src/map_commands/root_space.rs @@ -1,17 +1,17 @@ - -use holons_client::shared_types::holon_space::SpaceInfo; -use holons_receptor::ReceptorFactory; +use client_shared_types::holon_space::SpaceInfo; +use holons_client::receptor_factory::ReceptorFactory; use tauri::{command, State}; #[command] pub async fn root_space ( - receptor_factory: State<'_, ReceptorFactory>, + _receptor_factory: State<'_, ReceptorFactory>, ) -> Result { + unimplemented!("This command is currently a placeholder and needs to be implemented to fetch the root space information from the appropriate receptor."); - tracing::debug!("[TAURI COMMAND] 'root_space' command invoked"); - let spaces = receptor_factory.all_spaces_by_type("local") - .await - .map_err(|e| format!("receptor service error: {:?}", e))?; - Ok(spaces) -} \ No newline at end of file + //tracing::debug!("[TAURI COMMAND] 'root_space' command invoked"); + //let spaces = receptor_factory.all_spaces_by_type(&ReceptorType::Local) + // .await + // .map_err(|e| format!("receptor service error: {:?}", e))?; + //Ok(spaces) +} diff --git a/host/conductora/src/map_commands/serde_test.rs b/host/conductora/src/map_commands/serde_test.rs index ae63dfba..9771e6dd 100644 --- a/host/conductora/src/map_commands/serde_test.rs +++ b/host/conductora/src/map_commands/serde_test.rs @@ -1,5 +1,5 @@ -use holons_client::shared_types::map_request::MapRequestWire; +use client_shared_types::map_request::MapRequestWire; use tauri::{command }; #[command] diff --git a/host/conductora/src/map_commands/status.rs b/host/conductora/src/map_commands/status.rs index 5007285b..2cc6564b 100644 --- a/host/conductora/src/map_commands/status.rs +++ b/host/conductora/src/map_commands/status.rs @@ -1,5 +1,5 @@ use crate::runtime::RuntimeState; -use holons_receptor::ReceptorFactory; +use holons_client::receptor_factory::ReceptorFactory; use tauri::{command, State}; #[command] diff --git a/host/conductora/src/runtime/init_runtime.rs b/host/conductora/src/runtime/init_runtime.rs index 36c75e0a..86169db8 100644 --- a/host/conductora/src/runtime/init_runtime.rs +++ b/host/conductora/src/runtime/init_runtime.rs @@ -1,9 +1,11 @@ use std::sync::Arc; +use client_shared_types::ReceptorType; +use holons_client::{ClientSession, Receptor, receptor_factory}; use tauri::{AppHandle, Manager}; use crate::runtime::RuntimeState; -use holons_client::init_client_runtime; +use holons_client::{init_client_runtime}; use map_commands::dispatch::{Runtime, RuntimeSession}; /// Stored by providers (e.g. Holochain) and consumed by runtime init. @@ -23,15 +25,51 @@ pub fn init_from_state(handle: &AppHandle) -> bool { }; let space_manager = init_client_runtime(Some(initiator)); + + let recovery_receptor = get_recovery_receptor_from_factory(handle); + + let _client_session = ClientSession::new(space_manager.clone(), recovery_receptor, None); + +//TODO: use the client_session + let session = Arc::new(RuntimeSession::new(space_manager)); + + let runtime = Runtime::new(session); if let Some(state) = handle.try_state::() { - let mut guard = state.write().expect("RuntimeState lock poisoned"); - *guard = Some(runtime); - tracing::info!("[RUNTIME] MAP Commands Runtime initialized."); - return true; + match state.write() { + Ok(mut guard) => { + *guard = Some(runtime); + tracing::info!("[RUNTIME] MAP Commands Runtime initialized."); + return true; + } + Err(err) => { + tracing::error!("[RUNTIME] Failed to acquire RuntimeState lock: {}", err); + return false; + } + } } false } + +fn get_recovery_receptor_from_factory(handle: &AppHandle) -> Option> { + handle.try_state::() + .and_then(|factory| { + match factory.get_default_receptor_by_type(&ReceptorType::LocalRecovery) { + Ok(receptor) => { + tracing::info!("[RUNTIME] Local recovery receptor found."); + return Some(receptor) + } + Err(err) => { + tracing::warn!( + "[RUNTIME] Local recovery receptor unavailable ({}); recovery features disabled.", + err + ); + return None + } + } + }); + None +} diff --git a/host/conductora/src/setup/app_builder.rs b/host/conductora/src/setup/app_builder.rs index 47987869..e7c38f66 100644 --- a/host/conductora/src/setup/app_builder.rs +++ b/host/conductora/src/setup/app_builder.rs @@ -12,7 +12,7 @@ use crate::{ setup_manager::SetupManager, }, }; -use holons_receptor::ReceptorFactory; +use holons_client::receptor_factory::ReceptorFactory; pub struct AppBuilder; diff --git a/host/conductora/src/setup/common_setup.rs b/host/conductora/src/setup/common_setup.rs index d17ee03d..88751075 100644 --- a/host/conductora/src/setup/common_setup.rs +++ b/host/conductora/src/setup/common_setup.rs @@ -2,7 +2,7 @@ use crate::{ config::providers::ProviderConfig, setup::receptor_config_registry::ReceptorConfigRegistry, }; -use holons_client::shared_types::base_receptor::BaseReceptor; +use client_shared_types::base_receptor::BaseReceptor; use tauri::{AppHandle, Manager}; diff --git a/host/conductora/src/setup/providers/holochain/setup.rs b/host/conductora/src/setup/providers/holochain/setup.rs index e405b2cf..ff8ae162 100644 --- a/host/conductora/src/setup/providers/holochain/setup.rs +++ b/host/conductora/src/setup/providers/holochain/setup.rs @@ -4,13 +4,11 @@ use crate::config::providers::holochain::{CellDetail, HolochainConfig}; use crate::config::StorageProvider; use crate::runtime::RuntimeInitiatorState; use crate::setup::providers::holochain::plugins::{hc_dev_mode_enabled}; -//use client_shared_types::base_receptor::{BaseReceptor, ReceptorType}; -use holons_client::shared_types::base_receptor::{BaseReceptor, ReceptorType}; +use client_shared_types::base_receptor::{BaseReceptor, ReceptorType}; use holons_trust_channel::TrustChannel; use tauri::{AppHandle, Manager, Theme}; use holochain_client::{AdminWebsocket, AppWebsocket, AppInfo}; -//use deprecated_holochain_receptor::HolochainConductorClient; -use holochain_receptor::HolochainConductorClient; +use deprecated_holochain_receptor::HolochainConductorClient; use tauri_plugin_holochain::{HolochainExt, AppBundle}; use async_trait::async_trait; use crate::setup::window_setup::ProviderWindowSetup; diff --git a/host/conductora/src/setup/providers/local/setup.rs b/host/conductora/src/setup/providers/local/setup.rs index cdb9d52f..1bc96240 100644 --- a/host/conductora/src/setup/providers/local/setup.rs +++ b/host/conductora/src/setup/providers/local/setup.rs @@ -3,8 +3,7 @@ use crate::config::providers::ProviderConfig; use crate::config::providers::local::LocalConfig; use crate::config::StorageProvider; use crate::setup::common_setup::{register_receptor, serialize_props}; -//use client_shared_types::base_receptor::{BaseReceptor, ReceptorType}; -use holons_client::shared_types::base_receptor::{BaseReceptor, ReceptorType}; +use client_shared_types::base_receptor::{BaseReceptor, ReceptorType}; use recovery_receptor::{RecoveryStore, TransactionRecoveryStore}; use tauri::{AppHandle, Manager}; diff --git a/host/conductora/src/setup/receptor_config_registry.rs b/host/conductora/src/setup/receptor_config_registry.rs index 5ca72d22..c7713c49 100644 --- a/host/conductora/src/setup/receptor_config_registry.rs +++ b/host/conductora/src/setup/receptor_config_registry.rs @@ -1,5 +1,4 @@ -//use client_shared_types::base_receptor::{BaseReceptor};//, ReceptorType}; -use holons_client::shared_types::base_receptor::{BaseReceptor}; +use client_shared_types::base_receptor::{BaseReceptor};//, ReceptorType}; use std::sync::Mutex; /// Registry for collecting `ReceptorConfig` entries from different setup modules diff --git a/host/crates/holochain_receptor/Cargo.toml b/host/crates/deprecated_holochain_receptor/Cargo.toml similarity index 64% rename from host/crates/holochain_receptor/Cargo.toml rename to host/crates/deprecated_holochain_receptor/Cargo.toml index 68b802dc..47b83104 100644 --- a/host/crates/holochain_receptor/Cargo.toml +++ b/host/crates/deprecated_holochain_receptor/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "holochain_receptor" +name = "deprecated_holochain_receptor" version = "0.1.0" edition = "2021" #edition = "2024" @@ -8,6 +8,8 @@ edition = "2021" tracing = "0.1" serde_bytes = "*" async-trait = "0.1" +futures-executor = "0.3" +tokio = { version = "1", features = ["rt", "rt-multi-thread"] } #holochain dependencies holochain_client = { version = "0.7.1" } @@ -16,9 +18,12 @@ holochain_types = "0.5" #map dependencies holons_core = { path = "../../../shared_crates/holons_core" } holons_boundary = { path = "../../../shared_crates/holons_boundary" } -holons_client = { path = "../holons_client" } +#holons_client = { path = "../holons_client" } +client_shared_types = { path = "../shared_types" } +integrity_core_types = { path = "../../../shared_crates/type_system/integrity_core_types" } holons_trust_channel = { path = "../../../shared_crates/holons_trust_channel" } holons_loader_client = { path = "../holons_loader_client" } core_types = { path = "../../../shared_crates/type_system/core_types" } base_types = { path = "../../../shared_crates/type_system/base_types" } type_names = { path = "../../../shared_crates/type_system/type_names" } +holon_dance_builders = { path = "../../../shared_crates/holon_dance_builders" } \ No newline at end of file diff --git a/host/crates/deprecated_holochain_receptor/src/client_context.rs b/host/crates/deprecated_holochain_receptor/src/client_context.rs new file mode 100644 index 00000000..e89ce1f6 --- /dev/null +++ b/host/crates/deprecated_holochain_receptor/src/client_context.rs @@ -0,0 +1,47 @@ +use crate::client_shared_objects::ClientHolonService; + +use holons_core::core_shared_objects::space_manager::HolonSpaceManager; +use holons_core::core_shared_objects::transactions::TransactionContext; +use holons_core::core_shared_objects::ServiceRoutingPolicy; + +use holons_core::dances::DanceInitiator; +use holons_core::reference_layer::HolonServiceApi; + +use std::sync::Arc; + +/// Initializes a new client-side context with a fresh `HolonSpaceManager` and +/// an implicit default transaction. +/// +/// This function sets up: +/// - A default `HolonServiceApi` implementation (`ClientHolonService`). +/// - A space manager configured with client-specific routing policies. +/// - An implicit transaction opened via the per-space `TransactionManager`. +/// - Injects the optional `DanceInitiator` for conductor calls. +/// +/// # Returns +/// * An `Arc` backed by a `TransactionContext`. +pub fn init_client_context(initiator: Option>) -> Arc { + let space_manager = init_client_runtime(initiator); + + // Open the default transaction for this space. + // TransactionContext becomes the sole execution root and owns the space. + space_manager + .get_transaction_manager() + .open_new_transaction(Arc::clone(&space_manager)) + .expect("failed to open default client transaction") +} + +/// Initializes a new client-side `HolonSpaceManager` without opening a transaction. +/// +/// Same construction as `init_client_context()` but returns the space manager +/// directly, leaving transaction lifecycle to the caller (e.g., `RuntimeSession`). +pub fn init_client_runtime(initiator: Option>) -> Arc { + let holon_service: Arc = Arc::new(ClientHolonService); + + Arc::new(HolonSpaceManager::new_with_managers( + initiator, + holon_service, + None, + ServiceRoutingPolicy::Combined, + )) +} diff --git a/host/crates/deprecated_holochain_receptor/src/client_shared_objects/client_holon_service.rs b/host/crates/deprecated_holochain_receptor/src/client_shared_objects/client_holon_service.rs new file mode 100644 index 00000000..d5087129 --- /dev/null +++ b/host/crates/deprecated_holochain_receptor/src/client_shared_objects/client_holon_service.rs @@ -0,0 +1,354 @@ +//! ClientHolonService +//! ------------------ +//! This module provides the *client-side* implementation of the `HolonServiceApi`. +//! +//! The guest-side (`holons_guest`) implementation performs persistence directly on the +//! Holochain DHT. The client-side version cannot do so; instead, *every operation that +//! interacts with saved holons must be executed as an asynchronous Dance* via the +//! DanceInitiator. +//! +//! Because `HolonServiceApi` is intentionally **synchronous** (shared by both guest and +//! client builds), this file implements the **sync → async → sync bridge** for all +//! dance-based operations: +//! +//! 1. A synchronous API function (e.g., `commit_internal`, `load_holons_internal`) +//! constructs a dance request. +//! 2. It invokes the DanceInitiator's async `initiate_dance(...)` method. +//! 3. The returned `Future` is executed to completion using +//! `run_future_synchronously`, ensuring that callers never need to be async. +//! 4. The resulting `DanceResponse` is interpreted and converted back into a +//! `HolonReference`, `HolonCollection`, or a `HolonError`. +//! +//! This makes the client holon service a **pure request/response layer**: it never touches +//! persistence, never owns a runtime, and remains compatible with synchronous application +//! environments (Tauri, desktop/native, CLI tools, etc.). +//! +//! Key architectural notes: +//! • This module must *not* assume the presence of a Tokio runtime. +//! • The async runtime used to execute dances is entirely owned by the +//! DanceInitiator / hosting layer (e.g., Conductora). +//! • All concurrency concerns are isolated inside the dance initiation logic. +//! +//! As such, `ClientHolonService` is the canonical boundary between synchronous client +//! code and the asynchronous, choreography-driven MAP backend. + +#![allow(unused_variables)] + +use core_types::{HolonError, HolonId}; +use futures_executor::block_on; +use holons_core::core_shared_objects::transactions::{TransactionContext, TransactionContextHandle}; +use holons_core::dances::{ResponseBody, ResponseStatusCode}; +use holons_core::query_layer::{Node, NodeCollection, QueryExpression}; +use holons_core::reference_layer::TransientReference; +use holons_core::{ + core_shared_objects::{Holon, HolonCollection}, + reference_layer::{HolonServiceApi, SmartReference}, + HolonCollectionApi, HolonReference, RelationshipMap, StagedReference, +}; +use integrity_core_types::{LocalId, RelationshipName}; +use std::any::Any; +use std::fmt::Debug; +use std::future::Future; +use std::sync::{Arc, RwLock}; +use tokio::runtime::Handle; +use tokio::task::block_in_place; + +#[derive(Debug, Clone)] +pub struct ClientHolonService; + +impl HolonServiceApi for ClientHolonService { + fn as_any(&self) -> &dyn Any { + self + } + + fn commit_internal( + &self, + context: &Arc, + _staged_references: &[StagedReference], + ) -> Result { + // Build commit dance request + let request = holon_dance_builders::build_commit_dance_request()?; + + // Run the dance (sync → async → sync) + let response = + run_future_synchronously(async move { context.initiate_dance(request).await })?; + + // Any non-OK status is an error + if response.status_code != ResponseStatusCode::OK { + return Err(HolonError::Misc(format!( + "Commit dance failed: {:?} — {}", + response.status_code, response.description.0 + ))); + } + + // Extract HolonReference → TransientReference + match response.body { + ResponseBody::HolonReference(HolonReference::Transient(tref)) => Ok(tref), + ResponseBody::HolonReference(other) => Err(HolonError::CommitFailure(format!( + "Expected TransientReference but received {:?}", + other + ))), + body => Err(HolonError::CommitFailure(format!( + "Commit returned unexpected ResponseBody: {:?}; expected HolonReference", + body + ))), + } + } + + fn delete_holon_internal( + &self, + context: &Arc, + local_id: &LocalId, + ) -> Result<(), HolonError> { + let request = holon_dance_builders::build_delete_holon_dance_request(local_id.clone())?; + let response = + run_future_synchronously(async move { context.initiate_dance(request).await })?; + + if response.status_code != ResponseStatusCode::OK { + return Err(HolonError::Misc(format!( + "DeleteHolon dance failed: {:?} — {}", + response.status_code, response.description.0 + ))); + } + + match response.body { + ResponseBody::None => Ok(()), + other => Err(HolonError::InvalidParameter(format!( + "DeleteHolon: expected ResponseBody::None, got {:?}", + other + ))), + } + } + + fn fetch_all_related_holons_internal( + &self, + context: &Arc, + source_id: &HolonId, + ) -> Result { + let context_handle = TransactionContextHandle::new(Arc::clone(context)); + let source_reference = + HolonReference::Smart(SmartReference::new_from_id(context_handle, source_id.clone())); + let node_collection = NodeCollection { + members: vec![Node::new(source_reference, None)], + query_spec: None, + }; + + let request = + holon_dance_builders::build_fetch_all_related_holons_dance_request(node_collection)?; + let response = + run_future_synchronously(async move { context.initiate_dance(request).await })?; + + if response.status_code != ResponseStatusCode::OK { + return Err(HolonError::Misc(format!( + "FetchAllRelatedHolons dance failed: {:?} — {}", + response.status_code, response.description.0 + ))); + } + + match response.body { + ResponseBody::NodeCollection(node_collection) => { + let mut result = RelationshipMap::new_empty(); + + for node in node_collection.members { + if let Some(relationships) = node.relationships { + for (relationship_name, related_nodes) in relationships.0 { + let references = related_nodes + .members + .iter() + .map(|related| related.source_holon.clone()) + .collect::>(); + + if let Some(existing_collection_arc) = + result.get_collection_for_relationship(&relationship_name) + { + let mut existing_collection = + existing_collection_arc.write().map_err(|e| { + HolonError::FailedToAcquireLock(format!( + "Failed to acquire write lock on relationship collection: {}", + e + )) + })?; + existing_collection.add_references(references)?; + } else { + let mut collection = HolonCollection::new_existing(); + collection.add_references(references)?; + result.insert( + relationship_name, + Arc::new(RwLock::new(collection)), + ); + } + } + } + } + + Ok(result) + } + other => Err(HolonError::InvalidParameter(format!( + "FetchAllRelatedHolons: expected ResponseBody::NodeCollection, got {:?}", + other + ))), + } + } + + fn fetch_holon_internal( + &self, + context: &Arc, + id: &HolonId, + ) -> Result { + let request = holon_dance_builders::build_get_holon_by_id_dance_request(id.clone())?; + let response = + run_future_synchronously(async move { context.initiate_dance(request).await })?; + + if response.status_code != ResponseStatusCode::OK { + return Err(HolonError::Misc(format!( + "GetHolonById dance failed: {:?} — {}", + response.status_code, response.description.0 + ))); + } + + match response.body { + ResponseBody::Holon(holon) => Ok(holon), + other => Err(HolonError::InvalidParameter(format!( + "GetHolonById: expected ResponseBody::Holon, got {:?}", + other + ))), + } + } + + fn fetch_related_holons_internal( + &self, + context: &Arc, + source_id: &HolonId, + relationship_name: &RelationshipName, + ) -> Result { + let context_handle = TransactionContextHandle::new(Arc::clone(context)); + let source_reference = + HolonReference::Smart(SmartReference::new_from_id(context_handle, source_id.clone())); + let node_collection = NodeCollection { + members: vec![Node::new(source_reference, None)], + query_spec: None, + }; + let query = QueryExpression::new(relationship_name.clone()); + let request = holon_dance_builders::build_query_relationships_dance_request( + node_collection, + query, + )?; + let response = + run_future_synchronously(async move { context.initiate_dance(request).await })?; + + if response.status_code != ResponseStatusCode::OK { + return Err(HolonError::Misc(format!( + "QueryRelationships dance failed: {:?} — {}", + response.status_code, response.description.0 + ))); + } + + match response.body { + ResponseBody::NodeCollection(node_collection) => { + let mut result = HolonCollection::new_existing(); + for node in node_collection.members { + if let Some(relationships) = node.relationships { + if let Some(related_nodes) = relationships.0.get(relationship_name) { + let references = related_nodes + .members + .iter() + .map(|related| related.source_holon.clone()) + .collect(); + result.add_references(references)?; + } + } + } + Ok(result) + } + other => Err(HolonError::InvalidParameter(format!( + "QueryRelationships: expected ResponseBody::NodeCollection, got {:?}", + other + ))), + } + } + + fn get_all_holons_internal( + &self, + context: &Arc, + ) -> Result { + let request = holon_dance_builders::build_get_all_holons_dance_request()?; + + let response = + run_future_synchronously(async move { context.initiate_dance(request).await })?; + + if response.status_code != ResponseStatusCode::OK { + return Err(HolonError::Misc(format!( + "GetAllHolons dance failed: {:?} — {}", + response.status_code, response.description.0 + ))); + } + + match response.body { + ResponseBody::HolonCollection(collection) => Ok(collection), + other => Err(HolonError::InvalidParameter(format!( + "GetAllHolons: expected ResponseBody::HolonCollection, got {:?}", + other + ))), + } + } + + fn load_holons_internal( + &self, + context: &Arc, + set: TransientReference, // HolonLoadSet type + ) -> Result { + // 1) Build the dance request for the loader. + let request = holon_dance_builders::build_load_holons_dance_request(set)?; + + // 2) Bridge async → sync (ClientHolonService is synchronous) + let response = + run_future_synchronously(async move { context.initiate_dance(request).await })?; + + // 3) Check the status + if response.status_code != ResponseStatusCode::OK { + return Err(HolonError::Misc(format!( + "LoadHolons dance failed: {:?} — {}", + response.status_code, response.description.0 + ))); + } + + // 4) Extract the returned holon + match response.body { + ResponseBody::HolonReference(HolonReference::Transient(tref)) => Ok(tref), + ResponseBody::HolonReference(other) => Err(HolonError::InvalidParameter(format!( + "LoadHolons: expected TransientReference, got {:?}", + other + ))), + other => Err(HolonError::InvalidParameter(format!( + "LoadHolons: expected ResponseBody::HolonReference, got {:?}", + other + ))), + } + } +} + +/// Drive an async future to completion from synchronous host/client code. +/// +/// Behavior: +/// - If a Tokio runtime is already running on this thread, execute via +/// `block_in_place(|| futures_executor::block_on(...))` so we do not nest runtimes. +/// - If no runtime is running, execute directly with `futures_executor::block_on(...)`. +/// +/// Note: `block_in_place` requires a Tokio multi-thread runtime. If this helper is +/// called from a current-thread Tokio runtime, Tokio will panic. +pub fn run_future_synchronously(future: F) -> T +where + F: Future, +{ + // Choice: return T to avoid widening the sync API surface; if we want to propagate + // runtime setup errors instead of panicking, we can change the signature to + // -> Result later. + + // If already inside a Tokio runtime, drive the future there without requiring static. + if Handle::try_current().is_ok() { + return block_in_place(|| block_on(future)); + } + + // Otherwise, run directly with futures_executor (no Tokio runtime required). + block_on(future) +} diff --git a/host/crates/deprecated_holochain_receptor/src/client_shared_objects/mod.rs b/host/crates/deprecated_holochain_receptor/src/client_shared_objects/mod.rs new file mode 100644 index 00000000..523a199b --- /dev/null +++ b/host/crates/deprecated_holochain_receptor/src/client_shared_objects/mod.rs @@ -0,0 +1,2 @@ +pub mod client_holon_service; +pub use client_holon_service::ClientHolonService; diff --git a/host/crates/holochain_receptor/src/conductor_dance_caller.rs b/host/crates/deprecated_holochain_receptor/src/conductor_dance_caller.rs similarity index 100% rename from host/crates/holochain_receptor/src/conductor_dance_caller.rs rename to host/crates/deprecated_holochain_receptor/src/conductor_dance_caller.rs diff --git a/host/crates/deprecated_holochain_receptor/src/dances_client/client_dance_builder.rs b/host/crates/deprecated_holochain_receptor/src/dances_client/client_dance_builder.rs new file mode 100644 index 00000000..27bbc438 --- /dev/null +++ b/host/crates/deprecated_holochain_receptor/src/dances_client/client_dance_builder.rs @@ -0,0 +1,243 @@ +use client_shared_types::map_request::{MapRequest, MapRequestBody}; +use base_types::BaseValue::StringValue; +use base_types::MapString; +use core_types::{HolonError, PropertyMap, PropertyName}; +use holon_dance_builders::{ + build_commit_dance_request, build_get_all_holons_dance_request, + build_get_holon_by_id_dance_request, build_with_properties_dance_request, + stage_new_holon_dance::build_stage_new_holon_dance_request, +}; +use holons_core::core_shared_objects::transactions::TransactionContext; +use holons_core::dances::DanceRequest; +use holons_core::HolonReference; +use std::sync::Arc; + +pub struct ClientDanceBuilder; + +const PERMITTED_OPS: &[&str] = &[ + "abandon_staged_changes", + "add_related_holons", + "create_new_holon", + "commit", + "delete_holon", + "get_all_holons", + "get_holon_by_id", + "load_core_schema", + "load_holons", + "query_relationships", + "remove_properties", + "remove_related_holons", + "stage_new_from_clone", + "stage_new_holon", + "stage_new_version", + "with_properties", +]; + +impl ClientDanceBuilder { + pub fn _permitted_operations() -> Vec<&'static str> { + PERMITTED_OPS.to_vec() + } + + pub fn validate_and_execute( + context: &Arc, + request: &MapRequest, + ) -> Result { + Self::validate_request(request)?; + + match request.name.as_str() { + "abandon_staged_changes" => Self::abandon_staged_changes_dance(context, request), + "add_related_holons" => Self::add_related_holons_dance(context, request), + "commit" => Self::commit_dance(context, request), + "create_new_holon" => Self::create_new_holon_dance(context, request), + "delete_holon" => Self::delete_holon_dance(context, request), + "get_all_holons" => Self::get_all_holons_dance(), + "get_holon_by_id" => Self::get_holon_by_id_dance(context, request), + "load_core_schema" => Self::load_core_schema_dance(context, request), + "load_holons" => Self::load_holons_dance(context, request), + "query_relationships" => Self::query_relationships_dance(context, request), + "remove_properties" => Self::remove_properties_dance(context, request), + "remove_related_holons" => Self::remove_related_holons_dance(context, request), + "stage_new_from_clone" => Self::stage_new_from_clone_dance(context, request), + "stage_new_holon" => Self::stage_new_holon_dance(context, request), + "stage_new_version" => Self::stage_new_version_dance(context, request), + "with_properties" => Self::with_properties_dance(context, request), + _ => Err(HolonError::NotImplemented(format!("Operation '{}' not found", request.name))), + } + } + + pub fn validate_request(request: &MapRequest) -> Result<(), HolonError> { + if PERMITTED_OPS.contains(&request.name.as_str()) { + Ok(()) + } else { + Err(HolonError::NotImplemented(format!( + "Operation '{}' is not permitted. Allowed operations: {}", + request.name, + PERMITTED_OPS.join(", ") + ))) + } + } + pub fn abandon_staged_changes_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + todo!() + } + + pub fn add_related_holons_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + todo!() + } + + pub fn commit_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + return build_commit_dance_request(); + } + pub fn delete_holon_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + todo!() + } + pub fn get_all_holons_dance(//_context: &Arc, + //_request: &MapRequest, + ) -> Result { + return build_get_all_holons_dance_request(); + } + pub fn get_holon_by_id_dance( + _context: &Arc, + request: &MapRequest, + ) -> Result { + match &request.body { + MapRequestBody::HolonId(holon_id) => { + return build_get_holon_by_id_dance_request(holon_id.clone()) + } + _ => { + return Err(HolonError::InvalidParameter( + "Missing HolonId in request body for get_holon_by_id".into(), + )) + } + } + } + pub fn load_core_schema_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + todo!() + } + + pub fn load_holons_dance( + _context: &Arc, + request: &MapRequest, + ) -> Result { + match &request.body { + MapRequestBody::TransientReference(transient_ref) => { + return holon_dance_builders::load_holons_dance::build_load_holons_dance_request( + transient_ref.clone(), + ); + } + _ => { + return Err(HolonError::InvalidParameter( + "Missing Content data in request body for load_holons".into(), + )) + } + } + } + + pub fn query_relationships_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + todo!() + } + pub fn remove_properties_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + todo!() + } + pub fn remove_related_holons_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + todo!() + } + pub fn stage_new_from_clone_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + todo!() + } + + pub fn create_new_holon_dance( + context: &Arc, + request: &MapRequest, + ) -> Result { + match &request.body { + MapRequestBody::ParameterValues(props) => { + let key = Self::extract_holon_key(&props)?; + let transient_ref = context.mutation().new_holon(Some(key))?; + return build_with_properties_dance_request( + HolonReference::from(transient_ref.clone()), + props.clone(), + ); + } + _ => { + return Err(HolonError::InvalidParameter( + "Missing holon parameters for create_new_holon".into(), + )) + } + } + } + + pub fn stage_new_holon_dance( + _context: &Arc, + request: &MapRequest, + ) -> Result { + match &request.body { + MapRequestBody::TransientReference(reference) => { + return build_stage_new_holon_dance_request(reference.clone()); + } + _ => { + return Err(HolonError::InvalidParameter( + "Missing holon reference for stage_new_holon".into(), + )) + } + } + } + + pub fn stage_new_version_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + todo!() + } + pub fn with_properties_dance( + _context: &Arc, + _request: &MapRequest, + ) -> Result { + todo!() + } + + //helpers + + fn extract_holon_key(props: &PropertyMap) -> Result { + let key_property = props.get(&PropertyName(MapString("key".to_string()))); + + // Convert PropertyValue to MapString + let key = match key_property { + Some(StringValue(map_string)) => map_string, + Some(other) => { + return Err(HolonError::InvalidParameter(format!( + "Expected StringValue for key, got: {:?}", + other + ))) + } + None => return Err(HolonError::HolonNotFound("Key property not found".into())), + }; + Ok(key.clone()) + } +} diff --git a/host/crates/deprecated_holochain_receptor/src/dances_client/mod.rs b/host/crates/deprecated_holochain_receptor/src/dances_client/mod.rs new file mode 100644 index 00000000..10164fe7 --- /dev/null +++ b/host/crates/deprecated_holochain_receptor/src/dances_client/mod.rs @@ -0,0 +1,2 @@ +pub mod client_dance_builder; +pub use client_dance_builder::ClientDanceBuilder; diff --git a/host/crates/holochain_receptor/src/holochain_conductor_client.rs b/host/crates/deprecated_holochain_receptor/src/holochain_conductor_client.rs similarity index 99% rename from host/crates/holochain_receptor/src/holochain_conductor_client.rs rename to host/crates/deprecated_holochain_receptor/src/holochain_conductor_client.rs index aa1eed4c..6bb1b440 100644 --- a/host/crates/holochain_receptor/src/holochain_conductor_client.rs +++ b/host/crates/deprecated_holochain_receptor/src/holochain_conductor_client.rs @@ -13,7 +13,7 @@ use holochain_client::{ }; use holons_boundary::envelopes::{DanceRequestEnvelope, DanceResponseEnvelope}; use holons_boundary::{DanceResponseWire, ResponseBodyWire}; -use holons_client::shared_types::holon_space::{HolonSpace, SpaceInfo}; +use client_shared_types::holon_space::{HolonSpace, SpaceInfo}; use holons_core::dances::ResponseStatusCode; use holons_trust_channel::DanceEnvelopeTransport; diff --git a/host/crates/holochain_receptor/src/holochain_receptor.rs b/host/crates/deprecated_holochain_receptor/src/holochain_receptor.rs similarity index 92% rename from host/crates/holochain_receptor/src/holochain_receptor.rs rename to host/crates/deprecated_holochain_receptor/src/holochain_receptor.rs index 09ac3189..5f1fefdb 100644 --- a/host/crates/holochain_receptor/src/holochain_receptor.rs +++ b/host/crates/deprecated_holochain_receptor/src/holochain_receptor.rs @@ -3,20 +3,16 @@ use std::fmt; use std::fmt::Debug; use std::sync::Arc; -use async_trait::async_trait; - use crate::holochain_conductor_client::HolochainConductorClient; use base_types::MapString; use core_types::HolonError; -use holons_client::{ - dances_client::ClientDanceBuilder, - init_client_context, - shared_types::{ - base_receptor::{BaseReceptor, ReceptorBehavior, ReceptorType}, +use crate::dances_client::ClientDanceBuilder; +use crate::client_context::init_client_context; +use client_shared_types::{ + base_receptor::{BaseReceptor, ReceptorType}, holon_space::{HolonSpace, SpaceInfo}, map_request::{MapRequest, MapRequestBody}, - map_response::MapResponse, - }, + map_response::MapResponse }; use holons_core::core_shared_objects::transactions::TransactionContext; use holons_core::dances::{DanceInitiator, DanceResponse, ResponseBody, ResponseStatusCode}; @@ -66,7 +62,7 @@ impl HolochainReceptor { Self { receptor_id: base.receptor_id.clone(), - receptor_type: base.receptor_type.clone(), + receptor_type: base.receptor_type, properties: base.properties.clone(), context, client_handler, @@ -75,14 +71,13 @@ impl HolochainReceptor { } } -#[async_trait] -impl ReceptorBehavior for HolochainReceptor { - fn transaction_context(&self) -> Arc { +impl HolochainReceptor { + pub fn transaction_context(&self) -> Arc { Arc::clone(&self.context) } /// Core request → client dance pipeline - async fn handle_map_request(&self, request: MapRequest) -> Result { + pub async fn handle_map_request(&self, request: MapRequest) -> Result { // Temporary Phase 1.4/1.5 bridge: commit-like requests serialize host // ingress here. In Phase 2 this moves to CommandDispatcher. if Self::is_commit_dance_request(request.name.as_str()) { @@ -149,7 +144,7 @@ impl ReceptorBehavior for HolochainReceptor { } /// POC stub for system info - async fn get_space_info(&self) -> Result { + pub async fn get_space_info(&self) -> Result { // Call stubbed conductor client self.client_handler.get_all_spaces().await } @@ -170,13 +165,11 @@ mod tests { use super::HolochainReceptor; use base_types::{BaseValue, MapString}; use core_types::{PropertyMap, PropertyName}; - use holons_client::{ - dances_client::ClientDanceBuilder, - init_client_context, - shared_types::{ + use crate::dances_client::ClientDanceBuilder; + use crate::client_context::init_client_context; + use client_shared_types::{ holon_space::HolonSpace, map_request::{MapRequest, MapRequestBody}, - }, }; use holons_core::dances::DanceType; diff --git a/host/crates/holochain_receptor/src/lib.rs b/host/crates/deprecated_holochain_receptor/src/lib.rs similarity index 79% rename from host/crates/holochain_receptor/src/lib.rs rename to host/crates/deprecated_holochain_receptor/src/lib.rs index a3d85221..deb42d83 100644 --- a/host/crates/holochain_receptor/src/lib.rs +++ b/host/crates/deprecated_holochain_receptor/src/lib.rs @@ -1,7 +1,11 @@ mod conductor_dance_caller; +mod dances_client; +mod client_context; +mod client_shared_objects; pub mod holochain_conductor_client; pub mod holochain_receptor; + // Re-export key types and traits for external use pub use holochain_conductor_client::HolochainConductorClient; pub use holochain_receptor::HolochainReceptor; diff --git a/host/crates/holons_client/Cargo.toml b/host/crates/holons_client/Cargo.toml index 8d139c90..4e9b831f 100644 --- a/host/crates/holons_client/Cargo.toml +++ b/host/crates/holons_client/Cargo.toml @@ -11,7 +11,7 @@ name = "holons_client" serde = { version = "1", features = ["derive"] } serde_bytes = "*" async-trait = "0.1" -#tracing = "0.1" +tracing = "0.1" futures-executor = "0.3" tokio = { version = "1", features = ["rt", "rt-multi-thread"] } @@ -22,3 +22,8 @@ core_types = { path = "../../../shared_crates/type_system/core_types" } integrity_core_types = { path = "../../../shared_crates/type_system/integrity_core_types" } holon_dance_builders = { path = "../../../shared_crates/holon_dance_builders" } holons_boundary = { path = "../../../shared_crates/holons_boundary" } +client_shared_types = {path = "../shared_types"} +deprecated_holochain_receptor = { path = "../deprecated_holochain_receptor" } +recovery_receptor = { path = "../recovery_receptor" } +#local_receptors = { path = "../local_receptors" } +#holons_receptor = { path = "../holons_receptor" } \ No newline at end of file diff --git a/host/crates/holons_client/src/client_session.rs b/host/crates/holons_client/src/client_session.rs new file mode 100644 index 00000000..0ec9e135 --- /dev/null +++ b/host/crates/holons_client/src/client_session.rs @@ -0,0 +1,47 @@ +use std::sync::Arc; +use core_types::HolonError; +use holons_core::core_shared_objects::{space_manager::HolonSpaceManager, transactions::TransactionContext, transactions::TxId}; + +use crate::Receptor; + +pub struct ClientSession { + _context: Arc, + // Other session-related fields can be added here +} + +impl ClientSession { + pub fn new(space_manager: Arc, recovery: Option>, _destination: Option>) -> Result { + if let Some(receptor_arc) = recovery { + if let Receptor::LocalRecovery(receptor) = receptor_arc.as_ref() { + if let Some(tx_id) = receptor.recover_last_tx_id_from_crash() { + tracing::info!("[CLIENT SESSION] Orphaned transaction found from previous crash: {}", tx_id.clone()); + let transaction_context = space_manager + .get_transaction_manager() + .open_transaction_with_id(Arc::clone(&space_manager), TxId::from_str(&tx_id).expect("invalid tx_id")) + .or_else(|_| Err(HolonError::FailedToBorrow("[CLIENT SESSION] Failed to open transaction for crash recovery".into())))?; + receptor.init_session(transaction_context.clone()); + return Ok(Self { + _context: transaction_context, + }); + } else { + let transaction_context = space_manager + .get_transaction_manager() + .open_new_transaction(Arc::clone(&space_manager)) + .or_else(|_| Err(HolonError::FailedToBorrow("[CLIENT SESSION] Failed to open transaction for crash recovery".into())))?; + receptor.init_session(transaction_context.clone()); + return Ok(Self { + _context: transaction_context, + }); + } + } else { + return Err(HolonError::FailedToBorrow("[CLIENT SESSION] Provided recovery receptor is not a LocalRecoveryReceptor".into())); + } + } + Err(HolonError::FailedToBorrow("[CLIENT SESSION] No valid recovery receptor provided".into())) + } + + // todo: add methods for session operations, e.g. add, save, undo, list, etc. + // commit could be handled by the receptor or by the session itself depending on design decisions around who owns the transaction context and how tightly coupled the session is to the recovery mechanism. + + // Additional methods for session management can be added here +} \ No newline at end of file diff --git a/host/crates/holons_client/src/dances_client/client_dance_builder.rs b/host/crates/holons_client/src/dances_client/client_dance_builder.rs index 208396b0..80620848 100644 --- a/host/crates/holons_client/src/dances_client/client_dance_builder.rs +++ b/host/crates/holons_client/src/dances_client/client_dance_builder.rs @@ -1,4 +1,4 @@ -use crate::shared_types::map_request::{MapRequest, MapRequestBody}; +use client_shared_types::map_request::{MapRequest, MapRequestBody}; use base_types::BaseValue::StringValue; use base_types::MapString; use core_types::{HolonError, PropertyMap, PropertyName}; diff --git a/host/crates/holons_client/src/lib.rs b/host/crates/holons_client/src/lib.rs index 3867913e..4b775440 100644 --- a/host/crates/holons_client/src/lib.rs +++ b/host/crates/holons_client/src/lib.rs @@ -1,7 +1,53 @@ pub mod client_context; +pub mod client_session; pub mod client_shared_objects; pub mod dances_client; -pub mod shared_types; +pub mod receptor_factory; +pub mod receptor_cache; + +use std::sync::Arc; pub use client_context::{init_client_context, init_client_runtime}; -pub use client_shared_objects::*; \ No newline at end of file +pub use client_session::ClientSession; +pub use client_shared_objects::*; +use client_shared_types::{MapRequest, MapResponse, SpaceInfo}; +use core_types::HolonError; +pub use deprecated_holochain_receptor::HolochainReceptor; +use holons_core::core_shared_objects::transactions::TransactionContext; +pub use recovery_receptor::local_recovery_receptor::LocalRecoveryReceptor; + +pub enum Receptor { + //Local(LocalReceptor), + Holochain(HolochainReceptor), + LocalRecovery(LocalRecoveryReceptor), +} + +//these are temporarily here until transition to the map commands spec is ready +impl Receptor { + pub fn transaction_context(&self) -> Result, HolonError> { + match self { + Receptor::Holochain(r) => Ok(r.transaction_context()), + Receptor::LocalRecovery(_) => Err(HolonError::NotImplemented( + "LocalRecoveryReceptor does not expose transaction_context".into() + )), + } + } + + pub async fn handle_map_request(&self, request: MapRequest) -> Result { + match self { + Receptor::Holochain(r) => r.handle_map_request(request).await, + Receptor::LocalRecovery(_) => Err(HolonError::NotImplemented( + "LocalRecoveryReceptor does not handle map requests".into(), + )), + } + } + + pub async fn get_space_info(&self) -> Result { + match self { + Receptor::Holochain(r) => r.get_space_info().await, + Receptor::LocalRecovery(_) => Err(HolonError::NotImplemented( + "LocalRecoveryReceptor does not expose space info".into(), + )), + } + } +} diff --git a/host/crates/holons_client/src/receptor_cache.rs b/host/crates/holons_client/src/receptor_cache.rs new file mode 100644 index 00000000..80aa9381 --- /dev/null +++ b/host/crates/holons_client/src/receptor_cache.rs @@ -0,0 +1,121 @@ +use std::collections::HashMap; +use std::sync::{Arc, Mutex}; + +use core_types::HolonError; +use client_shared_types::base_receptor::ReceptorType; + +use crate::Receptor; + +#[derive(Debug, Clone, PartialEq, Eq, Hash)] +pub struct ReceptorKey { + pub receptor_type: ReceptorType, + pub receptor_id: String, +} + +impl ReceptorKey { + pub fn new(receptor_type: ReceptorType, receptor_id: String) -> Self { + Self { receptor_type, receptor_id } + } +} + +// Updated to be thread-safe +#[derive(Clone)] +pub struct ReceptorCache { + cache: Arc>>>, +} + +impl ReceptorCache { + pub fn new() -> Self { + Self { cache: Arc::new(Mutex::new(HashMap::new())) } + } + + fn lock_cache( + &self, + ) -> Result>>, HolonError> { + self.cache + .lock() + .map_err(|e| HolonError::FailedToAcquireLock(format!("Receptor cache lock poisoned: {e}"))) + } + + pub fn get(&self, key: &ReceptorKey) -> Result>, HolonError> { + Ok(self.lock_cache()?.get(key).cloned()) + } + + pub fn get_by_id(&self, receptor_id: &String) -> Result>, HolonError> { + let cache = self.lock_cache()?; + Ok(cache + .iter() + .filter_map(|(key, receptor)| { + if key.receptor_id == *receptor_id { + Some(receptor.clone()) + } else { + None + } + }) + .collect()) + } + + pub fn get_by_type(&self, receptor_type: ReceptorType) -> Result>, HolonError> { + let cache = self.lock_cache()?; + Ok(cache + .iter() + .filter_map(|(key, receptor)| { + if key.receptor_type == receptor_type { + Some(receptor.clone()) + } else { + None + } + }) + .collect()) + } + + pub fn insert(&self, key: ReceptorKey, receptor: Arc) -> Result<(), HolonError> { + let mut cache = self.lock_cache()?; + cache.insert(key, receptor); + tracing::debug!("Cached receptor. Total cached: {}", cache.len()); + Ok(()) + } + + pub fn remove(&self, key: &ReceptorKey) -> Result>, HolonError> { + Ok(self.lock_cache()?.remove(key)) + } + + pub fn clear(&self) -> Result<(), HolonError> { + self.lock_cache()?.clear(); + tracing::debug!("Receptor cache cleared"); + Ok(()) + } + + pub fn len(&self) -> Result { + Ok(self.lock_cache()?.len()) + } + + pub fn is_empty(&self) -> Result { + Ok(self.lock_cache()?.is_empty()) + } + + // probably remove, Check if a receptor exists for the given space + // pub fn has_receptor_for_space(&self, space_id: &String) -> bool { + // let key = ReceptorKey::from_space_holon(space_id); + // self.lock_cache()?.contains_key(&key) + // } +} + +// Custom Debug implementation since Mutex doesn't derive Debug easily +impl std::fmt::Debug for ReceptorCache { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + let cache_size = match self.cache.lock() { + Ok(cache) => cache.len(), + Err(_) => 0, + }; + f.debug_struct("ReceptorCache") + .field("cache_size", &cache_size) + .finish() + } +} + +impl Default for ReceptorCache { + fn default() -> Self { + Self::new() + } +} diff --git a/host/crates/holons_client/src/receptor_factory.rs b/host/crates/holons_client/src/receptor_factory.rs new file mode 100644 index 00000000..afa1f353 --- /dev/null +++ b/host/crates/holons_client/src/receptor_factory.rs @@ -0,0 +1,143 @@ +use crate::{LocalRecoveryReceptor, Receptor}; +use super::{ + receptor_cache::{ReceptorCache, ReceptorKey} +}; +use core_types::HolonError; +use deprecated_holochain_receptor::{HolochainReceptor}; +use client_shared_types::{base_receptor::{BaseReceptor, ReceptorType}, holon_space::SpaceInfo}; +use std::sync::Arc; +use std::sync::atomic::{AtomicBool, Ordering}; + +#[derive(Clone)] +pub struct ReceptorFactory { + cache: ReceptorCache, + is_loaded: Arc, +} + + +impl ReceptorFactory { + pub fn new() -> Self { + Self { + cache: ReceptorCache::new(), + is_loaded: Arc::new(AtomicBool::new(false)), + } + } + + /// Check if receptors have been loaded + pub fn are_receptors_loaded(&self) -> bool { + self.is_loaded.load(Ordering::SeqCst) + } + + /// Create receptor from base configuration + async fn create_receptor_from_base(&self, base: BaseReceptor) -> Result, Box> { + match base.receptor_type { + ReceptorType::Local => { + Err(Box::new(HolonError::NotImplemented( + "LocalReceptor creation is currently disabled".into(), + ))) + } + ReceptorType::LocalRecovery => { + tracing::info!("Creating LocalRecoveryReceptor from base configuration"); + Ok(Arc::new(Receptor::LocalRecovery( + LocalRecoveryReceptor::new(base)?, + ))) + } + ReceptorType::Holochain => { + tracing::info!("Creating HolochainReceptor from base configuration"); + Ok(Arc::new(Receptor::Holochain(HolochainReceptor::new(base)))) + } + } + } + + pub fn get_receptors_by_type(&self, receptor_type: &ReceptorType) -> Result>, HolonError> { + let receptors = self.cache.get_by_type(*receptor_type)?; + if receptors.is_empty() { + return Err(HolonError::HolonNotFound(format!( + "No receptors found for type: {:?}", + receptor_type + ))); + } + Ok(receptors) + } + + pub fn get_default_receptor_by_type(&self, receptor_type: &ReceptorType) -> Result, HolonError> { + self + .get_receptors_by_type(receptor_type)? + .first() + .cloned() + .ok_or_else(|| HolonError::HolonNotFound(format!("No default receptor found for type: {:?}", receptor_type))) + } + + pub fn get_receptor_by_id(&self, receptor_id: &String) -> Result, HolonError> { + let receptors = self.cache.get_by_id(receptor_id)?; + if receptors.is_empty() { + return Err(HolonError::HolonNotFound(format!( + "No receptors found for id: {:?}", + receptor_id + ))); + } + receptors + .first() + .cloned() + .ok_or_else(|| HolonError::HolonNotFound(format!("No receptors found for id: {:?}", receptor_id))) + } + + //function returns all spaces in the root space + pub fn get_root_spaces() -> Result { + Err(HolonError::NotImplemented( + "get_root_spaces to return all spaces in the root space".into(), + )) + } + + /// Clear cache (internal use only) + pub(crate) fn _clear_cache(&self) -> Result<(), HolonError> { + self.cache.clear() + } + + /// Load receptors directly from a list of ReceptorConfig + pub async fn load_from_configs( + &self, + configs: Vec, + ) -> Result { + // Clear existing cache + self.cache.clear()?; + self.is_loaded.store(false, Ordering::SeqCst); + let mut count = 0; + for cfg in configs { + // Precompute key and cache the config + let key = ReceptorKey::new(cfg.receptor_type, cfg.receptor_id.clone()); + // Cache the config for conductor lookup later + match self.create_receptor_from_base(cfg).await { + Ok(receptor) => { + self.cache.insert(key, receptor)?; + count += 1; + } + Err(e) => { + tracing::error!("Failed to create receptor from config: {}", e); + } + } + } + self.is_loaded.store(true, Ordering::SeqCst); + Ok(count) + } + + + pub async fn all_spaces_by_type(&self, rec_type: &ReceptorType) -> Result { + for receptor in self.cache.get_by_type(*rec_type)? { + return receptor.get_space_info().await; + } + Err(HolonError::NotImplemented("No conductor found for space".into())) + } + +} + + +// Add Debug implementation +impl std::fmt::Debug for ReceptorFactory { + fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { + f.debug_struct("ReceptorFactory") + .field("cache", &self.cache) + .field("is_loaded", &self.is_loaded.load(Ordering::SeqCst)) + .finish() + } +} diff --git a/host/crates/holons_client/src/shared_types/base_receptor.rs b/host/crates/holons_client/src/shared_types/base_receptor.rs deleted file mode 100644 index 6f12bdd1..00000000 --- a/host/crates/holons_client/src/shared_types/base_receptor.rs +++ /dev/null @@ -1,45 +0,0 @@ -use async_trait::async_trait; -use core_types::{HolonError}; -use std::{any::Any, fmt::Debug, sync::Arc}; -use crate::shared_types::{holon_space::SpaceInfo, map_request::MapRequest, map_response::MapResponse}; -use holons_core::core_shared_objects::transactions::TransactionContext; -use std::collections::HashMap; -use serde::{Deserialize, Serialize}; - -#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] -#[serde(rename_all = "snake_case")] -pub enum ReceptorType { - Local, - LocalRecovery, - Holochain, -} - -//temporary hack for PR 418 -impl ReceptorType { - pub fn as_str(&self) -> &'static str { - match self { - ReceptorType::Local => "local", - ReceptorType::LocalRecovery => "local_recovery", - ReceptorType::Holochain => "holochain", - } - } -} - -//deprecated - removed in next PR -#[allow(deprecated)] -#[deprecated(note = "will be removed in favor of enum Receptor and ReceptorType")] -#[async_trait] -pub trait ReceptorBehavior: Debug + Send + Sync { - fn transaction_context(&self) -> Arc; - async fn handle_map_request(&self, request: MapRequest) -> Result; - async fn get_space_info(&self) -> Result; -} - -#[derive(Serialize, Deserialize, Clone, Debug)] -pub struct BaseReceptor { - pub receptor_id: String, - pub receptor_type: ReceptorType, - #[serde(skip, default)] - pub client_handler: Option>, - pub properties: HashMap, -} diff --git a/host/crates/holons_client/src/shared_types/mod.rs b/host/crates/holons_client/src/shared_types/mod.rs deleted file mode 100644 index 52dbcb54..00000000 --- a/host/crates/holons_client/src/shared_types/mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub mod map_request; -pub mod map_response; -pub mod holon_space; -pub mod base_receptor; \ No newline at end of file diff --git a/host/crates/holons_receptor/src/cache.rs b/host/crates/holons_receptor/src/cache.rs deleted file mode 100644 index 0991e910..00000000 --- a/host/crates/holons_receptor/src/cache.rs +++ /dev/null @@ -1,89 +0,0 @@ -use holons_client::shared_types::base_receptor::ReceptorBehavior; -use std::collections::HashMap; -use std::sync::{Arc, Mutex}; - -#[derive(Debug, Clone, PartialEq, Eq, Hash)] -pub struct ReceptorKey { - pub receptor_type: String, - pub receptor_id: String, -} - -impl ReceptorKey { - pub fn new(receptor_type: String, receptor_id: String) -> Self { - Self { receptor_type, receptor_id } - } -} - -// Updated to be thread-safe -#[derive(Clone)] -pub struct ReceptorCache { - cache: Arc>>>, -} - -impl ReceptorCache { - pub fn new() -> Self { - Self { cache: Arc::new(Mutex::new(HashMap::new())) } - } - - pub fn get(&self, key: &ReceptorKey) -> Option> { - self.cache.lock().unwrap().get(key).cloned() - } - - pub fn get_by_type(&self, receptor_type: &str) -> Vec> { - let cache = self.cache.lock().unwrap(); - cache - .iter() - .filter_map(|(key, receptor)| { - if key.receptor_type == receptor_type { - Some(receptor.clone()) - } else { - None - } - }) - .collect() - } - - pub fn insert(&self, key: ReceptorKey, receptor: Arc) { - let mut cache = self.cache.lock().unwrap(); - cache.insert(key, receptor); - tracing::debug!("Cached receptor. Total cached: {}", cache.len()); - } - - pub fn remove(&self, key: &ReceptorKey) -> Option> { - self.cache.lock().unwrap().remove(key) - } - - pub fn clear(&self) { - self.cache.lock().unwrap().clear(); - tracing::debug!("Receptor cache cleared"); - } - - pub fn len(&self) -> usize { - self.cache.lock().unwrap().len() - } - - pub fn is_empty(&self) -> bool { - self.cache.lock().unwrap().is_empty() - } - - // probably remove, Check if a receptor exists for the given space - // pub fn has_receptor_for_space(&self, space_id: &String) -> bool { - // let key = ReceptorKey::from_space_holon(space_id); - // self.cache.lock().unwrap().contains_key(&key) - // } -} - -// Custom Debug implementation since Mutex doesn't derive Debug easily -impl std::fmt::Debug for ReceptorCache { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("ReceptorCache") - .field("cache_size", &self.cache.lock().unwrap().len()) - .finish() - } -} - -impl Default for ReceptorCache { - fn default() -> Self { - Self::new() - } -} diff --git a/host/crates/holons_receptor/src/factory.rs b/host/crates/holons_receptor/src/factory.rs deleted file mode 100644 index 1f0928c4..00000000 --- a/host/crates/holons_receptor/src/factory.rs +++ /dev/null @@ -1,135 +0,0 @@ -use super::{ - local_receptor::LocalReceptor, - cache::{ReceptorCache, ReceptorKey} -}; -use core_types::HolonError; -use holochain_receptor::{HolochainReceptor}; -use holons_client::shared_types::{base_receptor::{BaseReceptor, ReceptorBehavior}, holon_space::SpaceInfo}; -use std::sync::Arc; -use std::sync::atomic::{AtomicBool, Ordering}; -use std::collections::HashMap; -use sha2::{Digest, Sha256}; -use hex; - -#[derive(Clone)] -pub struct ReceptorFactory { - cache: ReceptorCache, - is_loaded: Arc, -} - -impl ReceptorFactory { - pub fn new() -> Self { - Self { - cache: ReceptorCache::new(), - is_loaded: Arc::new(AtomicBool::new(false)), - } - } - - /// Check if receptors have been loaded - pub fn are_receptors_loaded(&self) -> bool { - self.is_loaded.load(Ordering::SeqCst) - } - - /// Create receptor from base configuration - async fn create_receptor_from_base(&self, base: BaseReceptor) -> Result, Box> { - match base.receptor_type.as_str() { - "local" => { //local should always be created first - tracing::info!("Creating LocalReceptor from base configuration"); - let receptor = LocalReceptor::new(base)?; - Ok(Arc::new(receptor) as Arc) - } - "holochain" => { - tracing::info!("Creating HolochainReceptor from base configuration"); - let receptor = HolochainReceptor::new(base); - Ok(Arc::new(receptor) as Arc) - } - _ => Err(format!("Unsupported receptor type: {}", base.receptor_type.as_str()).into()) - } - } - - pub fn get_receptor_by_type(&self, receptor_type: &str) -> Arc { - let receptors = self.cache.get_by_type(receptor_type) - .into_iter().collect::>(); - if receptors.is_empty() { - panic!("No receptors found for type: {}", receptor_type); - } - receptors[0].clone() - } - - //function returns all spaces in the root space - pub fn get_root_spaces() -> Result { - todo!("Implement get_root_spaces to return all spaces in the root space") - } - - /// Clear cache (internal use only) - pub(crate) fn _clear_cache(&self) { - self.cache.clear(); - } - - /// Load receptors directly from a list of ReceptorConfig - pub async fn load_from_configs( - &self, - configs: Vec, - ) -> Result> { - // Clear existing cache - self.cache.clear(); - self.is_loaded.store(false, Ordering::SeqCst); - let mut count = 0; - for cfg in configs { - // Precompute key and cache the config - let id = generate_receptor_id(cfg.properties.clone())?; - let key = ReceptorKey::new(cfg.receptor_type.as_str().to_string(), id); - // Cache the config for conductor lookup later - match self.create_receptor_from_base(cfg).await { - Ok(receptor) => { - self.cache.insert(key, receptor); - count += 1; - } - Err(e) => { - tracing::error!("Failed to create receptor from config: {}", e); - } - } - } - self.is_loaded.store(true, Ordering::SeqCst); - Ok(count) - } - - - pub async fn all_spaces_by_type(&self, rec_type: &str) -> Result { - for receptor in self.cache.get_by_type(rec_type) { - match rec_type { - "holochain" => return receptor.get_space_info().await, - _ => {} - } - } - Err(HolonError::NotImplemented("No conductor found for space".into())) - } - - // These methods only called for Holochain receptors - /* fn extract_cell_id_from_space(&self, space_id: &String) -> Result> { - // Implementation remains the same - todo!("Parse CellId from space holon property_map") - } - - fn extract_zome_name_from_space(&self, space_id: &String) -> Result> { - // Implementation remains the same - Ok("holons".to_string()) - } - */ -} - -//helpers -fn generate_receptor_id(props: HashMap) -> Result> { - let json = serde_json::to_string(&props)?; - Ok(hex::encode(Sha256::digest(json.as_bytes()))) -} - -// Add Debug implementation -impl std::fmt::Debug for ReceptorFactory { - fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result { - f.debug_struct("ReceptorFactory") - .field("cache", &self.cache) - .field("is_loaded", &self.is_loaded.load(Ordering::SeqCst)) - .finish() - } -} diff --git a/host/crates/holons_receptor/src/lib.rs b/host/crates/holons_receptor/src/lib.rs deleted file mode 100644 index 0b82ba1f..00000000 --- a/host/crates/holons_receptor/src/lib.rs +++ /dev/null @@ -1,8 +0,0 @@ -pub mod receptors; -pub use receptors::*; - -pub mod cache; -pub mod factory; - -pub use factory::ReceptorFactory; -// Don't export cache types - keep them internal diff --git a/host/crates/holons_receptor/src/receptors/local_receptor/mod.rs b/host/crates/holons_receptor/src/receptors/local_receptor/mod.rs deleted file mode 100644 index 1d8d818e..00000000 --- a/host/crates/holons_receptor/src/receptors/local_receptor/mod.rs +++ /dev/null @@ -1,5 +0,0 @@ -pub mod local_client; -pub mod local_receptor; -// Re-exports for easy access -pub use local_client::*; -pub use local_receptor::*; diff --git a/host/crates/holons_receptor/src/receptors/mod.rs b/host/crates/holons_receptor/src/receptors/mod.rs deleted file mode 100644 index 0e7de0bb..00000000 --- a/host/crates/holons_receptor/src/receptors/mod.rs +++ /dev/null @@ -1,4 +0,0 @@ -pub mod local_receptor; -// Re-exports for easy access - -pub use local_receptor::*; diff --git a/host/crates/holons_receptor/Cargo.toml b/host/crates/local_receptors/Cargo.toml similarity index 58% rename from host/crates/holons_receptor/Cargo.toml rename to host/crates/local_receptors/Cargo.toml index 328e07db..41f8a0d0 100644 --- a/host/crates/holons_receptor/Cargo.toml +++ b/host/crates/local_receptors/Cargo.toml @@ -1,5 +1,5 @@ [package] -name = "holons_receptor" +name = "local_receptors" version = "0.1.0" edition = "2021" #edition = "2024" @@ -11,11 +11,13 @@ async-trait = "0.1" tracing = "0.1" sha2 = "0.10" hex = "0.4" +tokio = { version = "1", features = ["rt", "rt-multi-thread"] } #map dependencies -holons_client = { path = "../holons_client" } +#holons_client = { path = "../holons_client" } holons_core = { path = "../../../shared_crates/holons_core" } -holochain_receptor = { path = "../holochain_receptor" } +holons_recovery = { path = "../holons_recovery" } +client_shared_types = { path = "../shared_types" } core_types = { path = "../../../shared_crates/type_system/core_types" } diff --git a/host/crates/local_receptors/src/lib.rs b/host/crates/local_receptors/src/lib.rs new file mode 100644 index 00000000..eb93bb15 --- /dev/null +++ b/host/crates/local_receptors/src/lib.rs @@ -0,0 +1,5 @@ +//unimplemented +//pub mod local_client; +//pub mod local_receptor; + + diff --git a/host/crates/holons_receptor/src/receptors/local_receptor/local_client.rs b/host/crates/local_receptors/src/local_client.rs similarity index 100% rename from host/crates/holons_receptor/src/receptors/local_receptor/local_client.rs rename to host/crates/local_receptors/src/local_client.rs diff --git a/host/crates/holons_receptor/src/receptors/local_receptor/local_receptor.rs b/host/crates/local_receptors/src/local_receptor.rs similarity index 89% rename from host/crates/holons_receptor/src/receptors/local_receptor/local_receptor.rs rename to host/crates/local_receptors/src/local_receptor.rs index 11b9c3b7..3df63dcf 100644 --- a/host/crates/holons_receptor/src/receptors/local_receptor/local_receptor.rs +++ b/host/crates/local_receptors/src/local_receptor.rs @@ -1,6 +1,8 @@ +//NOT IMPLEMENTED - IGNORE THIS FILE + use core_types::{HolonError}; use holons_client::shared_types::holon_space::{HolonSpace, SpaceInfo}; -use holons_client::shared_types::base_receptor::{BaseReceptor, ReceptorBehavior, ReceptorType}; +use holons_client::shared_types::base_receptor::{BaseReceptor, ReceptorType}; use holons_client::{ClientHolonService, init_client_context}; use holons_client::shared_types::map_request::MapRequest; use holons_client::shared_types::map_response::MapResponse; @@ -10,7 +12,6 @@ use holons_core::dances::{ResponseBody, ResponseStatusCode}; use std::collections::HashMap; use std::fmt; use std::sync::Arc; -use async_trait::async_trait; use crate::{LocalClient}; pub const ROOT_SPACE_HOLON_PATH: &str = "root_holon_space"; @@ -44,7 +45,7 @@ impl LocalReceptor { Ok(Self { receptor_id: base_receptor.receptor_id.clone(), - receptor_type: base_receptor.receptor_type.clone(), + receptor_type: base_receptor.receptor_type, properties: base_receptor.properties.clone(), context, client_handler, @@ -54,13 +55,12 @@ impl LocalReceptor { } } -#[async_trait] -impl ReceptorBehavior for LocalReceptor { - fn transaction_context(&self) -> Arc { +impl LocalReceptor { + pub fn transaction_context(&self) -> Arc { Arc::clone(&self.context) } - async fn handle_map_request(&self, request: MapRequest) -> Result { + pub async fn handle_map_request(&self, request: MapRequest) -> Result { tracing::warn!("LocalReceptor: handling request: {:?}", self.context); //TODO: implement actual handling logic here with the HolonServiceApi @@ -81,7 +81,7 @@ impl ReceptorBehavior for LocalReceptor { } //async fn add_space(&self, holon_for_space: Holon) -> Result<(), HolonError> { - async fn get_space_info(&self) -> Result { + pub async fn get_space_info(&self) -> Result { self.client_handler.get_all_spaces().await } } diff --git a/host/crates/recovery_receptor/Cargo.toml b/host/crates/recovery_receptor/Cargo.toml index 16d3c8bd..45cc73b7 100644 --- a/host/crates/recovery_receptor/Cargo.toml +++ b/host/crates/recovery_receptor/Cargo.toml @@ -19,6 +19,6 @@ tokio = { version = "1", features = ["rt", "rt-multi-thread"] } # Map shared crates (types only — no WASM-only code in these) holons_core = { path = "../../../shared_crates/holons_core" } -holons_client = { path = "../holons_client" } core_types = { path = "../../../shared_crates/type_system/core_types" } +client_shared_types = { path = "../shared_types" } holons_boundary = { path = "../../../shared_crates/holons_boundary" } \ No newline at end of file diff --git a/host/crates/recovery_receptor/src/local_recovery_receptor.rs b/host/crates/recovery_receptor/src/local_recovery_receptor.rs index b3a6bda5..acfef864 100644 --- a/host/crates/recovery_receptor/src/local_recovery_receptor.rs +++ b/host/crates/recovery_receptor/src/local_recovery_receptor.rs @@ -1,6 +1,6 @@ use core_types::{HolonError}; //use client_shared_types::base_receptor::{BaseReceptor, ReceptorType}; -use holons_client::shared_types::base_receptor::{BaseReceptor, ReceptorType}; +use client_shared_types::base_receptor::{BaseReceptor, ReceptorType}; use holons_core::core_shared_objects::transactions::TransactionContext; use super::storage::transaction_snapshot::TransactionSnapshot; use super::storage::{RecoveryStore, TransactionRecoveryStore}; diff --git a/host/crates/shared_types/Cargo.toml b/host/crates/shared_types/Cargo.toml new file mode 100644 index 00000000..58f763eb --- /dev/null +++ b/host/crates/shared_types/Cargo.toml @@ -0,0 +1,17 @@ +[package] +name = "client_shared_types" +version = "0.1.0" +edition = "2021" + +[lib] +crate-type = ["rlib"] +name = "client_shared_types" + +[dependencies] +serde = { version = "1", features = ["derive"] } +serde_bytes = "*" + +# MAP Dependencies +holons_core = { path = "../../../shared_crates/holons_core" } +core_types = { path = "../../../shared_crates/type_system/core_types" } +holons_boundary = { path = "../../../shared_crates/holons_boundary" } diff --git a/host/crates/shared_types/src/base_receptor.rs b/host/crates/shared_types/src/base_receptor.rs new file mode 100644 index 00000000..57c5acf2 --- /dev/null +++ b/host/crates/shared_types/src/base_receptor.rs @@ -0,0 +1,20 @@ +use std::{any::Any, fmt::Debug, sync::Arc}; +use std::collections::HashMap; +use serde::{Deserialize, Serialize}; + +#[derive(Clone, Copy, Debug, PartialEq, Eq, Hash, Serialize, Deserialize)] +#[serde(rename_all = "snake_case")] +pub enum ReceptorType { + Local, + LocalRecovery, + Holochain, +} + +#[derive(Serialize, Deserialize, Clone, Debug)] +pub struct BaseReceptor { + pub receptor_id: String, + pub receptor_type: ReceptorType, + #[serde(skip, default)] + pub client_handler: Option>, + pub properties: HashMap, +} diff --git a/host/crates/holons_client/src/shared_types/holon_space.rs b/host/crates/shared_types/src/holon_space.rs similarity index 100% rename from host/crates/holons_client/src/shared_types/holon_space.rs rename to host/crates/shared_types/src/holon_space.rs diff --git a/host/crates/shared_types/src/lib.rs b/host/crates/shared_types/src/lib.rs new file mode 100644 index 00000000..32a89710 --- /dev/null +++ b/host/crates/shared_types/src/lib.rs @@ -0,0 +1,9 @@ +pub mod map_request; +pub mod map_response; +pub mod holon_space; +pub mod base_receptor; + +pub use map_request::*; +pub use map_response::*; +pub use holon_space::*; +pub use base_receptor::*; \ No newline at end of file diff --git a/host/crates/holons_client/src/shared_types/map_request.rs b/host/crates/shared_types/src/map_request.rs similarity index 99% rename from host/crates/holons_client/src/shared_types/map_request.rs rename to host/crates/shared_types/src/map_request.rs index 98a9c659..ca490554 100644 --- a/host/crates/holons_client/src/shared_types/map_request.rs +++ b/host/crates/shared_types/src/map_request.rs @@ -1,4 +1,4 @@ -use crate::shared_types::holon_space::HolonSpace; +use crate::holon_space::HolonSpace; use core_types::{ContentSet, HolonError, HolonId, PropertyMap, RelationshipName}; use holons_boundary::{ DanceTypeWire, HolonReferenceWire, HolonWire, StagedReferenceWire, TransientReferenceWire, diff --git a/host/crates/holons_client/src/shared_types/map_response.rs b/host/crates/shared_types/src/map_response.rs similarity index 100% rename from host/crates/holons_client/src/shared_types/map_response.rs rename to host/crates/shared_types/src/map_response.rs diff --git a/shared_crates/holons_core/src/core_shared_objects/transactions/tx_id.rs b/shared_crates/holons_core/src/core_shared_objects/transactions/tx_id.rs index 255eb992..d3823ba0 100644 --- a/shared_crates/holons_core/src/core_shared_objects/transactions/tx_id.rs +++ b/shared_crates/holons_core/src/core_shared_objects/transactions/tx_id.rs @@ -12,6 +12,9 @@ impl TxId { pub fn value(&self) -> u64 { self.0 } + pub fn from_str(s: &str) -> Option { + s.parse::().ok().map(Self) + } } #[derive(Debug)] @@ -46,4 +49,5 @@ impl TransactionIdGenerator { } } } + }