From 3ead1a905afd43115a82165c29128d597018ade4 Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 14:27:23 +0530 Subject: [PATCH 01/12] chore(vendor): pin released vendors to canonical main commits Move the gitlinks of the vendors in today's release set from PR heads to the canonical tinyhumansai main commit that contains them: the PR's merge commit, or the release tag commit when one exists. tinywallet is unchanged until v0.28.0 is released. --- vendor/tinybox | 2 +- vendor/tinybus | 2 +- vendor/tinychannels | 2 +- vendor/tinycomputer | 2 +- vendor/tinyeventqueues | 2 +- vendor/tinyflows | 2 +- vendor/tinysearch | 2 +- vendor/tinysecurity | 2 +- vendor/tinyskills | 2 +- 9 files changed, 9 insertions(+), 9 deletions(-) diff --git a/vendor/tinybox b/vendor/tinybox index 997b777683..d4fd2c3bfe 160000 --- a/vendor/tinybox +++ b/vendor/tinybox @@ -1 +1 @@ -Subproject commit 997b777683ce2cb58ed4f829eb4f856e056a3215 +Subproject commit d4fd2c3bfecd177404c940b9add90eb7f77a99bd diff --git a/vendor/tinybus b/vendor/tinybus index 0689566109..106eda127f 160000 --- a/vendor/tinybus +++ b/vendor/tinybus @@ -1 +1 @@ -Subproject commit 0689566109edfc28c416ba927b2af4b88f1fb4cf +Subproject commit 106eda127f8a40c0ba401efc0074667e43d4c52e diff --git a/vendor/tinychannels b/vendor/tinychannels index 8aca8d371d..6cbdcdba7b 160000 --- a/vendor/tinychannels +++ b/vendor/tinychannels @@ -1 +1 @@ -Subproject commit 8aca8d371d31962448d1eecefcd80472720a79a9 +Subproject commit 6cbdcdba7b57452cdf6ce9bb4e9b6cc5a95b8740 diff --git a/vendor/tinycomputer b/vendor/tinycomputer index ecf97c8385..95c6610e16 160000 --- a/vendor/tinycomputer +++ b/vendor/tinycomputer @@ -1 +1 @@ -Subproject commit ecf97c83850774e403d359967f3b2427bf0b0f84 +Subproject commit 95c6610e16b451ff2e57b8b26706f12761ac6c8f diff --git a/vendor/tinyeventqueues b/vendor/tinyeventqueues index b856d57861..d4519923ee 160000 --- a/vendor/tinyeventqueues +++ b/vendor/tinyeventqueues @@ -1 +1 @@ -Subproject commit b856d578614b92f7dbec950c90e506c62b25a4ae +Subproject commit d4519923ee4d9faed63f526176c610254963f9c9 diff --git a/vendor/tinyflows b/vendor/tinyflows index 1b9b9b0f9e..83928f0a74 160000 --- a/vendor/tinyflows +++ b/vendor/tinyflows @@ -1 +1 @@ -Subproject commit 1b9b9b0f9ed76562e7fe919de7381236353c01be +Subproject commit 83928f0a7481ca78429c2158d06b5ff2bc015d93 diff --git a/vendor/tinysearch b/vendor/tinysearch index 2621aa6ec7..96d6922627 160000 --- a/vendor/tinysearch +++ b/vendor/tinysearch @@ -1 +1 @@ -Subproject commit 2621aa6ec76ebe592a34a868b2ef06954617a7ba +Subproject commit 96d692262740f0b5e06052b2dc17cdbdb8d3b815 diff --git a/vendor/tinysecurity b/vendor/tinysecurity index 7caf2423e2..d36f2b30a6 160000 --- a/vendor/tinysecurity +++ b/vendor/tinysecurity @@ -1 +1 @@ -Subproject commit 7caf2423e288b8d43392d942f987033a1f92210f +Subproject commit d36f2b30a62d824c36121365772e691be8bccf3d diff --git a/vendor/tinyskills b/vendor/tinyskills index efcdd6d897..ff099338fe 160000 --- a/vendor/tinyskills +++ b/vendor/tinyskills @@ -1 +1 @@ -Subproject commit efcdd6d8979e47aef78d296e4b63bfad542fb598 +Subproject commit ff099338fe89cc391477b00bdc208ce030ba4c3a From c2d9ef7200530ee8e87cca409e2e509d9a57f99f Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 14:50:27 +0530 Subject: [PATCH 02/12] chore(deps): update lockfiles for the vendor re-pin Resolution-only changes from the moved vendor submodules, without cargo update: tinycomputer 0.16 brings agent-desktop 0.10.1, the uiautomation crates on Windows, tinyinference-decisions 0.5 and base64 in tinycomputer-bus, and drops its older tinyinference/tinytools copies; tinybox 0.2.4 adds tinybox-openshell. --- Cargo.lock | 219 ++++++++++++++------------------ crates/openhuman-app/Cargo.lock | 1 + 2 files changed, 98 insertions(+), 122 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index b6bd42b0b4..8d59338582 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -121,13 +121,14 @@ dependencies = [ "url", "urlencoding", "uuid", + "webpki-roots 1.0.10", "windows-sys 0.52.0", - "zip 8.6.0", + "zip 9.0.5", ] [[package]] name = "agent-desktop-core" -version = "0.9.4" +version = "0.10.1" dependencies = [ "base64 0.23.1", "libc", @@ -141,7 +142,7 @@ dependencies = [ [[package]] name = "agent-desktop-linux" -version = "0.9.4" +version = "0.10.1" dependencies = [ "agent-desktop-core", "thiserror 2.0.21", @@ -149,7 +150,7 @@ dependencies = [ [[package]] name = "agent-desktop-macos" -version = "0.9.4" +version = "0.10.1" dependencies = [ "accessibility-sys", "agent-desktop-core", @@ -168,10 +169,15 @@ dependencies = [ [[package]] name = "agent-desktop-windows" -version = "0.9.4" +version = "0.10.1" dependencies = [ "agent-desktop-core", + "serde_json", "thiserror 2.0.21", + "tracing", + "uiautomation", + "windows 0.62.2", + "windows-sys 0.61.2", ] [[package]] @@ -5799,9 +5805,9 @@ dependencies = [ "tinyflows-drivers", "tinyflows-module", "tinyhosts-bus", - "tinyinference-core 0.5.0", + "tinyinference-core", "tinyinference-embeddings", - "tinyinference-llm 0.5.0", + "tinyinference-llm", "tinyinference-local", "tinyinference-providers", "tinyinference-voice", @@ -5825,8 +5831,8 @@ dependencies = [ "tinystoragedrivers-secrets", "tinystoragedrivers-testkit", "tinystoragedrivers-types", - "tinytools 0.6.0", - "tinytools-agent 0.6.0", + "tinytools", + "tinytools-agent", "tinyvoice-bus 0.2.0", "tinywallet", "tinywallet-bus", @@ -5892,8 +5898,8 @@ dependencies = [ "tinycomputer-bus", "tinydocs-bus", "tinyeventqueues-bus", - "tinyinference-core 0.5.0", - "tinyinference-llm 0.5.0", + "tinyinference-core", + "tinyinference-llm", "tinyinference-local", "tinyinference-voice", "tinymcp-bus", @@ -5903,8 +5909,8 @@ dependencies = [ "tinystoragedrivers", "tinystoragedrivers-api", "tinystoragedrivers-testkit", - "tinytools 0.6.0", - "tinytools-agent 0.6.0", + "tinytools", + "tinytools-agent", "tokio", "tokio-stream", "tokio-tungstenite 0.29.0", @@ -5948,13 +5954,13 @@ dependencies = [ "tinyflows-bus", "tinyflows-module", "tinyinference-embeddings", - "tinyinference-llm 0.5.0", + "tinyinference-llm", "tinymcp", "tinymcp-bus", "tinymemory-api", "tinymemory-tools", "tinystoragedrivers-testkit", - "tinytools 0.6.0", + "tinytools", "tokio", "tokio-stream", "tracing-subscriber", @@ -6014,7 +6020,7 @@ dependencies = [ "tempfile", "tinyagents-harness", "tinyagents-session", - "tinyinference-core 0.5.0", + "tinyinference-core", "tinystoragedrivers", "tokio", "tokio-stream", @@ -6058,17 +6064,17 @@ dependencies = [ "tinybus 0.3.12", "tinychannels-bus", "tinyhumans-sdk", - "tinyinference-core 0.5.0", + "tinyinference-core", "tinyinference-embeddings", "tinyinference-image", - "tinyinference-llm 0.5.0", + "tinyinference-llm", "tinyinference-providers", "tinyinference-video", "tinyinference-voice", "tinyjevclient", "tinymemory-api", "tinymemory-integrations", - "tinytools 0.6.0", + "tinytools", "tinytools-jev", "tokio", "tokio-util", @@ -9157,7 +9163,7 @@ dependencies = [ "thiserror 2.0.21", "tinystoragedrivers-api", "tinystoragedrivers-types", - "tinytools 0.6.0", + "tinytools", "tokio", "tracing", "uuid", @@ -9180,7 +9186,7 @@ dependencies = [ "async-trait", "serde", "serde_json", - "tinytools 0.6.0", + "tinytools", "toml 0.8.23", "tracing", ] @@ -9210,16 +9216,16 @@ dependencies = [ "thiserror 2.0.21", "tinyagents-definition", "tinyagents-storage-kit", - "tinyinference-core 0.5.0", + "tinyinference-core", "tinyinference-embeddings", "tinyinference-image", - "tinyinference-llm 0.5.0", + "tinyinference-llm", "tinyinference-providers", "tinyinference-video", "tinystoragedrivers-api", "tinystoragedrivers-types", - "tinytools 0.6.0", - "tinytools-agent 0.6.0", + "tinytools", + "tinytools-agent", "tokio", "tracing", "uuid", @@ -9252,8 +9258,8 @@ dependencies = [ "tinyagents-harness", "tinyagents-orchestration", "tinyagents-tasks", - "tinyinference-llm 0.5.0", - "tinytools 0.6.0", + "tinyinference-llm", + "tinytools", "tokio", "tracing", "uuid", @@ -9271,9 +9277,9 @@ dependencies = [ "serde_json", "tinyagents-harness", "tinyagents-harness-tools", - "tinyinference-llm 0.5.0", + "tinyinference-llm", "tinyinference-providers", - "tinytools 0.6.0", + "tinytools", "tokio", "tracing", ] @@ -9305,8 +9311,8 @@ dependencies = [ "tinyagents-session", "tinyagents-storage-kit", "tinyagents-tasks", - "tinyinference-llm 0.5.0", - "tinytools 0.6.0", + "tinyinference-llm", + "tinytools", "tokio", "tracing", "uuid", @@ -9322,9 +9328,9 @@ dependencies = [ "serde_json", "tinyagents-definition", "tinyagents-harness", - "tinyinference-llm 0.5.0", + "tinyinference-llm", "tinyinference-providers", - "tinytools 0.6.0", + "tinytools", ] [[package]] @@ -9341,8 +9347,8 @@ dependencies = [ "tinyagents-hooks", "tinyagents-registry", "tinyagents-session", - "tinyinference-llm 0.5.0", - "tinytools 0.6.0", + "tinyinference-llm", + "tinytools", "tokio", "tracing", ] @@ -9366,7 +9372,7 @@ dependencies = [ "tinyagents-tasks", "tinystoragedrivers-api", "tinystoragedrivers-types", - "tinytools-agent 0.6.0", + "tinytools-agent", "tokio", "tracing", "uuid", @@ -9394,7 +9400,7 @@ dependencies = [ "serde_json", "tinyagents-harness", "tinyagents-storage-kit", - "tinyinference-llm 0.5.0", + "tinyinference-llm", "tokio", "tracing", "uuid", @@ -9519,6 +9525,7 @@ dependencies = [ "tinybox-jail", "tinybox-linux", "tinybox-microvm", + "tinybox-openshell", "tinybox-ssh", "tinybus 0.3.12", "tinybus-module 0.3.12", @@ -9529,6 +9536,15 @@ dependencies = [ "uuid", ] +[[package]] +name = "tinybox-openshell" +version = "0.2.4" +dependencies = [ + "async-trait", + "serde_json", + "tinybox-core", +] + [[package]] name = "tinybox-ssh" version = "0.2.4" @@ -9753,6 +9769,7 @@ dependencies = [ "tinycomputer-desktop", "tinycomputer-engine", "tokio", + "url", ] [[package]] @@ -9793,6 +9810,7 @@ dependencies = [ name = "tinycomputer-bus" version = "0.16.0" dependencies = [ + "base64 0.22.1", "serde", "serde_json", "thiserror 2.0.21", @@ -9842,12 +9860,14 @@ dependencies = [ "getrandom 0.4.3", "serde", "serde_json", + "tinycomputer-browser", "tinycomputer-bus", "tinycomputer-core", "tinycomputer-desktop", "tinyinference-decisions", - "tinyinference-llm 0.3.0", + "tinyinference-llm", "tokio", + "url", ] [[package]] @@ -10017,7 +10037,7 @@ dependencies = [ "sha2 0.11.1", "tinyflows", "tinyflows-catalog", - "tinytools 0.6.0", + "tinytools", "tokio", "tracing", ] @@ -10063,7 +10083,7 @@ dependencies = [ "tinyflows-storage", "tinystoragedrivers-api", "tinystoragedrivers-types", - "tinytools 0.6.0", + "tinytools", "tokio", "tracing", "uuid", @@ -10145,15 +10165,6 @@ dependencies = [ "url", ] -[[package]] -name = "tinyinference-core" -version = "0.3.0" -dependencies = [ - "anyhow", - "httpdate", - "url", -] - [[package]] name = "tinyinference-core" version = "0.5.0" @@ -10166,7 +10177,7 @@ dependencies = [ [[package]] name = "tinyinference-decisions" -version = "0.3.0" +version = "0.5.0" dependencies = [ "async-trait", "httpdate", @@ -10189,7 +10200,7 @@ dependencies = [ "serde", "serde_json", "thiserror 2.0.21", - "tinyinference-core 0.5.0", + "tinyinference-core", "tokio", "tracing", "url", @@ -10206,31 +10217,13 @@ dependencies = [ "serde", "serde_json", "thiserror 2.0.21", - "tinyinference-core 0.5.0", + "tinyinference-core", "tinystoragedrivers-api", "tinystoragedrivers-types", "tokio", "tracing", ] -[[package]] -name = "tinyinference-llm" -version = "0.3.0" -dependencies = [ - "async-trait", - "bytes", - "futures", - "reqwest 0.12.28", - "serde", - "serde_json", - "sha2 0.11.1", - "thiserror 2.0.21", - "tinyinference-core 0.3.0", - "tinytools-agent 0.3.0", - "tokio", - "tracing", -] - [[package]] name = "tinyinference-llm" version = "0.5.0" @@ -10245,10 +10238,10 @@ dependencies = [ "serde_json", "sha2 0.11.1", "thiserror 2.0.21", - "tinyinference-core 0.5.0", + "tinyinference-core", "tinyinference-embeddings", "tinyinference-providers", - "tinytools-agent 0.6.0", + "tinytools-agent", "tokio", "tracing", "uuid", @@ -10267,9 +10260,9 @@ dependencies = [ "serde", "serde_json", "thiserror 2.0.21", - "tinyinference-core 0.5.0", + "tinyinference-core", "tinyinference-embeddings", - "tinyinference-llm 0.5.0", + "tinyinference-llm", "tinyinference-providers", "tokio", "tracing", @@ -10317,7 +10310,7 @@ dependencies = [ "serde", "serde_json", "tempfile", - "tinyinference-core 0.5.0", + "tinyinference-core", "tinyinference-local", "tokio", "uuid", @@ -10390,7 +10383,7 @@ dependencies = [ "log", "serde_json", "tinyjuice-bus", - "tinytools 0.6.0", + "tinytools", "tokio", "uuid", ] @@ -10451,7 +10444,7 @@ dependencies = [ "tinystoragedrivers-api", "tinystoragedrivers-busproxy", "tinystoragedrivers-types", - "tinytools 0.6.0", + "tinytools", "tokio", "tracing", "url", @@ -10581,7 +10574,7 @@ dependencies = [ "serde_norway", "sha2 0.11.1", "thiserror 2.0.21", - "tinytools 0.6.0", + "tinytools", "tokio", "url", ] @@ -10814,17 +10807,6 @@ dependencies = [ "zerovec", ] -[[package]] -name = "tinytools" -version = "0.3.0" -source = "git+https://github.com/tinyhumansai/tinytools?rev=a5d04a7f3af0abc1dd748f87f94871b36ae9fe71#a5d04a7f3af0abc1dd748f87f94871b36ae9fe71" -dependencies = [ - "anyhow", - "async-trait", - "serde", - "serde_json", -] - [[package]] name = "tinytools" version = "0.6.0" @@ -10835,17 +10817,6 @@ dependencies = [ "serde_json", ] -[[package]] -name = "tinytools-agent" -version = "0.3.0" -source = "git+https://github.com/tinyhumansai/tinytools?rev=a5d04a7f3af0abc1dd748f87f94871b36ae9fe71#a5d04a7f3af0abc1dd748f87f94871b36ae9fe71" -dependencies = [ - "regex", - "serde", - "serde_json", - "tinytools 0.3.0", -] - [[package]] name = "tinytools-agent" version = "0.6.0" @@ -10853,7 +10824,7 @@ dependencies = [ "regex", "serde", "serde_json", - "tinytools 0.6.0", + "tinytools", ] [[package]] @@ -10861,7 +10832,7 @@ name = "tinytools-jev" version = "0.6.0" dependencies = [ "async-trait", - "tinytools 0.6.0", + "tinytools", ] [[package]] @@ -10932,7 +10903,7 @@ dependencies = [ "tinyagents-live", "tinybus 0.3.12", "tinybus-module 0.3.12", - "tinytools 0.6.0", + "tinytools", "tinyvoice", "tinyvoice-bus 0.2.0", "tinyvoice-hotkey-win", @@ -11159,7 +11130,6 @@ dependencies = [ "tokio", "tokio-rustls 0.26.6", "tungstenite 0.24.0", - "webpki-roots 0.26.11", ] [[package]] @@ -11589,6 +11559,29 @@ version = "0.1.7" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "2896d95c02a80c6d6a5d6e953d479f5ddf2dfdb6a244441010e373ac0fb88971" +[[package]] +name = "uiautomation" +version = "0.25.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa2eacf9390a8491bc949b04230f40c12520c6423a2962a6087eea1ef14373af" +dependencies = [ + "chrono", + "uiautomation_derive", + "windows 0.62.2", + "windows-core 0.62.2", +] + +[[package]] +name = "uiautomation_derive" +version = "0.7.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1c893ec96e05c3c81ba46f838f3190549ec185ef377d582ab3d44202b2dfacbd" +dependencies = [ + "proc-macro2", + "quote", + "syn 3.0.9", +] + [[package]] name = "ulid" version = "1.2.1" @@ -13228,20 +13221,6 @@ dependencies = [ "zopfli", ] -[[package]] -name = "zip" -version = "8.6.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d04a6b5381502aa6087c94c669499eb1602eb9c5e8198e534de571f7154809b" -dependencies = [ - "crc32fast", - "flate2", - "indexmap", - "memchr", - "typed-path", - "zopfli", -] - [[package]] name = "zip" version = "9.0.5" @@ -13336,7 +13315,3 @@ checksum = "27bc9d5b815bc103f142aa054f561d9187d191692ec7c2d1e2b4737f8dbd7296" dependencies = [ "zune-core", ] - -[[patch.unused]] -name = "tinyinference-decisions" -version = "0.5.0" diff --git a/crates/openhuman-app/Cargo.lock b/crates/openhuman-app/Cargo.lock index 8c83d4b52f..c22329dea6 100644 --- a/crates/openhuman-app/Cargo.lock +++ b/crates/openhuman-app/Cargo.lock @@ -7856,6 +7856,7 @@ dependencies = [ name = "tinycomputer-bus" version = "0.16.0" dependencies = [ + "base64 0.22.1", "serde", "serde_json", "thiserror 2.0.21", From 4f2cb10cbdb31458b257e9e53d6d3fc5eef7d705 Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 15:56:54 +0530 Subject: [PATCH 03/12] chore(modules): pin tinybox 0.2.4, tinychannels 0.2.0 and tinyflows 0.9.5 releases Re-pin the three registry records to their published tinyhumansai releases: version, release URL and every per-platform archive digest, read from each release's checksum.toml and checked against the downloaded archives. tinybox moves from the fork release to the canonical v0.2.4. vendor/tinyflows moves to the v0.9.5 tag commit. Update the release-manifest tests and the published TinyFlows library gate to the same releases. --- Cargo.lock | 2 +- crates/openhuman-app/Cargo.lock | 2 +- .../src/modules/registry/records_extra.rs | 108 +++++++++--------- .../src/modules/registry/records_flows.rs | 50 ++++---- .../src/modules/registry_contract_tests.rs | 48 ++++---- .../registry_release_manifest_tests.rs | 70 ++++++------ .../src/modules/registry_tests.rs | 76 ++++++------ .../src/modules/tinybox/operations_tests.rs | 4 +- tests/json_rpc_flows_e2e.rs | 2 +- tests/support/published_tinyflows.rs | 64 +++++------ tests/tinyflows_published_prompt_e2e.rs | 6 +- tests/tinyflows_published_runs_e2e.rs | 4 +- vendor/tinyflows | 2 +- 13 files changed, 219 insertions(+), 219 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 8d59338582..d180022ac7 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9984,7 +9984,7 @@ dependencies = [ [[package]] name = "tinyflows" -version = "0.9.4" +version = "0.9.5" dependencies = [ "async-trait", "base64 0.23.1", diff --git a/crates/openhuman-app/Cargo.lock b/crates/openhuman-app/Cargo.lock index c22329dea6..7700deb4e7 100644 --- a/crates/openhuman-app/Cargo.lock +++ b/crates/openhuman-app/Cargo.lock @@ -7888,7 +7888,7 @@ dependencies = [ [[package]] name = "tinyflows" -version = "0.9.4" +version = "0.9.5" dependencies = [ "async-trait", "base64 0.23.1", diff --git a/crates/openhuman-core/src/modules/registry/records_extra.rs b/crates/openhuman-core/src/modules/registry/records_extra.rs index 7f92a0b40d..da402c5bca 100644 --- a/crates/openhuman-core/src/modules/registry/records_extra.rs +++ b/crates/openhuman-core/src/modules/registry/records_extra.rs @@ -10,108 +10,108 @@ pub(crate) const TINYBOX: ModuleRecord = ModuleRecord { bus_name: tinybox_bus::INTERFACE, object_path: tinybox_bus::OBJECT_PATH, version: "0.2.4", - release_url: "https://github.com/senamakel/tinybox/releases/tag/v0.2.4", + release_url: "https://github.com/tinyhumansai/tinybox/releases/tag/v0.2.4", assets: &[ PlatformAsset { host_key: "archlinux-arm64", archive: "tinybox-0.2.4-archlinux-arm64.tar.gz", - sha256: "526301c2cf392d059fba0faaecb6f78fcc65610f68afada4025e72248934ad05", + sha256: "aaf2c37f5ebe92c8897fe8b6b0300798e7afecbb00f3f438ccd19aa566f3a6ec", library_sha256: None, }, PlatformAsset { host_key: "archlinux-x86_64", archive: "tinybox-0.2.4-archlinux-x86_64.tar.gz", - sha256: "4457db70cf5c073d37bb624f30ff372ed7c430cad4194fb055f568f3af5bd294", + sha256: "07937b998542884ed38502c534c4d857d7e9fb55da0b5ae0a5ec6d9d7a369c29", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-arm64", archive: "tinybox-0.2.4-fedora-43-arm64.tar.gz", - sha256: "ac7ec226b90e55a33ee8c1561ca0ce49bc1506ca45add618d498002c83e47a8d", + sha256: "feec38ccea69e54962387321ac6377d207ca99c0de51781e1646b88ae6b3f899", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-x86_64", archive: "tinybox-0.2.4-fedora-43-x86_64.tar.gz", - sha256: "506b813f2044eb7c6a52b34df0766103e1f7e5de02db27a86bc4003e7d75ba3e", + sha256: "ff9aabc80750b956fb1d7824f650b51bf54b2027838641432027c03b14bef1e9", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-arm64", archive: "tinybox-0.2.4-fedora-44-arm64.tar.gz", - sha256: "eb28e5e1c313d4b7a8450f50461897c57c100e2598d53577314372b547367cf0", + sha256: "ea56348b0b33d71e6fde07bba1b32be2c659a8be94c45feacb92b6d0e9e87d5e", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-x86_64", archive: "tinybox-0.2.4-fedora-44-x86_64.tar.gz", - sha256: "78d181a10a23f48e27bb16478b25834b36b66b22cee857f3eef17d67f823113e", + sha256: "f10fc89683e7cf0c9bc5b9baaf5d3dfce9ec75f4b7c7aed928e4668392c50d5f", library_sha256: None, }, PlatformAsset { host_key: "macos-15-arm64", archive: "tinybox-0.2.4-macos-15-arm64.tar.gz", - sha256: "086f4eb50ac189049e04997e115923a492cf5a17016ed3d6096bae99e5378920", + sha256: "0983c74b6ac9a5458518ebcb557bc2d5d3d91c2ab3ecee01f4a6de0a60dc7271", library_sha256: None, }, PlatformAsset { host_key: "macos-15-x86_64", archive: "tinybox-0.2.4-macos-15-x86_64.tar.gz", - sha256: "f3804d496d77c9717a3d72fb50e0426afbca7dcb44e4efdd859f389853dad60a", + sha256: "c068a76205f1bf435a490b5248a8408ac8aa2537b1e9d446583b8dfe194be34e", library_sha256: None, }, PlatformAsset { host_key: "macos-26-arm64", archive: "tinybox-0.2.4-macos-26-arm64.tar.gz", - sha256: "20196099555eb05c10dd9565147f32567237f187248e2c76fb97ec073df366ea", + sha256: "13aa4c590177eea88f0da67000494eb72fe40c238c477a2755eb6a439e8b66e3", library_sha256: None, }, PlatformAsset { host_key: "macos-26-x86_64", archive: "tinybox-0.2.4-macos-26-x86_64.tar.gz", - sha256: "5117ac41154c447e8da5bfdf8fd4119c58ea0509233c4e21e41d8fda3b329440", + sha256: "99e5159922eb99eaec894e49a7dcd947c0a369e5c51192052febf38c1a15a72a", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-arm64", archive: "tinybox-0.2.4-ubuntu-22.04-arm64.tar.gz", - sha256: "40b0aeb0bcc09d278d09d368e513aeb11285dbd8d3ba5c7050eed5cfc849858e", + sha256: "abcb145cc78d48a1cea4a7e3a94414d7d11e1ff70adef660cab94c11832fbaf3", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-x86_64", archive: "tinybox-0.2.4-ubuntu-22.04-x86_64.tar.gz", - sha256: "48b67a466e9bfe8cfffddb2f90d70bd15161416f6c0592bb8c3fb66a57843da0", + sha256: "39ea65a08bc1aa2be74121ebca9e815be379577dc461380c4c3eb926b1b7d735", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-arm64", archive: "tinybox-0.2.4-ubuntu-24.04-arm64.tar.gz", - sha256: "365b1b40822dd007de4d4e1d8daf0db9442bb9a7f034a70de7e3b45c58b8d45c", + sha256: "0d9fa4e342afd59c2c3c1b6edf24a1d0383430c9ef238cb214b1c849ecc06f0f", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-x86_64", archive: "tinybox-0.2.4-ubuntu-24.04-x86_64.tar.gz", - sha256: "9f58a872d904d9d5d23d92bb431cb39894626adf955ceed41ab8bfd24dc74f26", + sha256: "8424a0a42894f610eb81fcfdbc6eb87f642df953a5d886127d03cdf3e51a52d1", library_sha256: None, }, PlatformAsset { host_key: "windows-11-arm64", archive: "tinybox-0.2.4-windows-11-arm64.zip", - sha256: "033be4c72baf00e77e70741df2fbcc6deb6872a7d5e36b49b880f9c01dbf3d3a", + sha256: "75163660dd3eec73b1bfc0256d5453bb81e10484a9584295c0021c1ffb3c750e", library_sha256: None, }, PlatformAsset { host_key: "windows-2022-x86_64", archive: "tinybox-0.2.4-windows-2022-x86_64.zip", - sha256: "ede48ab03fe43717fc05e7f67a355da51eff876d5bdb233acbba780aca1d6d81", + sha256: "8be3c207bacd75a47706e61af5367e7046b6f9d1d1bc486438f7245915d6a970", library_sha256: None, }, PlatformAsset { host_key: "windows-2025-x86_64", archive: "tinybox-0.2.4-windows-2025-x86_64.zip", - sha256: "235cbf0fd280758ebb6ba49bd57c440b0393439588b73474c7315564407d411a", + sha256: "2dee76ec3fdefe95c59492f8bc95e324aae46c53147461ad1339beb1e9084186", library_sha256: None, }, ], @@ -131,109 +131,109 @@ pub(crate) const TINYCHANNELS: ModuleRecord = ModuleRecord { description: "Channel provider lifecycle and message transport", bus_name: tinychannels_bus::names::BUS_NAME, object_path: tinychannels_bus::names::OBJECT_PATH, - version: "0.1.40", - release_url: "https://github.com/tinyhumansai/tinychannels/releases/tag/v0.1.40", + version: "0.2.0", + release_url: "https://github.com/tinyhumansai/tinychannels/releases/tag/v0.2.0", assets: &[ PlatformAsset { host_key: "archlinux-arm64", - archive: "tinychannels-module-0.1.40-archlinux-arm64.tar.gz", - sha256: "2643b5aefb51a882739640666e456022921304b1ff3cf935005803e1baeae2db", + archive: "tinychannels-module-0.2.0-archlinux-arm64.tar.gz", + sha256: "07d2285c42dbeca2d70e0eb26890df533b7daab2139a8e71c71d9ec88ce819cf", library_sha256: None, }, PlatformAsset { host_key: "archlinux-x86_64", - archive: "tinychannels-module-0.1.40-archlinux-x86_64.tar.gz", - sha256: "b65e7e2e99af174166ce18acce7b3e9948b03f93644ac34958a2dd1d45b9783f", + archive: "tinychannels-module-0.2.0-archlinux-x86_64.tar.gz", + sha256: "8d67e15a9c11f75cc53fab27c838308f5d622895df403f4d8ff5a37b4000411d", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-arm64", - archive: "tinychannels-module-0.1.40-fedora-43-arm64.tar.gz", - sha256: "06470acac32353419b9e2c8eed0b13244de9957bc6d7575932b8bf5989579780", + archive: "tinychannels-module-0.2.0-fedora-43-arm64.tar.gz", + sha256: "82ea9f45978fa82a1ab10846b922f7a31dfd1e0d6d7e13436aec3624dce707d6", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-x86_64", - archive: "tinychannels-module-0.1.40-fedora-43-x86_64.tar.gz", - sha256: "5956996b8fdc829e530a5cf808a8f9561dba7f91aead25df4f091a6c5ead605f", + archive: "tinychannels-module-0.2.0-fedora-43-x86_64.tar.gz", + sha256: "a0ab5045055328e55e39568b77c1fd5dc63ea63a015fb86d0e0fbe905375b855", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-arm64", - archive: "tinychannels-module-0.1.40-fedora-44-arm64.tar.gz", - sha256: "e449125869811077cb020b6dbd9f5dffc25fbf1526b8ee2402f0fac0b2f53bbc", + archive: "tinychannels-module-0.2.0-fedora-44-arm64.tar.gz", + sha256: "0eb80bc0ba0c36694e92a2ea628f73c010b9409952d232eca4261fc9a20cd837", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-x86_64", - archive: "tinychannels-module-0.1.40-fedora-44-x86_64.tar.gz", - sha256: "f5ab13f94fe850ec90a95f1d527ee9c55ab3fdeb427f3c1c2e390c35b300d76e", + archive: "tinychannels-module-0.2.0-fedora-44-x86_64.tar.gz", + sha256: "a0ee9aa9d8f462ccbe60e6122fb32beb519f6e080d7ca7c19c150bff1a0e83a6", library_sha256: None, }, PlatformAsset { host_key: "macos-15-arm64", - archive: "tinychannels-module-0.1.40-macos-15-arm64.tar.gz", - sha256: "98d31e633601c365200c679f288b13f9d7aef2023ebb9853bcbad690ddbbe1a0", + archive: "tinychannels-module-0.2.0-macos-15-arm64.tar.gz", + sha256: "846b9391cdb7e5488c6b62c5c25fbd495e1899e3db92517cb0b0be0e32de8567", library_sha256: None, }, PlatformAsset { host_key: "macos-15-x86_64", - archive: "tinychannels-module-0.1.40-macos-15-x86_64.tar.gz", - sha256: "4ac740b410102b29ba469f37f450b3e03fac3ce31ccb9d3538c1633025a7bd4d", + archive: "tinychannels-module-0.2.0-macos-15-x86_64.tar.gz", + sha256: "88a249b5ea3d5e80eb5bc753ee8d503bf8a2b2293d2c1127ca6a5fd3015dd421", library_sha256: None, }, PlatformAsset { host_key: "macos-26-arm64", - archive: "tinychannels-module-0.1.40-macos-26-arm64.tar.gz", - sha256: "ed2aab10a198193e5bebb5957095acad664a5a66a02d6142563815df6c353b53", + archive: "tinychannels-module-0.2.0-macos-26-arm64.tar.gz", + sha256: "3a666957b9d4cce0ffc23e1ea2a21b6fce90d823276cca018cba04ce957bfd54", library_sha256: None, }, PlatformAsset { host_key: "macos-26-x86_64", - archive: "tinychannels-module-0.1.40-macos-26-x86_64.tar.gz", - sha256: "210a7904dd942629af46d7ad36d0b0312f3a1cf0aa238b667ca6309ebf86c8e2", + archive: "tinychannels-module-0.2.0-macos-26-x86_64.tar.gz", + sha256: "ef0edd5d7990398a4b97ef114e8858d53f7418dbc818c1fad949472a712a2b61", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-arm64", - archive: "tinychannels-module-0.1.40-ubuntu-22.04-arm64.tar.gz", - sha256: "48d360aea7849bb93050dbb56f9c28de6848572632908b635fb77df2a65c3bb1", + archive: "tinychannels-module-0.2.0-ubuntu-22.04-arm64.tar.gz", + sha256: "8d947a1b283bcb538ac59f68e1fdcce07fe47d9bb59d8ea0406316c213c04b13", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-x86_64", - archive: "tinychannels-module-0.1.40-ubuntu-22.04-x86_64.tar.gz", - sha256: "6026081ac8ceb7b91daf0101364c92f99c10c5072a270b91eaeed6acad5d1f90", + archive: "tinychannels-module-0.2.0-ubuntu-22.04-x86_64.tar.gz", + sha256: "92c90089eef81d7e90aeb8f2992dea706bcd91fd2cd9485004edea24eac18c0c", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-arm64", - archive: "tinychannels-module-0.1.40-ubuntu-24.04-arm64.tar.gz", - sha256: "0b4ef6b3c9c2c81f1efdbc5cbe8713478ff4e2f76682625465ee8c7120dfb798", + archive: "tinychannels-module-0.2.0-ubuntu-24.04-arm64.tar.gz", + sha256: "cd7c1522e32d0cb125fe643feea5f3602663c99a8ae96f201fc5077a2496d588", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-x86_64", - archive: "tinychannels-module-0.1.40-ubuntu-24.04-x86_64.tar.gz", - sha256: "bec22856f0b5f36f8c48f893c53d83015961a596d4ad56a33714ca378c2b4c98", + archive: "tinychannels-module-0.2.0-ubuntu-24.04-x86_64.tar.gz", + sha256: "b4556e866c309b1792a73af48bf7297c4a2714bae25c9ef1adc22c403f25dc04", library_sha256: None, }, PlatformAsset { host_key: "windows-11-arm64", - archive: "tinychannels-module-0.1.40-windows-11-arm64.zip", - sha256: "5f463711be6f8c856e13f77ba5d376b1b4e5b9519551411ae7bfd94a196bd633", + archive: "tinychannels-module-0.2.0-windows-11-arm64.zip", + sha256: "3e29456cd6b161a605c9224ebaa51dbdaa3f0a4b944529cfc3a8e471bc0d5725", library_sha256: None, }, PlatformAsset { host_key: "windows-2022-x86_64", - archive: "tinychannels-module-0.1.40-windows-2022-x86_64.zip", - sha256: "5df4ce49573c7d1e03a93b50cf092bf62dc6b92f50bcfe1471aff50a844268ce", + archive: "tinychannels-module-0.2.0-windows-2022-x86_64.zip", + sha256: "456d7c6cd16494aff56adfa2b4b96db47abd284203e11de10fc0e9efb6f76eda", library_sha256: None, }, PlatformAsset { host_key: "windows-2025-x86_64", - archive: "tinychannels-module-0.1.40-windows-2025-x86_64.zip", - sha256: "e8dd10cc102a7889d7d9ba8f50416b2ee3cec810f203555bf40cd0f157765552", + archive: "tinychannels-module-0.2.0-windows-2025-x86_64.zip", + sha256: "427bf8719b9cd2ac874f6cc9f74a5dc49fb08c8758b62cf8a09616448cb25134", library_sha256: None, }, ], diff --git a/crates/openhuman-core/src/modules/registry/records_flows.rs b/crates/openhuman-core/src/modules/registry/records_flows.rs index f61b7c2fd6..49dcc3b3c2 100644 --- a/crates/openhuman-core/src/modules/registry/records_flows.rs +++ b/crates/openhuman-core/src/modules/registry/records_flows.rs @@ -6,74 +6,74 @@ pub(crate) const TINYFLOWS: ModuleRecord = ModuleRecord { description: "Scheduled jobs, workflow Catalog/Runs execution, and authoring through TinyFlows", bus_name: tinyflows_bus::BUS_NAME, object_path: tinyflows_bus::OBJECT_PATH, - version: "0.9.4", - release_url: "https://github.com/tinyhumansai/tinyflows/releases/tag/v0.9.4", - // Verbatim from the published v0.9.4 checksum.toml. + version: "0.9.5", + release_url: "https://github.com/tinyhumansai/tinyflows/releases/tag/v0.9.5", + // Verbatim from the published v0.9.5 checksum.toml. assets: &[ PlatformAsset { host_key: "macos-26-arm64", - archive: "tinyflows-module-0.9.4-macos-26-arm64.tar.gz", - sha256: "6cd6e4cc9c22504c2c14944d936d04316ca3301bc7c193baca8834161589f476", + archive: "tinyflows-module-0.9.5-macos-26-arm64.tar.gz", + sha256: "c6e31c3c8654c28b8d0b6dfe91ca1971a00f19dae14bf9903242e769225ef9d1", library_sha256: None, }, PlatformAsset { host_key: "macos-26-x86_64", - archive: "tinyflows-module-0.9.4-macos-26-x86_64.tar.gz", - sha256: "b22cbcac0c23b407a0d33959e0ed6f7605f04bf2a5703ce883f488d780be4c9a", + archive: "tinyflows-module-0.9.5-macos-26-x86_64.tar.gz", + sha256: "6531b27fddc55f8febee2113086b80ad12227aad4beeb48e0f47143da24271ed", library_sha256: None, }, PlatformAsset { host_key: "macos-15-arm64", - archive: "tinyflows-module-0.9.4-macos-15-arm64.tar.gz", - sha256: "39cabbe3da34773039ce8423a724f684f3d06c50dc08edd575ef5b3811664159", + archive: "tinyflows-module-0.9.5-macos-15-arm64.tar.gz", + sha256: "2b98c6b44ed84a430d071592805f05891b1475653df4dacd96ff3f524a29a99f", library_sha256: None, }, PlatformAsset { host_key: "macos-15-x86_64", - archive: "tinyflows-module-0.9.4-macos-15-x86_64.tar.gz", - sha256: "8a937a24f37afcb0cb3042dfe640caccbbbb3766f45b9c06f1d34d9c235a5346", + archive: "tinyflows-module-0.9.5-macos-15-x86_64.tar.gz", + sha256: "d5fcafcaa1885276921d26a0e65fa0d60991ea7964a7007641de21b555dfb343", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-x86_64", - archive: "tinyflows-module-0.9.4-ubuntu-24.04-x86_64.tar.gz", - sha256: "43a831d16cf0406c6148deda1023f9d3467483b275a65e30b282e8362ebbe01f", + archive: "tinyflows-module-0.9.5-ubuntu-24.04-x86_64.tar.gz", + sha256: "f7c5e7438c64ce76c0249f81a75669b25f430250abfeff1d6831a782a2539a8b", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-arm64", - archive: "tinyflows-module-0.9.4-ubuntu-24.04-arm64.tar.gz", - sha256: "7105663eb05118f5fd7d008bc56ec35e24463e36f5762ee7871018cb3219aca6", + archive: "tinyflows-module-0.9.5-ubuntu-24.04-arm64.tar.gz", + sha256: "55779f03a89cd3c5d76bd5bb26e6d9837b2f5e3153c83f3aa11656222a4f4582", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-x86_64", - archive: "tinyflows-module-0.9.4-ubuntu-22.04-x86_64.tar.gz", - sha256: "da04b73a434b5a11b97bc98518d81f27e96c8115431c2b3bbe75a7e67aae5055", + archive: "tinyflows-module-0.9.5-ubuntu-22.04-x86_64.tar.gz", + sha256: "e6f96edfbab60421e3dc6db5d51fb49fb0da36d049cc359a5db5091b3b9861b6", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-arm64", - archive: "tinyflows-module-0.9.4-ubuntu-22.04-arm64.tar.gz", - sha256: "eba07906b8ae276c8fee8c303e14a40e4a77797d89ffcc6c5046d63a3fda8ef2", + archive: "tinyflows-module-0.9.5-ubuntu-22.04-arm64.tar.gz", + sha256: "f09c8f4104cd17d00c5eb5f577c8048ba7b76a985e894146df5cc6b552b3e97a", library_sha256: None, }, PlatformAsset { host_key: "windows-2025-x86_64", - archive: "tinyflows-module-0.9.4-windows-2025-x86_64.zip", - sha256: "d2c0c1657c68e9dd89964bbc1a815afee3fa83e72fcdc342e5334814c2d45a3f", + archive: "tinyflows-module-0.9.5-windows-2025-x86_64.zip", + sha256: "6221186d10e28a56ab8d5881e8d525f0db70cc4ccb0d5681f5893b11c7950920", library_sha256: None, }, PlatformAsset { host_key: "windows-2022-x86_64", - archive: "tinyflows-module-0.9.4-windows-2022-x86_64.zip", - sha256: "53adbe5dab7ee8fa683026624a777b466d922212bd3118311e0a7d99b027d595", + archive: "tinyflows-module-0.9.5-windows-2022-x86_64.zip", + sha256: "b8eec6404312c71286650132a41d33758af2efa49c611a131befd383b1c77aca", library_sha256: None, }, PlatformAsset { host_key: "windows-11-arm64", - archive: "tinyflows-module-0.9.4-windows-11-arm64.zip", - sha256: "087ddd9bda9b405620712fd56dcfc0289ebb1c9f96ef068ba838a3f96848282e", + archive: "tinyflows-module-0.9.5-windows-11-arm64.zip", + sha256: "67d4b8c8ad87c4a7c416ddaff4c96c79bde0fc2e43624306b219e85c8c332587", library_sha256: None, }, ], diff --git a/crates/openhuman-core/src/modules/registry_contract_tests.rs b/crates/openhuman-core/src/modules/registry_contract_tests.rs index 1056fb24c0..b6f64a1030 100644 --- a/crates/openhuman-core/src/modules/registry_contract_tests.rs +++ b/crates/openhuman-core/src/modules/registry_contract_tests.rs @@ -184,56 +184,56 @@ fn the_flows_record_serves_the_schedule_object() { assert_eq!(component_for("tinyflows"), Some("tinyflows")); } -/// The pins are copied from the published v0.9.4 `checksum.toml`. +/// The pins are copied from the published v0.9.5 `checksum.toml`. #[test] fn the_flows_record_pins_every_host_of_one_release() { let record = find("tinyflows").unwrap(); - assert_eq!(record.version, "0.9.4"); + assert_eq!(record.version, "0.9.5"); assert_eq!(record.assets.len(), 11); let expected = [ ( - "tinyflows-module-0.9.4-macos-26-arm64.tar.gz", - "6cd6e4cc9c22504c2c14944d936d04316ca3301bc7c193baca8834161589f476", + "tinyflows-module-0.9.5-macos-26-arm64.tar.gz", + "c6e31c3c8654c28b8d0b6dfe91ca1971a00f19dae14bf9903242e769225ef9d1", ), ( - "tinyflows-module-0.9.4-macos-26-x86_64.tar.gz", - "b22cbcac0c23b407a0d33959e0ed6f7605f04bf2a5703ce883f488d780be4c9a", + "tinyflows-module-0.9.5-macos-26-x86_64.tar.gz", + "6531b27fddc55f8febee2113086b80ad12227aad4beeb48e0f47143da24271ed", ), ( - "tinyflows-module-0.9.4-macos-15-arm64.tar.gz", - "39cabbe3da34773039ce8423a724f684f3d06c50dc08edd575ef5b3811664159", + "tinyflows-module-0.9.5-macos-15-arm64.tar.gz", + "2b98c6b44ed84a430d071592805f05891b1475653df4dacd96ff3f524a29a99f", ), ( - "tinyflows-module-0.9.4-macos-15-x86_64.tar.gz", - "8a937a24f37afcb0cb3042dfe640caccbbbb3766f45b9c06f1d34d9c235a5346", + "tinyflows-module-0.9.5-macos-15-x86_64.tar.gz", + "d5fcafcaa1885276921d26a0e65fa0d60991ea7964a7007641de21b555dfb343", ), ( - "tinyflows-module-0.9.4-ubuntu-24.04-x86_64.tar.gz", - "43a831d16cf0406c6148deda1023f9d3467483b275a65e30b282e8362ebbe01f", + "tinyflows-module-0.9.5-ubuntu-24.04-x86_64.tar.gz", + "f7c5e7438c64ce76c0249f81a75669b25f430250abfeff1d6831a782a2539a8b", ), ( - "tinyflows-module-0.9.4-ubuntu-24.04-arm64.tar.gz", - "7105663eb05118f5fd7d008bc56ec35e24463e36f5762ee7871018cb3219aca6", + "tinyflows-module-0.9.5-ubuntu-24.04-arm64.tar.gz", + "55779f03a89cd3c5d76bd5bb26e6d9837b2f5e3153c83f3aa11656222a4f4582", ), ( - "tinyflows-module-0.9.4-ubuntu-22.04-x86_64.tar.gz", - "da04b73a434b5a11b97bc98518d81f27e96c8115431c2b3bbe75a7e67aae5055", + "tinyflows-module-0.9.5-ubuntu-22.04-x86_64.tar.gz", + "e6f96edfbab60421e3dc6db5d51fb49fb0da36d049cc359a5db5091b3b9861b6", ), ( - "tinyflows-module-0.9.4-ubuntu-22.04-arm64.tar.gz", - "eba07906b8ae276c8fee8c303e14a40e4a77797d89ffcc6c5046d63a3fda8ef2", + "tinyflows-module-0.9.5-ubuntu-22.04-arm64.tar.gz", + "f09c8f4104cd17d00c5eb5f577c8048ba7b76a985e894146df5cc6b552b3e97a", ), ( - "tinyflows-module-0.9.4-windows-2025-x86_64.zip", - "d2c0c1657c68e9dd89964bbc1a815afee3fa83e72fcdc342e5334814c2d45a3f", + "tinyflows-module-0.9.5-windows-2025-x86_64.zip", + "6221186d10e28a56ab8d5881e8d525f0db70cc4ccb0d5681f5893b11c7950920", ), ( - "tinyflows-module-0.9.4-windows-2022-x86_64.zip", - "53adbe5dab7ee8fa683026624a777b466d922212bd3118311e0a7d99b027d595", + "tinyflows-module-0.9.5-windows-2022-x86_64.zip", + "b8eec6404312c71286650132a41d33758af2efa49c611a131befd383b1c77aca", ), ( - "tinyflows-module-0.9.4-windows-11-arm64.zip", - "087ddd9bda9b405620712fd56dcfc0289ebb1c9f96ef068ba838a3f96848282e", + "tinyflows-module-0.9.5-windows-11-arm64.zip", + "67d4b8c8ad87c4a7c416ddaff4c96c79bde0fc2e43624306b219e85c8c332587", ), ]; for (asset, (archive, sha256)) in record.assets.iter().zip(expected) { diff --git a/crates/openhuman-core/src/modules/registry_release_manifest_tests.rs b/crates/openhuman-core/src/modules/registry_release_manifest_tests.rs index 009dfbf9ae..21a555d236 100644 --- a/crates/openhuman-core/src/modules/registry_release_manifest_tests.rs +++ b/crates/openhuman-core/src/modules/registry_release_manifest_tests.rs @@ -81,7 +81,7 @@ fn tinysecurity_registry_matches_the_verified_v0182_release_manifest() { #[test] fn tinychannels_registry_matches_scoped_runtime_release() { let record = find("tinychannels").expect("compiled TinyChannels module"); - assert_eq!(record.version, "0.1.45"); + assert_eq!(record.version, "0.2.0"); assert_eq!(tinychannels_bus::CONTRACT_VERSION, 33); assert_eq!( tinychannels_bus::module_relay::MODULE_OPERATION_VERSION, @@ -90,88 +90,88 @@ fn tinychannels_registry_matches_scoped_runtime_release() { let expected = [ ( "archlinux-arm64", - "tinychannels-module-0.1.45-archlinux-arm64.tar.gz", - "2adc56f7ea983f208a46d77d4bfc9bf05b5f414e3be7c1a578c2079c57e2a983", + "tinychannels-module-0.2.0-archlinux-arm64.tar.gz", + "07d2285c42dbeca2d70e0eb26890df533b7daab2139a8e71c71d9ec88ce819cf", ), ( "archlinux-x86_64", - "tinychannels-module-0.1.45-archlinux-x86_64.tar.gz", - "c264de7479ea0f67f3c8fb3ed51480d0fc91e4c3ac8e96d27a9f2d65fc5c6c7a", + "tinychannels-module-0.2.0-archlinux-x86_64.tar.gz", + "8d67e15a9c11f75cc53fab27c838308f5d622895df403f4d8ff5a37b4000411d", ), ( "fedora-43-arm64", - "tinychannels-module-0.1.45-fedora-43-arm64.tar.gz", - "02795d3c0643dec350d961c08c9ba3ed463463c70f9025c0faa71fb9fcfb9c8b", + "tinychannels-module-0.2.0-fedora-43-arm64.tar.gz", + "82ea9f45978fa82a1ab10846b922f7a31dfd1e0d6d7e13436aec3624dce707d6", ), ( "fedora-43-x86_64", - "tinychannels-module-0.1.45-fedora-43-x86_64.tar.gz", - "e6897ee47572d049cd2d8956f5a9dba226f013af2510c11290b02be1cd3518e4", + "tinychannels-module-0.2.0-fedora-43-x86_64.tar.gz", + "a0ab5045055328e55e39568b77c1fd5dc63ea63a015fb86d0e0fbe905375b855", ), ( "fedora-44-arm64", - "tinychannels-module-0.1.45-fedora-44-arm64.tar.gz", - "cd9d6328464fa0ecb46ad51fe794ca0920101e1ac2fbce4acf19d5bb4bcacf14", + "tinychannels-module-0.2.0-fedora-44-arm64.tar.gz", + "0eb80bc0ba0c36694e92a2ea628f73c010b9409952d232eca4261fc9a20cd837", ), ( "fedora-44-x86_64", - "tinychannels-module-0.1.45-fedora-44-x86_64.tar.gz", - "f845f4b838c7b95ce0f4e7c6d8cd07e920d8e9874e5186cac6a607c52c952638", + "tinychannels-module-0.2.0-fedora-44-x86_64.tar.gz", + "a0ee9aa9d8f462ccbe60e6122fb32beb519f6e080d7ca7c19c150bff1a0e83a6", ), ( "macos-15-arm64", - "tinychannels-module-0.1.45-macos-15-arm64.tar.gz", - "4b6a4cdf406c5ce95c6c8afe8ec1c3592e5aa3c7a3aee6f18359cd8ea994a55e", + "tinychannels-module-0.2.0-macos-15-arm64.tar.gz", + "846b9391cdb7e5488c6b62c5c25fbd495e1899e3db92517cb0b0be0e32de8567", ), ( "macos-15-x86_64", - "tinychannels-module-0.1.45-macos-15-x86_64.tar.gz", - "c6692f4517fbc0d0630df24d68507aec61546bb97a1399732fcfba7c66bdd603", + "tinychannels-module-0.2.0-macos-15-x86_64.tar.gz", + "88a249b5ea3d5e80eb5bc753ee8d503bf8a2b2293d2c1127ca6a5fd3015dd421", ), ( "macos-26-arm64", - "tinychannels-module-0.1.45-macos-26-arm64.tar.gz", - "07de20fa41ba08e4cd3fd727b9c305abca197bce0594d367de50e6c5021345d9", + "tinychannels-module-0.2.0-macos-26-arm64.tar.gz", + "3a666957b9d4cce0ffc23e1ea2a21b6fce90d823276cca018cba04ce957bfd54", ), ( "macos-26-x86_64", - "tinychannels-module-0.1.45-macos-26-x86_64.tar.gz", - "4e65f802b3aeb3aadc73af0a696e00de324ec4eef363e07a3d50f0cde2b1a84b", + "tinychannels-module-0.2.0-macos-26-x86_64.tar.gz", + "ef0edd5d7990398a4b97ef114e8858d53f7418dbc818c1fad949472a712a2b61", ), ( "ubuntu-22.04-arm64", - "tinychannels-module-0.1.45-ubuntu-22.04-arm64.tar.gz", - "d521277a7d963332c61233e6a083d920cabbaf38befb346def1fa864bf74adb4", + "tinychannels-module-0.2.0-ubuntu-22.04-arm64.tar.gz", + "8d947a1b283bcb538ac59f68e1fdcce07fe47d9bb59d8ea0406316c213c04b13", ), ( "ubuntu-22.04-x86_64", - "tinychannels-module-0.1.45-ubuntu-22.04-x86_64.tar.gz", - "add0a97cf1ab4b85cc5c651e4d4204ff700595c1b94d6aede4a8e2220fa73b3d", + "tinychannels-module-0.2.0-ubuntu-22.04-x86_64.tar.gz", + "92c90089eef81d7e90aeb8f2992dea706bcd91fd2cd9485004edea24eac18c0c", ), ( "ubuntu-24.04-arm64", - "tinychannels-module-0.1.45-ubuntu-24.04-arm64.tar.gz", - "a51a42c8ee18b26322ce8981a01f6c83e5a6d6a633c002dd3040fa12cb60e513", + "tinychannels-module-0.2.0-ubuntu-24.04-arm64.tar.gz", + "cd7c1522e32d0cb125fe643feea5f3602663c99a8ae96f201fc5077a2496d588", ), ( "ubuntu-24.04-x86_64", - "tinychannels-module-0.1.45-ubuntu-24.04-x86_64.tar.gz", - "9cf0d1be60f55601c263fc29c1c91172db2bfcb30d4ea19a11bcb0e032ed7c19", + "tinychannels-module-0.2.0-ubuntu-24.04-x86_64.tar.gz", + "b4556e866c309b1792a73af48bf7297c4a2714bae25c9ef1adc22c403f25dc04", ), ( "windows-11-arm64", - "tinychannels-module-0.1.45-windows-11-arm64.zip", - "f5c36f904623a3c6e6b523df62618a6576cc60157f1457de11a7f2b11dea3cfb", + "tinychannels-module-0.2.0-windows-11-arm64.zip", + "3e29456cd6b161a605c9224ebaa51dbdaa3f0a4b944529cfc3a8e471bc0d5725", ), ( "windows-2022-x86_64", - "tinychannels-module-0.1.45-windows-2022-x86_64.zip", - "07545499e434b3e25d58a48f59874c49b7a9a5e609d904ce52011932e7640bc2", + "tinychannels-module-0.2.0-windows-2022-x86_64.zip", + "456d7c6cd16494aff56adfa2b4b96db47abd284203e11de10fc0e9efb6f76eda", ), ( "windows-2025-x86_64", - "tinychannels-module-0.1.45-windows-2025-x86_64.zip", - "e732561700bde58c35b896f02c395540a5bb45824e59e3c3fea0231786c217fe", + "tinychannels-module-0.2.0-windows-2025-x86_64.zip", + "427bf8719b9cd2ac874f6cc9f74a5dc49fb08c8758b62cf8a09616448cb25134", ), ]; assert_eq!(record.assets.len(), expected.len()); diff --git a/crates/openhuman-core/src/modules/registry_tests.rs b/crates/openhuman-core/src/modules/registry_tests.rs index 2539ec98c6..49f47025a3 100644 --- a/crates/openhuman-core/src/modules/registry_tests.rs +++ b/crates/openhuman-core/src/modules/registry_tests.rs @@ -118,13 +118,13 @@ fn tinywallet_registry_matches_the_verified_v0270_release_manifest() { } #[test] -fn tinybox_registry_matches_the_published_v023_release_manifest() { +fn tinybox_registry_matches_the_published_v024_release_manifest() { let record = find("tinybox").expect("compiled TinyBox module"); - assert_eq!(record.version, "0.2.3"); - assert_eq!(tinybox_bus::CONTRACT_VERSION, (2, 1)); + assert_eq!(record.version, "0.2.4"); + assert_eq!(tinybox_bus::CONTRACT_VERSION, (2, 3)); assert_eq!( record.release_url, - "https://github.com/tinyhumansai/tinybox/releases/tag/v0.2.3" + "https://github.com/tinyhumansai/tinybox/releases/tag/v0.2.4" ); let actual = record @@ -135,88 +135,88 @@ fn tinybox_registry_matches_the_published_v023_release_manifest() { let published = [ ( "archlinux-arm64", - "tinybox-0.2.3-archlinux-arm64.tar.gz", - "f5793f3163855faeff97f06ae3ee117c8ab3a6a28e166e0a4c10d663c2c98c59", + "tinybox-0.2.4-archlinux-arm64.tar.gz", + "aaf2c37f5ebe92c8897fe8b6b0300798e7afecbb00f3f438ccd19aa566f3a6ec", ), ( "archlinux-x86_64", - "tinybox-0.2.3-archlinux-x86_64.tar.gz", - "0c275b1eb643f01781eb03bac9efcfa9516c14e387aea23f4d740ef2c4a9f3fb", + "tinybox-0.2.4-archlinux-x86_64.tar.gz", + "07937b998542884ed38502c534c4d857d7e9fb55da0b5ae0a5ec6d9d7a369c29", ), ( "fedora-43-arm64", - "tinybox-0.2.3-fedora-43-arm64.tar.gz", - "a78cb0729a3f513fa32ecd3690781ffe76f256f9ab31c3008d72cc28fbab745a", + "tinybox-0.2.4-fedora-43-arm64.tar.gz", + "feec38ccea69e54962387321ac6377d207ca99c0de51781e1646b88ae6b3f899", ), ( "fedora-43-x86_64", - "tinybox-0.2.3-fedora-43-x86_64.tar.gz", - "1df8a55ed71b2e39e7b6767df3f9d4c8bd6d096d97fad81aa4d24c2f4e200459", + "tinybox-0.2.4-fedora-43-x86_64.tar.gz", + "ff9aabc80750b956fb1d7824f650b51bf54b2027838641432027c03b14bef1e9", ), ( "fedora-44-arm64", - "tinybox-0.2.3-fedora-44-arm64.tar.gz", - "5f5df28fda5f94d594f8f2be60d4a0b1734d525f0db2ffe7d725e20eeb26fdd8", + "tinybox-0.2.4-fedora-44-arm64.tar.gz", + "ea56348b0b33d71e6fde07bba1b32be2c659a8be94c45feacb92b6d0e9e87d5e", ), ( "fedora-44-x86_64", - "tinybox-0.2.3-fedora-44-x86_64.tar.gz", - "f30ec1e1b25f6e760361f5878b0852029e010710e4dfad50bee13e08ac6bf25b", + "tinybox-0.2.4-fedora-44-x86_64.tar.gz", + "f10fc89683e7cf0c9bc5b9baaf5d3dfce9ec75f4b7c7aed928e4668392c50d5f", ), ( "macos-15-arm64", - "tinybox-0.2.3-macos-15-arm64.tar.gz", - "b23fba12090d384033f604a093213f1dbad6c211719c8ac1330245862010f38e", + "tinybox-0.2.4-macos-15-arm64.tar.gz", + "0983c74b6ac9a5458518ebcb557bc2d5d3d91c2ab3ecee01f4a6de0a60dc7271", ), ( "macos-15-x86_64", - "tinybox-0.2.3-macos-15-x86_64.tar.gz", - "e3e9178df6c1dea7c3f08eff9df06dcdf8d1e0f83ba23dfdafb70867d991af6a", + "tinybox-0.2.4-macos-15-x86_64.tar.gz", + "c068a76205f1bf435a490b5248a8408ac8aa2537b1e9d446583b8dfe194be34e", ), ( "macos-26-arm64", - "tinybox-0.2.3-macos-26-arm64.tar.gz", - "7e524cffcd7e2ad1ad21a393ca2b9ccdad2cfb4563b331270b182180d5f1c719", + "tinybox-0.2.4-macos-26-arm64.tar.gz", + "13aa4c590177eea88f0da67000494eb72fe40c238c477a2755eb6a439e8b66e3", ), ( "macos-26-x86_64", - "tinybox-0.2.3-macos-26-x86_64.tar.gz", - "e8bd5991e261db8f8560f94c119dfa987be690dc19f8b898dd60686d29ab79e4", + "tinybox-0.2.4-macos-26-x86_64.tar.gz", + "99e5159922eb99eaec894e49a7dcd947c0a369e5c51192052febf38c1a15a72a", ), ( "ubuntu-22.04-arm64", - "tinybox-0.2.3-ubuntu-22.04-arm64.tar.gz", - "3cd95331c40559de0c36b155ee596bdc99e057a32f0e54a4e5cfc652d6c60ab1", + "tinybox-0.2.4-ubuntu-22.04-arm64.tar.gz", + "abcb145cc78d48a1cea4a7e3a94414d7d11e1ff70adef660cab94c11832fbaf3", ), ( "ubuntu-22.04-x86_64", - "tinybox-0.2.3-ubuntu-22.04-x86_64.tar.gz", - "aa03d3e8f88d635ea2ab134fdf27454326e0e43a696cd195ea3e626a1ed7aaf8", + "tinybox-0.2.4-ubuntu-22.04-x86_64.tar.gz", + "39ea65a08bc1aa2be74121ebca9e815be379577dc461380c4c3eb926b1b7d735", ), ( "ubuntu-24.04-arm64", - "tinybox-0.2.3-ubuntu-24.04-arm64.tar.gz", - "649309f8ed2b6739ae03dbd6b944bd820788c713f99b521a4ef65c762485a2eb", + "tinybox-0.2.4-ubuntu-24.04-arm64.tar.gz", + "0d9fa4e342afd59c2c3c1b6edf24a1d0383430c9ef238cb214b1c849ecc06f0f", ), ( "ubuntu-24.04-x86_64", - "tinybox-0.2.3-ubuntu-24.04-x86_64.tar.gz", - "8c3013d933bd9dc235975db5f5046da3c982511f7425502f4f4b288081b89376", + "tinybox-0.2.4-ubuntu-24.04-x86_64.tar.gz", + "8424a0a42894f610eb81fcfdbc6eb87f642df953a5d886127d03cdf3e51a52d1", ), ( "windows-11-arm64", - "tinybox-0.2.3-windows-11-arm64.zip", - "bad2e51d65f6b37d8cb7464e3431caee640d11fae61d2ce786b570e6c31173e1", + "tinybox-0.2.4-windows-11-arm64.zip", + "75163660dd3eec73b1bfc0256d5453bb81e10484a9584295c0021c1ffb3c750e", ), ( "windows-2022-x86_64", - "tinybox-0.2.3-windows-2022-x86_64.zip", - "0f495036f98e88e566376b2c2180b1d09d597f433b3f9b34a88786c14414f61b", + "tinybox-0.2.4-windows-2022-x86_64.zip", + "8be3c207bacd75a47706e61af5367e7046b6f9d1d1bc486438f7245915d6a970", ), ( "windows-2025-x86_64", - "tinybox-0.2.3-windows-2025-x86_64.zip", - "2119e8ba6d735aed78c0afb1d0ccb69416e048abff56ad8e46e4efd742c52ff8", + "tinybox-0.2.4-windows-2025-x86_64.zip", + "2dee76ec3fdefe95c59492f8bc95e324aae46c53147461ad1339beb1e9084186", ), ]; diff --git a/crates/openhuman-core/src/modules/tinybox/operations_tests.rs b/crates/openhuman-core/src/modules/tinybox/operations_tests.rs index 701b7d49f0..f3f367eb2d 100644 --- a/crates/openhuman-core/src/modules/tinybox/operations_tests.rs +++ b/crates/openhuman-core/src/modules/tinybox/operations_tests.rs @@ -331,8 +331,8 @@ async fn pinned_loader_serves_resolve_local_grants_from_pinned_tinybox_release() ); let record = crate::modules::registry::find(MODULE_ID).expect("TinyBox registry record"); - assert_eq!(record.version, "0.2.3"); - assert_eq!(contract::CONTRACT_VERSION, (2, 1)); + assert_eq!(record.version, "0.2.4"); + assert_eq!(contract::CONTRACT_VERSION, (2, 3)); let asset = tinybus::module::platform::host_candidates() .iter() .find_map(|host_key| record.asset_for(host_key)) diff --git a/tests/json_rpc_flows_e2e.rs b/tests/json_rpc_flows_e2e.rs index 2f1440e3f6..985fb1fbf5 100644 --- a/tests/json_rpc_flows_e2e.rs +++ b/tests/json_rpc_flows_e2e.rs @@ -76,7 +76,7 @@ async fn json_rpc_cron_manual_worker_survives_caller_cancel_on_published_tinyflo let _source_dir_guard = EnvVarGuard::unset("OPENHUMAN_MODULE_SOURCE_DIR"); clear_forced_chat_completions(); - let (artifact, _) = published_tinyflows::staged_v0_9_4_module(); + let (artifact, _) = published_tinyflows::staged_v0_9_5_module(); let module_path = artifact.parent().expect("native artifact directory"); let _module_path_guard = EnvVarGuard::set_to_path("OPENHUMAN_MODULE_PATH", module_path); diff --git a/tests/support/published_tinyflows.rs b/tests/support/published_tinyflows.rs index c4dd5d357a..b6b4c49dcd 100644 --- a/tests/support/published_tinyflows.rs +++ b/tests/support/published_tinyflows.rs @@ -1,49 +1,49 @@ -//! Digest gate for tests that load the published TinyFlows v0.9.4 module. +//! Digest gate for tests that load the published TinyFlows v0.9.5 module. use sha2::{Digest, Sha256}; use std::path::{Path, PathBuf}; -const V0_9_4_MODULE_HASHES: &[&str] = &[ - // tinyflows-module-0.9.4-macos-15-arm64.tar.gz - "abdd0f29f1b510aceb0760595b613cf43bf9c14fc93fae925c693e0350acf614", - // tinyflows-module-0.9.4-macos-15-x86_64.tar.gz - "108192455fa955a68059f153f61547e142a9fd4a00867b4680390435f47c76fe", - // tinyflows-module-0.9.4-macos-26-arm64.tar.gz - "45b2c691b28bed3873cacc0b9b7af36e740de061ecaac9b66ac3430e31687f54", - // tinyflows-module-0.9.4-macos-26-x86_64.tar.gz - "a9c7caf7fb70e785a2ba0c5de56a4f27dce2517c87a28d9c5c754434111a78a6", - // tinyflows-module-0.9.4-ubuntu-22.04-arm64.tar.gz - "08136db614c2f5da2d7823d96307d07fde99b4a7c571c307f25d1ec05fb900d2", - // tinyflows-module-0.9.4-ubuntu-22.04-x86_64.tar.gz - "1b4cfb6003bdf47656d75ba8247a05ad33c124d6f475143da5a8553f777b9c46", - // tinyflows-module-0.9.4-ubuntu-24.04-arm64.tar.gz - "d599df4f8720f11e64c29390d0bac8ed7b5a322e4c9abb213b78a76898cfaee2", - // tinyflows-module-0.9.4-ubuntu-24.04-x86_64.tar.gz - "bc770310b6ae7d0fe7015b3e0971edf0f3056b54362f715c76b2e40b25ae1696", - // tinyflows-module-0.9.4-windows-11-arm64.zip - "af190bbbe0c1756080410b9d4322e35eeceaa6e9a13a5c77d878450bd8a2a085", - // tinyflows-module-0.9.4-windows-2022-x86_64.zip - "8f283555f36e3169035776c1f977473e27216ee755429f363eca3bcacb8285ce", - // tinyflows-module-0.9.4-windows-2025-x86_64.zip - "c414c94a761b85f1c4739a7ab7b48eda29961b0a9715836ed248e490e737468f", +const V0_9_5_MODULE_HASHES: &[&str] = &[ + // tinyflows-module-0.9.5-macos-15-arm64.tar.gz + "11a25c86bc23cae06766f4fcdfa206886735a407c29d115ec37127752bd76d45", + // tinyflows-module-0.9.5-macos-15-x86_64.tar.gz + "e519baae32a05f66e4d394cc97a5d77dbd6a205d68ddc3a8bf87af0592bdd6f0", + // tinyflows-module-0.9.5-macos-26-arm64.tar.gz + "90fcee41304eb7390024df346e0a223b607dda6e61830f50cef3cbb87f67ac84", + // tinyflows-module-0.9.5-macos-26-x86_64.tar.gz + "a7e4604bec9436a189f83c94787475c5df91bf314721ab239927b695a01d8c05", + // tinyflows-module-0.9.5-ubuntu-22.04-arm64.tar.gz + "c5bfc95cdbc4087efa0c451c3c75237f39e6eb087f3e68f020a6c593912fba5e", + // tinyflows-module-0.9.5-ubuntu-22.04-x86_64.tar.gz + "38733f7c6618567851fe327184c1f2ed2443ed4458896973f8950c91bf318824", + // tinyflows-module-0.9.5-ubuntu-24.04-arm64.tar.gz + "fcb38ed6aa6f1317363b8d2b965cf21bb1047eeb09970b631bf7807b0ef4c4b4", + // tinyflows-module-0.9.5-ubuntu-24.04-x86_64.tar.gz + "9cd8a93c94595e92afafd9c9c4820f76afa8347da4c3dfb97c27b7f1ee1691f9", + // tinyflows-module-0.9.5-windows-11-arm64.zip + "9d7eff99566ff1e54cf66e188e0948335ca4a0ceb19c6697f389b7dd3a52a2be", + // tinyflows-module-0.9.5-windows-2022-x86_64.zip + "cdbbd6fb591cf52e995936a9fc6559c8d1de06b2342635993bf315973f7dfd8c", + // tinyflows-module-0.9.5-windows-2025-x86_64.zip + "89b981fd1b7b2441e6670438d5c75ebc3a20456a33211f5c5b57602930e79e67", ]; -/// Finds the staged platform artifact and confirms it matches a published v0.9.4 bundle. -pub fn staged_v0_9_4_module() -> (PathBuf, String) { +/// Finds the staged platform artifact and confirms it matches a published v0.9.5 bundle. +pub fn staged_v0_9_5_module() -> (PathBuf, String) { let artifact = openhuman_core::modules::local_artifact("tinyflows") - .expect("stage the published TinyFlows v0.9.4 module on OPENHUMAN_MODULE_PATH"); - let digest = verify_v0_9_4_module(&artifact); + .expect("stage the published TinyFlows v0.9.5 module on OPENHUMAN_MODULE_PATH"); + let digest = verify_v0_9_5_module(&artifact); (artifact, digest) } -/// Confirms `artifact` is one of the public platform bundles for v0.9.4. -pub fn verify_v0_9_4_module(artifact: &Path) -> String { +/// Confirms `artifact` is one of the public platform bundles for v0.9.5. +pub fn verify_v0_9_5_module(artifact: &Path) -> String { let digest = hex::encode(Sha256::digest( std::fs::read(artifact).expect("read staged TinyFlows native artifact"), )); assert!( - V0_9_4_MODULE_HASHES.contains(&digest.as_str()), - "staged TinyFlows library is not a published v0.9.4 module: {} sha256={digest}", + V0_9_5_MODULE_HASHES.contains(&digest.as_str()), + "staged TinyFlows library is not a published v0.9.5 module: {} sha256={digest}", artifact.display() ); digest diff --git a/tests/tinyflows_published_prompt_e2e.rs b/tests/tinyflows_published_prompt_e2e.rs index 6fe04492b2..92d47946b4 100644 --- a/tests/tinyflows_published_prompt_e2e.rs +++ b/tests/tinyflows_published_prompt_e2e.rs @@ -1,4 +1,4 @@ -//! Normal-host prompt composition against the checksum-verified TinyFlows v0.9.4 module. +//! Normal-host prompt composition against the checksum-verified TinyFlows v0.9.5 module. #[path = "support/env_guard.rs"] mod env_guard; @@ -99,7 +99,7 @@ async fn published_module_prompts_render_through_the_normal_host_path() { let _source_guard = EnvVarGuard::unset("OPENHUMAN_MODULE_SOURCE"); let _source_dir_guard = EnvVarGuard::unset("OPENHUMAN_MODULE_SOURCE_DIR"); let _tinyflows_source_guard = EnvVarGuard::unset("OPENHUMAN_MODULE_SOURCE_TINYFLOWS"); - let (library, _) = published_tinyflows::staged_v0_9_4_module(); + let (library, _) = published_tinyflows::staged_v0_9_5_module(); let module_search_path = library .parent() .expect("staged module artifact has a search directory"); @@ -345,7 +345,7 @@ async fn published_module_public_import_uses_authoring_bus_in_a_cold_process() { let _source_guard = EnvVarGuard::unset("OPENHUMAN_MODULE_SOURCE"); let _source_dir_guard = EnvVarGuard::unset("OPENHUMAN_MODULE_SOURCE_DIR"); let _tinyflows_source_guard = EnvVarGuard::unset("OPENHUMAN_MODULE_SOURCE_TINYFLOWS"); - let (library, digest) = published_tinyflows::staged_v0_9_4_module(); + let (library, digest) = published_tinyflows::staged_v0_9_5_module(); let workspace = temp.path().join("workspace"); std::fs::create_dir_all(&workspace).expect("workspace directory"); let _workspace_guard = EnvVarGuard::set_to_path("OPENHUMAN_WORKSPACE", &workspace); diff --git a/tests/tinyflows_published_runs_e2e.rs b/tests/tinyflows_published_runs_e2e.rs index d37b5692ac..77cf5e6d0f 100644 --- a/tests/tinyflows_published_runs_e2e.rs +++ b/tests/tinyflows_published_runs_e2e.rs @@ -135,7 +135,7 @@ async fn published_runs_use_scoped_host_capabilities_and_persist_lifecycle() { let _module_source = EnvVarGuard::unset("OPENHUMAN_MODULE_SOURCE"); let _module_source_dir = EnvVarGuard::unset("OPENHUMAN_MODULE_SOURCE_DIR"); let _tinyflows_source = EnvVarGuard::unset("OPENHUMAN_MODULE_SOURCE_TINYFLOWS"); - let (module, digest) = published_tinyflows::staged_v0_9_4_module(); + let (module, digest) = published_tinyflows::staged_v0_9_5_module(); let config_path = write_config(temp.path(), &module); tinyhumans_boot::boot(); @@ -334,7 +334,7 @@ async fn published_runs_use_scoped_host_capabilities_and_persist_lifecycle() { "failed run row must persist the same policy denial and steps: {terminal}" ); assert_eq!( - published_tinyflows::verify_v0_9_4_module(&module), + published_tinyflows::verify_v0_9_5_module(&module), digest, "the run used the checksum-verified published module" ); diff --git a/vendor/tinyflows b/vendor/tinyflows index 83928f0a74..674929ae82 160000 --- a/vendor/tinyflows +++ b/vendor/tinyflows @@ -1 +1 @@ -Subproject commit 83928f0a7481ca78429c2158d06b5ff2bc015d93 +Subproject commit 674929ae827811eb809d6a32295817fae269dabb From da16da1eefe90e83c16cb48234894d15904fab03 Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 16:02:10 +0530 Subject: [PATCH 04/12] chore(modules): pin the canonical tinysecurity 0.18.4 release Re-pin the tinysecurity registry record from the fork's v0.18.2 to the canonical tinyhumansai v0.18.4 release: version, release URL and each pinned host's archive digest from its checksum.toml, checked against the downloaded archives. The record keeps its existing host set. vendor/tinysecurity moves to the v0.18.4 tag commit, which bumps tinysecurity-bus to 0.18.4 in both lockfiles. Update the release-manifest test and the native fixture to the new release and contract 1.35, and stop redirecting the canonical tinysecurity URL to the fork in CI, since the pin is now canonical. --- .github/workflows/security-browser-egress.yml | 1 - .github/workflows/security-native.yml | 6 +-- Cargo.lock | 2 +- crates/openhuman-app/Cargo.lock | 2 +- .../src/modules/registry/records_security.rs | 50 +++++++++--------- .../registry_release_manifest_tests.rs | 52 +++++++++---------- scripts/ci/security-native-fixture.sh | 4 +- tests/security_native_fixture.rs | 4 +- vendor/tinysecurity | 2 +- 9 files changed, 60 insertions(+), 63 deletions(-) diff --git a/.github/workflows/security-browser-egress.yml b/.github/workflows/security-browser-egress.yml index 7e2660c7b5..5387af4761 100644 --- a/.github/workflows/security-browser-egress.yml +++ b/.github/workflows/security-browser-egress.yml @@ -33,7 +33,6 @@ jobs: - name: Fetch fork-pinned submodules shell: bash run: | - git config --global url."https://github.com/senamakel/tinysecurity.git".insteadOf "https://github.com/tinyhumansai/tinysecurity.git" git config --global url."https://github.com/senamakel/tinydesktop.git".insteadOf "https://github.com/tinyhumansai/tinydesktop.git" git submodule update --init --recursive - uses: dtolnay/rust-toolchain@stable diff --git a/.github/workflows/security-native.yml b/.github/workflows/security-native.yml index 97478bfeda..a9c6076c87 100644 --- a/.github/workflows/security-native.yml +++ b/.github/workflows/security-native.yml @@ -57,11 +57,9 @@ jobs: with: persist-credentials: false submodules: false - - name: Fetch fork-pinned TinySecurity submodule + - name: Fetch submodules shell: bash - run: | - git config --global url."https://github.com/senamakel/tinysecurity.git".insteadOf "https://github.com/tinyhumansai/tinysecurity.git" - git submodule update --init --recursive + run: git submodule update --init --recursive - uses: dtolnay/rust-toolchain@stable - uses: Swatinem/rust-cache@v2 with: diff --git a/Cargo.lock b/Cargo.lock index d180022ac7..e4d02e05ca 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10556,7 +10556,7 @@ dependencies = [ [[package]] name = "tinysecurity-bus" -version = "0.18.3" +version = "0.18.4" dependencies = [ "serde", "thiserror 2.0.21", diff --git a/crates/openhuman-app/Cargo.lock b/crates/openhuman-app/Cargo.lock index 7700deb4e7..c710339a41 100644 --- a/crates/openhuman-app/Cargo.lock +++ b/crates/openhuman-app/Cargo.lock @@ -8223,7 +8223,7 @@ dependencies = [ [[package]] name = "tinysecurity-bus" -version = "0.18.3" +version = "0.18.4" dependencies = [ "serde", "thiserror 2.0.21", diff --git a/crates/openhuman-core/src/modules/registry/records_security.rs b/crates/openhuman-core/src/modules/registry/records_security.rs index 6ce33bfc9d..dc3da95277 100644 --- a/crates/openhuman-core/src/modules/registry/records_security.rs +++ b/crates/openhuman-core/src/modules/registry/records_security.rs @@ -1,4 +1,4 @@ -//! Published TinySecurity admission pins copied verbatim from v0.18.2/checksum.toml. +//! Published TinySecurity admission pins copied verbatim from v0.18.4/checksum.toml. //! //! `LoadPolicy::Eager` is the "load at boot" policy (the issue calls it Boot): a missing //! security module changes behaviour, so it must be serving before the first request. @@ -9,73 +9,73 @@ pub(crate) const TINYSECURITY: ModuleRecord = ModuleRecord { description: "Native security policy and durable approval tool grants", bus_name: tinysecurity_bus::names::INTERFACE, object_path: tinysecurity_bus::names::OBJECT_PATH, - version: "0.18.2", - release_url: "https://github.com/senamakel/tinysecurity/releases/tag/v0.18.2", + version: "0.18.4", + release_url: "https://github.com/tinyhumansai/tinysecurity/releases/tag/v0.18.4", assets: &[ PlatformAsset { host_key: "ubuntu-24.04-x86_64", - archive: "tinysecurity-module-0.18.2-ubuntu-24.04-x86_64.tar.gz", - sha256: "4c8d90347c37293d5ea773245e0ce9dda4a18234117736757564beeffea5f5fa", + archive: "tinysecurity-module-0.18.4-ubuntu-24.04-x86_64.tar.gz", + sha256: "2e51299127281ae7c524c606590bb41ae2f635536c63791abe327d7f6abed0ba", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-arm64", - archive: "tinysecurity-module-0.18.2-ubuntu-24.04-arm64.tar.gz", - sha256: "a91db19a360840fd5f8a7c341ef4856fcdc25db98cc597b7acdd80ac075ab046", + archive: "tinysecurity-module-0.18.4-ubuntu-24.04-arm64.tar.gz", + sha256: "61cb28f3ebc5bfb77503b20abf128a4dbf55f2c5ba9f826ba240edf8bd51ff2c", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-x86_64", - archive: "tinysecurity-module-0.18.2-ubuntu-22.04-x86_64.tar.gz", - sha256: "000e9a3a07a8388fee3a6b823615998959d5255e584526b978b653959fad8a30", + archive: "tinysecurity-module-0.18.4-ubuntu-22.04-x86_64.tar.gz", + sha256: "d56513cfc8d3f0ad2552abf31918365e3bbbdb700010a03e3273c79d6ac53b06", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-arm64", - archive: "tinysecurity-module-0.18.2-ubuntu-22.04-arm64.tar.gz", - sha256: "34c3ef7b6fde18d525ae27fe09716ad2775a91b3152663a1f72b88a0da15e325", + archive: "tinysecurity-module-0.18.4-ubuntu-22.04-arm64.tar.gz", + sha256: "f406c66e69817160527b55cd037e5421ddaadbb586702014e9c78d04622de991", library_sha256: None, }, PlatformAsset { host_key: "macos-26-arm64", - archive: "tinysecurity-module-0.18.2-macos-26-arm64.tar.gz", - sha256: "bc765db3337e98c4f0c96ba6fd47576181c9783e833f9bdeccc745dcab276dc5", + archive: "tinysecurity-module-0.18.4-macos-26-arm64.tar.gz", + sha256: "107f42a9cedaae3a95edf09c82818ad85195e7f0668cf1255b51ee4fbc8ac26e", library_sha256: None, }, PlatformAsset { host_key: "macos-26-x86_64", - archive: "tinysecurity-module-0.18.2-macos-26-x86_64.tar.gz", - sha256: "10575824c14ea3503170420523ecdb6b3fa33cecb85f9ff3d36817666bb7833e", + archive: "tinysecurity-module-0.18.4-macos-26-x86_64.tar.gz", + sha256: "b408ab2832246c1c66630c21ad2a274d6d6592a0f3eaf59039aa517e9955d8a4", library_sha256: None, }, PlatformAsset { host_key: "macos-15-arm64", - archive: "tinysecurity-module-0.18.2-macos-15-arm64.tar.gz", - sha256: "7cd14bf7bbb11bceb4e09560a8f66c941e28541e94ac42320156ba9a7473952b", + archive: "tinysecurity-module-0.18.4-macos-15-arm64.tar.gz", + sha256: "17d143697610cb7ab391d50d7d08d55165c1074ea1b454de08c9486cda19cc28", library_sha256: None, }, PlatformAsset { host_key: "macos-15-x86_64", - archive: "tinysecurity-module-0.18.2-macos-15-x86_64.tar.gz", - sha256: "7829b6e6b41a34d789973e8f94f828235c26ae201050de3645dfd6b53568941c", + archive: "tinysecurity-module-0.18.4-macos-15-x86_64.tar.gz", + sha256: "b11d3ffe0a7a99e0a0fd71fd6fdb87d209e9b8e09c1cb4d3af9656376f368e8b", library_sha256: None, }, PlatformAsset { host_key: "windows-2025-x86_64", - archive: "tinysecurity-module-0.18.2-windows-2025-x86_64.zip", - sha256: "2b41ef005c4d0756233451ca8667fdce492b73a85234bd7f4e2af06949130b70", + archive: "tinysecurity-module-0.18.4-windows-2025-x86_64.zip", + sha256: "fe1f64a199a820d5b58347eea41e29109096b62d81d00e0ed5df083a6fd5005a", library_sha256: None, }, PlatformAsset { host_key: "windows-2022-x86_64", - archive: "tinysecurity-module-0.18.2-windows-2022-x86_64.zip", - sha256: "105ccd4d6fc2787cefaedba2dcc2f5e40129c0b4759e41095099322da5d6058b", + archive: "tinysecurity-module-0.18.4-windows-2022-x86_64.zip", + sha256: "8aa5719147a32209f14f9ad9fd4300e9c114a56dfe31d8f59d019b7540b0f111", library_sha256: None, }, PlatformAsset { host_key: "windows-11-arm64", - archive: "tinysecurity-module-0.18.2-windows-11-arm64.zip", - sha256: "dc6e7b53e7bf65c9adea251d0f1f5852a89f0588c782dbdb6ac0bab08a33c8ef", + archive: "tinysecurity-module-0.18.4-windows-11-arm64.zip", + sha256: "825d2fde75cea1ffb11ff88cc037d1ec9428d784b2d5041f5eec828179f92020", library_sha256: None, }, ], diff --git a/crates/openhuman-core/src/modules/registry_release_manifest_tests.rs b/crates/openhuman-core/src/modules/registry_release_manifest_tests.rs index 21a555d236..aceec771b6 100644 --- a/crates/openhuman-core/src/modules/registry_release_manifest_tests.rs +++ b/crates/openhuman-core/src/modules/registry_release_manifest_tests.rs @@ -2,13 +2,13 @@ use super::*; #[cfg(feature = "security-module")] #[test] -fn tinysecurity_registry_matches_the_verified_v0182_release_manifest() { +fn tinysecurity_registry_matches_the_verified_v0184_release_manifest() { let security = find("tinysecurity").expect("compiled TinySecurity module"); - assert_eq!(security.version, "0.18.2"); - assert_eq!(tinysecurity_bus::CONTRACT_VERSION, (1, 33)); + assert_eq!(security.version, "0.18.4"); + assert_eq!(tinysecurity_bus::CONTRACT_VERSION, (1, 35)); assert_eq!( security.release_url, - "https://github.com/senamakel/tinysecurity/releases/tag/v0.18.2" + "https://github.com/tinyhumansai/tinysecurity/releases/tag/v0.18.4" ); let mut actual = security @@ -20,58 +20,58 @@ fn tinysecurity_registry_matches_the_verified_v0182_release_manifest() { let mut published = [ ( "macos-15-arm64", - "tinysecurity-module-0.18.2-macos-15-arm64.tar.gz", - "7cd14bf7bbb11bceb4e09560a8f66c941e28541e94ac42320156ba9a7473952b", + "tinysecurity-module-0.18.4-macos-15-arm64.tar.gz", + "17d143697610cb7ab391d50d7d08d55165c1074ea1b454de08c9486cda19cc28", ), ( "macos-15-x86_64", - "tinysecurity-module-0.18.2-macos-15-x86_64.tar.gz", - "7829b6e6b41a34d789973e8f94f828235c26ae201050de3645dfd6b53568941c", + "tinysecurity-module-0.18.4-macos-15-x86_64.tar.gz", + "b11d3ffe0a7a99e0a0fd71fd6fdb87d209e9b8e09c1cb4d3af9656376f368e8b", ), ( "macos-26-arm64", - "tinysecurity-module-0.18.2-macos-26-arm64.tar.gz", - "bc765db3337e98c4f0c96ba6fd47576181c9783e833f9bdeccc745dcab276dc5", + "tinysecurity-module-0.18.4-macos-26-arm64.tar.gz", + "107f42a9cedaae3a95edf09c82818ad85195e7f0668cf1255b51ee4fbc8ac26e", ), ( "macos-26-x86_64", - "tinysecurity-module-0.18.2-macos-26-x86_64.tar.gz", - "10575824c14ea3503170420523ecdb6b3fa33cecb85f9ff3d36817666bb7833e", + "tinysecurity-module-0.18.4-macos-26-x86_64.tar.gz", + "b408ab2832246c1c66630c21ad2a274d6d6592a0f3eaf59039aa517e9955d8a4", ), ( "ubuntu-22.04-arm64", - "tinysecurity-module-0.18.2-ubuntu-22.04-arm64.tar.gz", - "34c3ef7b6fde18d525ae27fe09716ad2775a91b3152663a1f72b88a0da15e325", + "tinysecurity-module-0.18.4-ubuntu-22.04-arm64.tar.gz", + "f406c66e69817160527b55cd037e5421ddaadbb586702014e9c78d04622de991", ), ( "ubuntu-22.04-x86_64", - "tinysecurity-module-0.18.2-ubuntu-22.04-x86_64.tar.gz", - "000e9a3a07a8388fee3a6b823615998959d5255e584526b978b653959fad8a30", + "tinysecurity-module-0.18.4-ubuntu-22.04-x86_64.tar.gz", + "d56513cfc8d3f0ad2552abf31918365e3bbbdb700010a03e3273c79d6ac53b06", ), ( "ubuntu-24.04-arm64", - "tinysecurity-module-0.18.2-ubuntu-24.04-arm64.tar.gz", - "a91db19a360840fd5f8a7c341ef4856fcdc25db98cc597b7acdd80ac075ab046", + "tinysecurity-module-0.18.4-ubuntu-24.04-arm64.tar.gz", + "61cb28f3ebc5bfb77503b20abf128a4dbf55f2c5ba9f826ba240edf8bd51ff2c", ), ( "ubuntu-24.04-x86_64", - "tinysecurity-module-0.18.2-ubuntu-24.04-x86_64.tar.gz", - "4c8d90347c37293d5ea773245e0ce9dda4a18234117736757564beeffea5f5fa", + "tinysecurity-module-0.18.4-ubuntu-24.04-x86_64.tar.gz", + "2e51299127281ae7c524c606590bb41ae2f635536c63791abe327d7f6abed0ba", ), ( "windows-11-arm64", - "tinysecurity-module-0.18.2-windows-11-arm64.zip", - "dc6e7b53e7bf65c9adea251d0f1f5852a89f0588c782dbdb6ac0bab08a33c8ef", + "tinysecurity-module-0.18.4-windows-11-arm64.zip", + "825d2fde75cea1ffb11ff88cc037d1ec9428d784b2d5041f5eec828179f92020", ), ( "windows-2022-x86_64", - "tinysecurity-module-0.18.2-windows-2022-x86_64.zip", - "105ccd4d6fc2787cefaedba2dcc2f5e40129c0b4759e41095099322da5d6058b", + "tinysecurity-module-0.18.4-windows-2022-x86_64.zip", + "8aa5719147a32209f14f9ad9fd4300e9c114a56dfe31d8f59d019b7540b0f111", ), ( "windows-2025-x86_64", - "tinysecurity-module-0.18.2-windows-2025-x86_64.zip", - "2b41ef005c4d0756233451ca8667fdce492b73a85234bd7f4e2af06949130b70", + "tinysecurity-module-0.18.4-windows-2025-x86_64.zip", + "fe1f64a199a820d5b58347eea41e29109096b62d81d00e0ed5df083a6fd5005a", ), ]; published.sort_unstable(); diff --git a/scripts/ci/security-native-fixture.sh b/scripts/ci/security-native-fixture.sh index 28554646b6..24cc858cb9 100644 --- a/scripts/ci/security-native-fixture.sh +++ b/scripts/ci/security-native-fixture.sh @@ -51,8 +51,8 @@ export OPENHUMAN_MODULE_PATH="$module_dir${OPENHUMAN_MODULE_PATH:+:$OPENHUMAN_MO core_features="$(scripts/ci/product-features.sh | sed 's/,os-keyring//' | sed 's/,security-module//')" security_pin="$(git -C vendor/tinysecurity rev-parse HEAD)" -release_source="$(git -C vendor/tinysecurity rev-parse 5a45177b818e32465307cfe4ba60121bb77c4364)" -printf 'TinySecurity fork pin: %s\nPublished v0.18.2 source: %s\n' "$security_pin" "$release_source" +release_source="$(git -C vendor/tinysecurity rev-parse b53eceb948bd8dedce2176af6f0ec7bb1bd74151)" +printf 'TinySecurity pin: %s\nPublished v0.18.4 source: %s\n' "$security_pin" "$release_source" git -C vendor/tinysecurity merge-base --is-ancestor "$release_source" "$security_pin" # Prove the library builds without the new gate before exercising it enabled. diff --git a/tests/security_native_fixture.rs b/tests/security_native_fixture.rs index 3f2840e444..6e8f614a9c 100644 --- a/tests/security_native_fixture.rs +++ b/tests/security_native_fixture.rs @@ -180,7 +180,7 @@ async fn native_fixture_exercises_the_pinned_release_contracts() { .await .expect("the loaded module should answer its typed policy-info contract"); - assert_eq!(info.contract_version, (1, 33)); + assert_eq!(info.contract_version, (1, 35)); reinitialize(&config) .await @@ -189,7 +189,7 @@ async fn native_fixture_exercises_the_pinned_release_contracts() { .policy_info() .await .expect("the reinitialized module should continue answering policy info"); - assert_eq!(reinitialized_info.contract_version, (1, 33)); + assert_eq!(reinitialized_info.contract_version, (1, 35)); let redacted = client .redact(RedactMode::Text, "token=sk-ant-example-secret-value") diff --git a/vendor/tinysecurity b/vendor/tinysecurity index d36f2b30a6..b53eceb948 160000 --- a/vendor/tinysecurity +++ b/vendor/tinysecurity @@ -1 +1 @@ -Subproject commit d36f2b30a62d824c36121365772e691be8bccf3d +Subproject commit b53eceb948bd8dedce2176af6f0ec7bb1bd74151 From ea564da48f48c4590d419974ff143db10efd05cc Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 16:23:56 +0530 Subject: [PATCH 05/12] chore(modules): pin the tinycomputer 0.16.0 release Re-pin the tinycomputer registry record to the published v0.16.0 release: version, release URL and every per-platform archive digest from its checksum.toml, checked against the downloaded archives. vendor/tinycomputer already sits on the v0.16.0 tag commit. Update the release test to the new pins and contract 2.29. --- .../src/modules/registry/records_computer.rs | 72 +++++++++---------- .../registry_computer_release_tests.rs | 72 +++++++++---------- 2 files changed, 72 insertions(+), 72 deletions(-) diff --git a/crates/openhuman-core/src/modules/registry/records_computer.rs b/crates/openhuman-core/src/modules/registry/records_computer.rs index c8f92924ca..a96fa59f69 100644 --- a/crates/openhuman-core/src/modules/registry/records_computer.rs +++ b/crates/openhuman-core/src/modules/registry/records_computer.rs @@ -8,112 +8,112 @@ pub(crate) const TINYCOMPUTER: ModuleRecord = ModuleRecord { description: "Permission-aware desktop and browser observation and control", bus_name: names::INTERFACE, object_path: names::OBJECT_PATH, - version: "0.15.2", - release_url: "https://github.com/tinyhumansai/tinycomputer/releases/tag/v0.15.2", + version: "0.16.0", + release_url: "https://github.com/tinyhumansai/tinycomputer/releases/tag/v0.16.0", // All seventeen published archives were checked against checksum.toml // and GitHub asset digests before pinning. Linux permission probes are // part of the shipped voice surface alongside macOS and Windows. assets: &[ PlatformAsset { host_key: "archlinux-arm64", - archive: "tinycomputer-0.15.2-archlinux-arm64.tar.gz", - sha256: "c04621d08c6fdea41a933c0565af17284b00e2f59cfd6d4f98d0281570c7ad2b", + archive: "tinycomputer-0.16.0-archlinux-arm64.tar.gz", + sha256: "6dc3229b014f15560fd7dd793fc877b653b88571db9963dc919be8866e58a4f1", library_sha256: None, }, PlatformAsset { host_key: "archlinux-x86_64", - archive: "tinycomputer-0.15.2-archlinux-x86_64.tar.gz", - sha256: "eb95063fe8e8694f121a008feb6f4db68eae5e50bce19ab2f85abe82bb1d0e6d", + archive: "tinycomputer-0.16.0-archlinux-x86_64.tar.gz", + sha256: "3f19184a00aefeb218aa1dac6ecb534be0ef9973becceb10506ac075e9911b9d", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-arm64", - archive: "tinycomputer-0.15.2-fedora-43-arm64.tar.gz", - sha256: "227680999f0f970a87709e598df2bcd73b0330485f32b5422313cd72a56569d7", + archive: "tinycomputer-0.16.0-fedora-43-arm64.tar.gz", + sha256: "7c0cc88be5169950dbf5f5677df8431c8c76c747cdc4a78d64c7b666e6ad121c", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-x86_64", - archive: "tinycomputer-0.15.2-fedora-43-x86_64.tar.gz", - sha256: "aa729616e40aaeeb2246c2748e6e2b5429afa11690b15c571b11a3d17c21330d", + archive: "tinycomputer-0.16.0-fedora-43-x86_64.tar.gz", + sha256: "a203aef368219cf4483cd023d92b712b7ad38e1517074639c7ea38d9ccccbac3", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-arm64", - archive: "tinycomputer-0.15.2-fedora-44-arm64.tar.gz", - sha256: "47b3ab7b479a5b9794940b2cb39b7b8c5fcf9dfcfa9797788af990e44bc8ebf3", + archive: "tinycomputer-0.16.0-fedora-44-arm64.tar.gz", + sha256: "05c4dc081306af96846f9196741cfadceaee51a9c221c210fc7486649f690bc3", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-x86_64", - archive: "tinycomputer-0.15.2-fedora-44-x86_64.tar.gz", - sha256: "f8acff1ae49334b26649eb3be52ad2695d845fa480ef4c1fc2f663c07b16b0d5", + archive: "tinycomputer-0.16.0-fedora-44-x86_64.tar.gz", + sha256: "dd249cf9cfd0854e0493b4100a40b767e22e20b0cc316e4529625c5b3d500279", library_sha256: None, }, PlatformAsset { host_key: "macos-15-arm64", - archive: "tinycomputer-0.15.2-macos-15-arm64.tar.gz", - sha256: "ef5c4158b93888bcea1ea0f9a6f88986d09867da0779875e0ecfef927f7e9e7c", + archive: "tinycomputer-0.16.0-macos-15-arm64.tar.gz", + sha256: "97ef1ef6134d36bc25c770efcbedd239374d43e615ec57cf91f5eb44ac314265", library_sha256: None, }, PlatformAsset { host_key: "macos-15-x86_64", - archive: "tinycomputer-0.15.2-macos-15-x86_64.tar.gz", - sha256: "dc1329f968b885fc1e10919f5fe70d3d77a9601b5f9849c013eb6938a81ef39b", + archive: "tinycomputer-0.16.0-macos-15-x86_64.tar.gz", + sha256: "5bafc90beff673f66b1442cb0ffb41acb33512431ed167833d0f0de64f8b6f94", library_sha256: None, }, PlatformAsset { host_key: "macos-26-arm64", - archive: "tinycomputer-0.15.2-macos-26-arm64.tar.gz", - sha256: "d6ae6cfd96b63ed079aee6cb1b57d739a5a90be28f46b2bcbbfcff8e58c844f4", + archive: "tinycomputer-0.16.0-macos-26-arm64.tar.gz", + sha256: "a028876b857e62a8a55b850811a0d20f85dd0a2bb8a6533c2c4008a7062b4a35", library_sha256: None, }, PlatformAsset { host_key: "macos-26-x86_64", - archive: "tinycomputer-0.15.2-macos-26-x86_64.tar.gz", - sha256: "f58e76987f70b4a1823763406a081d18cfd4b10b81ee54556c6ee242c68ac8e8", + archive: "tinycomputer-0.16.0-macos-26-x86_64.tar.gz", + sha256: "1604838f9793dd1e467ff299b2beda47aedeb94810fb8ac857629fdd061c0812", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-arm64", - archive: "tinycomputer-0.15.2-ubuntu-22.04-arm64.tar.gz", - sha256: "fd5bab476db4b2f480bdd4200fd79cfffdba4d0151baf98eb1a9c7fe42345eba", + archive: "tinycomputer-0.16.0-ubuntu-22.04-arm64.tar.gz", + sha256: "5cce23246a32c23cc6a6d0adf530126e65eaaeaaa864e5cc7b20b63c92ac29e0", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-x86_64", - archive: "tinycomputer-0.15.2-ubuntu-22.04-x86_64.tar.gz", - sha256: "2ff37fc1b586648fb1e694f69634085a87527c66430bc15afaec24b34a7cf318", + archive: "tinycomputer-0.16.0-ubuntu-22.04-x86_64.tar.gz", + sha256: "dbe66666a9ace5e4c1751ba191a12aa2f53e608afbd5f7383e6277d82238407b", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-arm64", - archive: "tinycomputer-0.15.2-ubuntu-24.04-arm64.tar.gz", - sha256: "b79143f18b74b293c6c4860d0a44dc06af3edf5b6ea2499f7d6e28135fd7ef35", + archive: "tinycomputer-0.16.0-ubuntu-24.04-arm64.tar.gz", + sha256: "4a5039effb89b49cc6650c66c5f32efa898c8cd0d18e2d50b3275d4c1cec372d", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-x86_64", - archive: "tinycomputer-0.15.2-ubuntu-24.04-x86_64.tar.gz", - sha256: "238b0f7c561b9f420b8672ab20294dc7953139c9f98f4d5624013a60260d19cf", + archive: "tinycomputer-0.16.0-ubuntu-24.04-x86_64.tar.gz", + sha256: "3144d4dd90f7c4886e4eff899210f2fc8b6f8235e4d14c8c03454f356d00d062", library_sha256: None, }, PlatformAsset { host_key: "windows-11-arm64", - archive: "tinycomputer-0.15.2-windows-11-arm64.zip", - sha256: "f5cd876112e18670ebb076a2895c9e4a13b014d2966ae833cc7818b6e222d1c0", + archive: "tinycomputer-0.16.0-windows-11-arm64.zip", + sha256: "857f8723b4624f5f29707797310de7e95439ac09ef0c7e46b7a3aab019805121", library_sha256: None, }, PlatformAsset { host_key: "windows-2022-x86_64", - archive: "tinycomputer-0.15.2-windows-2022-x86_64.zip", - sha256: "371b34e4a47afb9dbb1dd03e4975210c9931c5e5c2b2909e3098ba32f6ae7511", + archive: "tinycomputer-0.16.0-windows-2022-x86_64.zip", + sha256: "ec8ce6ef45c8b399b5b3ff6eb93ff5d74f714ad93e7cfc228e52e59fcbf00f1b", library_sha256: None, }, PlatformAsset { host_key: "windows-2025-x86_64", - archive: "tinycomputer-0.15.2-windows-2025-x86_64.zip", - sha256: "0bb7ca5f9b7501ee1662899e6a3b43557e9aadc2e136fd227fb4872b5f4b7e89", + archive: "tinycomputer-0.16.0-windows-2025-x86_64.zip", + sha256: "68133c2d864e8f8cbfb5773bd7afd7663e3d2ea0fd731f82570bbb961b37e694", library_sha256: None, }, ], diff --git a/crates/openhuman-core/src/modules/registry_computer_release_tests.rs b/crates/openhuman-core/src/modules/registry_computer_release_tests.rs index 94f958e05f..2bb51ca256 100644 --- a/crates/openhuman-core/src/modules/registry_computer_release_tests.rs +++ b/crates/openhuman-core/src/modules/registry_computer_release_tests.rs @@ -5,8 +5,8 @@ fn tinycomputer_registry_matches_bus_contract_and_published_release() { let desktop = find("tinycomputer").expect("compiled computer module"); assert_eq!(desktop.bus_name, tinycomputer_bus::names::INTERFACE); assert_eq!(desktop.object_path, tinycomputer_bus::names::OBJECT_PATH); - assert_eq!(desktop.version, "0.15.2"); - assert_eq!(tinycomputer_bus::CONTRACT_VERSION, (2, 28)); + assert_eq!(desktop.version, "0.16.0"); + assert_eq!(tinycomputer_bus::CONTRACT_VERSION, (2, 29)); let mut actual = desktop .assets @@ -16,88 +16,88 @@ fn tinycomputer_registry_matches_bus_contract_and_published_release() { let mut published = [ ( "archlinux-arm64", - "tinycomputer-0.15.2-archlinux-arm64.tar.gz", - "c04621d08c6fdea41a933c0565af17284b00e2f59cfd6d4f98d0281570c7ad2b", + "tinycomputer-0.16.0-archlinux-arm64.tar.gz", + "6dc3229b014f15560fd7dd793fc877b653b88571db9963dc919be8866e58a4f1", ), ( "archlinux-x86_64", - "tinycomputer-0.15.2-archlinux-x86_64.tar.gz", - "eb95063fe8e8694f121a008feb6f4db68eae5e50bce19ab2f85abe82bb1d0e6d", + "tinycomputer-0.16.0-archlinux-x86_64.tar.gz", + "3f19184a00aefeb218aa1dac6ecb534be0ef9973becceb10506ac075e9911b9d", ), ( "fedora-43-arm64", - "tinycomputer-0.15.2-fedora-43-arm64.tar.gz", - "227680999f0f970a87709e598df2bcd73b0330485f32b5422313cd72a56569d7", + "tinycomputer-0.16.0-fedora-43-arm64.tar.gz", + "7c0cc88be5169950dbf5f5677df8431c8c76c747cdc4a78d64c7b666e6ad121c", ), ( "fedora-43-x86_64", - "tinycomputer-0.15.2-fedora-43-x86_64.tar.gz", - "aa729616e40aaeeb2246c2748e6e2b5429afa11690b15c571b11a3d17c21330d", + "tinycomputer-0.16.0-fedora-43-x86_64.tar.gz", + "a203aef368219cf4483cd023d92b712b7ad38e1517074639c7ea38d9ccccbac3", ), ( "fedora-44-arm64", - "tinycomputer-0.15.2-fedora-44-arm64.tar.gz", - "47b3ab7b479a5b9794940b2cb39b7b8c5fcf9dfcfa9797788af990e44bc8ebf3", + "tinycomputer-0.16.0-fedora-44-arm64.tar.gz", + "05c4dc081306af96846f9196741cfadceaee51a9c221c210fc7486649f690bc3", ), ( "fedora-44-x86_64", - "tinycomputer-0.15.2-fedora-44-x86_64.tar.gz", - "f8acff1ae49334b26649eb3be52ad2695d845fa480ef4c1fc2f663c07b16b0d5", + "tinycomputer-0.16.0-fedora-44-x86_64.tar.gz", + "dd249cf9cfd0854e0493b4100a40b767e22e20b0cc316e4529625c5b3d500279", ), ( "macos-15-arm64", - "tinycomputer-0.15.2-macos-15-arm64.tar.gz", - "ef5c4158b93888bcea1ea0f9a6f88986d09867da0779875e0ecfef927f7e9e7c", + "tinycomputer-0.16.0-macos-15-arm64.tar.gz", + "97ef1ef6134d36bc25c770efcbedd239374d43e615ec57cf91f5eb44ac314265", ), ( "macos-15-x86_64", - "tinycomputer-0.15.2-macos-15-x86_64.tar.gz", - "dc1329f968b885fc1e10919f5fe70d3d77a9601b5f9849c013eb6938a81ef39b", + "tinycomputer-0.16.0-macos-15-x86_64.tar.gz", + "5bafc90beff673f66b1442cb0ffb41acb33512431ed167833d0f0de64f8b6f94", ), ( "macos-26-arm64", - "tinycomputer-0.15.2-macos-26-arm64.tar.gz", - "d6ae6cfd96b63ed079aee6cb1b57d739a5a90be28f46b2bcbbfcff8e58c844f4", + "tinycomputer-0.16.0-macos-26-arm64.tar.gz", + "a028876b857e62a8a55b850811a0d20f85dd0a2bb8a6533c2c4008a7062b4a35", ), ( "macos-26-x86_64", - "tinycomputer-0.15.2-macos-26-x86_64.tar.gz", - "f58e76987f70b4a1823763406a081d18cfd4b10b81ee54556c6ee242c68ac8e8", + "tinycomputer-0.16.0-macos-26-x86_64.tar.gz", + "1604838f9793dd1e467ff299b2beda47aedeb94810fb8ac857629fdd061c0812", ), ( "ubuntu-22.04-arm64", - "tinycomputer-0.15.2-ubuntu-22.04-arm64.tar.gz", - "fd5bab476db4b2f480bdd4200fd79cfffdba4d0151baf98eb1a9c7fe42345eba", + "tinycomputer-0.16.0-ubuntu-22.04-arm64.tar.gz", + "5cce23246a32c23cc6a6d0adf530126e65eaaeaaa864e5cc7b20b63c92ac29e0", ), ( "ubuntu-22.04-x86_64", - "tinycomputer-0.15.2-ubuntu-22.04-x86_64.tar.gz", - "2ff37fc1b586648fb1e694f69634085a87527c66430bc15afaec24b34a7cf318", + "tinycomputer-0.16.0-ubuntu-22.04-x86_64.tar.gz", + "dbe66666a9ace5e4c1751ba191a12aa2f53e608afbd5f7383e6277d82238407b", ), ( "ubuntu-24.04-arm64", - "tinycomputer-0.15.2-ubuntu-24.04-arm64.tar.gz", - "b79143f18b74b293c6c4860d0a44dc06af3edf5b6ea2499f7d6e28135fd7ef35", + "tinycomputer-0.16.0-ubuntu-24.04-arm64.tar.gz", + "4a5039effb89b49cc6650c66c5f32efa898c8cd0d18e2d50b3275d4c1cec372d", ), ( "ubuntu-24.04-x86_64", - "tinycomputer-0.15.2-ubuntu-24.04-x86_64.tar.gz", - "238b0f7c561b9f420b8672ab20294dc7953139c9f98f4d5624013a60260d19cf", + "tinycomputer-0.16.0-ubuntu-24.04-x86_64.tar.gz", + "3144d4dd90f7c4886e4eff899210f2fc8b6f8235e4d14c8c03454f356d00d062", ), ( "windows-11-arm64", - "tinycomputer-0.15.2-windows-11-arm64.zip", - "f5cd876112e18670ebb076a2895c9e4a13b014d2966ae833cc7818b6e222d1c0", + "tinycomputer-0.16.0-windows-11-arm64.zip", + "857f8723b4624f5f29707797310de7e95439ac09ef0c7e46b7a3aab019805121", ), ( "windows-2022-x86_64", - "tinycomputer-0.15.2-windows-2022-x86_64.zip", - "371b34e4a47afb9dbb1dd03e4975210c9931c5e5c2b2909e3098ba32f6ae7511", + "tinycomputer-0.16.0-windows-2022-x86_64.zip", + "ec8ce6ef45c8b399b5b3ff6eb93ff5d74f714ad93e7cfc228e52e59fcbf00f1b", ), ( "windows-2025-x86_64", - "tinycomputer-0.15.2-windows-2025-x86_64.zip", - "0bb7ca5f9b7501ee1662899e6a3b43557e9aadc2e136fd227fb4872b5f4b7e89", + "tinycomputer-0.16.0-windows-2025-x86_64.zip", + "68133c2d864e8f8cbfb5773bd7afd7663e3d2ea0fd731f82570bbb961b37e694", ), ]; assert_eq!(desktop.assets.len(), published.len()); From ec3e01a0ff04360fa7c27686df89949b27348210 Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 16:27:50 +0530 Subject: [PATCH 06/12] chore(modules): pin the tinyeventqueues 0.2.4 release Re-pin the tinyeventqueues registry record to the published v0.2.4 release: version, release URL and every per-platform archive digest from its checksum.toml, checked against the downloaded archives and their extracted libraries. vendor/tinyeventqueues moves to the v0.2.4 tag commit, which bumps tinyeventqueues and tinyeventqueues-bus to 0.2.4 in the lockfiles. --- Cargo.lock | 4 +- crates/openhuman-app/Cargo.lock | 2 +- .../modules/registry/records_eventqueues.rs | 68 +++++++++---------- vendor/tinyeventqueues | 2 +- 4 files changed, 38 insertions(+), 38 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e4d02e05ca..0c3bdd9903 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -9955,7 +9955,7 @@ dependencies = [ [[package]] name = "tinyeventqueues" -version = "0.2.3" +version = "0.2.4" dependencies = [ "async-trait", "data-encoding", @@ -9976,7 +9976,7 @@ dependencies = [ [[package]] name = "tinyeventqueues-bus" -version = "0.2.3" +version = "0.2.4" dependencies = [ "serde", "serde_json", diff --git a/crates/openhuman-app/Cargo.lock b/crates/openhuman-app/Cargo.lock index c710339a41..0466cadb91 100644 --- a/crates/openhuman-app/Cargo.lock +++ b/crates/openhuman-app/Cargo.lock @@ -7880,7 +7880,7 @@ dependencies = [ [[package]] name = "tinyeventqueues-bus" -version = "0.2.3" +version = "0.2.4" dependencies = [ "serde", "serde_json", diff --git a/crates/openhuman-core/src/modules/registry/records_eventqueues.rs b/crates/openhuman-core/src/modules/registry/records_eventqueues.rs index 8b2e7177c1..fe2c850365 100644 --- a/crates/openhuman-core/src/modules/registry/records_eventqueues.rs +++ b/crates/openhuman-core/src/modules/registry/records_eventqueues.rs @@ -11,103 +11,103 @@ pub(crate) const TINYEVENTQUEUES: ModuleRecord = ModuleRecord { description: "Durable inbound event queues: dedupe, filtering, pacing and retry before triage", bus_name: tinyeventqueues_bus::INTERFACE, object_path: tinyeventqueues_bus::OBJECT_PATH, - version: "0.2.3", - release_url: "https://github.com/tinyhumansai/tinyeventqueues/releases/tag/v0.2.3", + version: "0.2.4", + release_url: "https://github.com/tinyhumansai/tinyeventqueues/releases/tag/v0.2.4", assets: &[ PlatformAsset { host_key: "archlinux-rolling-x86_64", - archive: "tinyeventqueues-0.2.3-archlinux-rolling-x86_64.tar.gz", - sha256: "c716df10e0db7f4561a2481c84adda66fc87dc91872d8a3719062a0f2ff3f9ab", + archive: "tinyeventqueues-0.2.4-archlinux-rolling-x86_64.tar.gz", + sha256: "69a11fdf607e8d5529eed23f5d782bda75aaa6f9992db473b086d9082f591964", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-arm64", - archive: "tinyeventqueues-0.2.3-fedora-43-arm64.tar.gz", - sha256: "5cbdbca68daaa3d6202115f4c1fdd2f0e486f7bae55e953f3214c9187e535b5c", + archive: "tinyeventqueues-0.2.4-fedora-43-arm64.tar.gz", + sha256: "636f87a164c4dfc28bc3d06968812b6d7f3c2c76b17f0ac8119d65ddd6b12ab8", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-x86_64", - archive: "tinyeventqueues-0.2.3-fedora-43-x86_64.tar.gz", - sha256: "1973ce80a2d98537c9354ded5bd45c89b462df2af4ebd952b04d80d6b280948a", + archive: "tinyeventqueues-0.2.4-fedora-43-x86_64.tar.gz", + sha256: "f156684dc51868b78920f582c8f4245d2b997e8a2ffe405cdba484339c5e5e94", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-arm64", - archive: "tinyeventqueues-0.2.3-fedora-44-arm64.tar.gz", - sha256: "20ae7c7e0beea8383199348a456dfb7c5e6b2fb6be8a2f7b6168cb78bfb81cbb", + archive: "tinyeventqueues-0.2.4-fedora-44-arm64.tar.gz", + sha256: "509e8f590e769f61f43545c3555815284ac0e5b571e48fefe13bc55bdc9daad1", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-x86_64", - archive: "tinyeventqueues-0.2.3-fedora-44-x86_64.tar.gz", - sha256: "24ef4bdd752cf904951ccf1a403644b9c327b98307ff3c4b176c4054cf62cb76", + archive: "tinyeventqueues-0.2.4-fedora-44-x86_64.tar.gz", + sha256: "455983dbd11165b119cfcf0999bd1e0411448b0228ab08dd7d1af2c9bc76024c", library_sha256: None, }, PlatformAsset { host_key: "macos-15-arm64", - archive: "tinyeventqueues-0.2.3-macos-15-arm64.tar.gz", - sha256: "d3e40cad7123858202df194016770d0fd33e456ca54d66b4b834f3bde94c36cd", + archive: "tinyeventqueues-0.2.4-macos-15-arm64.tar.gz", + sha256: "ade233944a750d0c74bd1f05938d35d600d902a2c5b0757629962aa75588115b", library_sha256: None, }, PlatformAsset { host_key: "macos-15-x86_64", - archive: "tinyeventqueues-0.2.3-macos-15-x86_64.tar.gz", - sha256: "bfb06657af89b4e390ac472d313515f575f316af9e37b6ec82355eb4c591d387", + archive: "tinyeventqueues-0.2.4-macos-15-x86_64.tar.gz", + sha256: "7bb4fb66dd1f458bc369920adf88475915d1117ca5257d5dccf31a5acd41d28f", library_sha256: None, }, PlatformAsset { host_key: "macos-26-arm64", - archive: "tinyeventqueues-0.2.3-macos-26-arm64.tar.gz", - sha256: "3193d5c030e94da14b21d22ab898a138f8c7c123ad126494e9a900f03dc86b9d", + archive: "tinyeventqueues-0.2.4-macos-26-arm64.tar.gz", + sha256: "a8d6fc02f5449bb213d121881a5070efd365fdf8b6d579702d1fc33ee69dda4c", library_sha256: None, }, PlatformAsset { host_key: "macos-26-x86_64", - archive: "tinyeventqueues-0.2.3-macos-26-x86_64.tar.gz", - sha256: "904bf1831f2ccd3ee39dfbd76b217ff12960b07ee34e505345e487815e7a5cbb", + archive: "tinyeventqueues-0.2.4-macos-26-x86_64.tar.gz", + sha256: "65b32c021c8cb42c6bedd16c3df580ae5a2b6ea6e9a2392fd0dba48395396729", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-arm64", - archive: "tinyeventqueues-0.2.3-ubuntu-22.04-arm64.tar.gz", - sha256: "aea910c100358633b9c15b19ec822f49de33d686f3c762d35ab6514274ec3e32", + archive: "tinyeventqueues-0.2.4-ubuntu-22.04-arm64.tar.gz", + sha256: "d6159231731150c5e284f5f9fe6905aeb88d6881be26e1f8a64e1517f577fa00", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-x86_64", - archive: "tinyeventqueues-0.2.3-ubuntu-22.04-x86_64.tar.gz", - sha256: "326ab638b2a58615dde08b1caf25548768227e2a13a93f49d84e10c21369ff52", + archive: "tinyeventqueues-0.2.4-ubuntu-22.04-x86_64.tar.gz", + sha256: "df4d30b8833cdf50db54608ceee5062033121ad5edb649da1218488dc6ec5cb6", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-arm64", - archive: "tinyeventqueues-0.2.3-ubuntu-24.04-arm64.tar.gz", - sha256: "aace0e94d82aca79a473346364ed6c54282356a0a1698cff00016983dc778a53", + archive: "tinyeventqueues-0.2.4-ubuntu-24.04-arm64.tar.gz", + sha256: "e3b967bf4cc1d73b3e909535f5be077a9e862579d25e05a412ad67fdea8fa82b", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-x86_64", - archive: "tinyeventqueues-0.2.3-ubuntu-24.04-x86_64.tar.gz", - sha256: "b86d1fdbd56c569ab184b7a10fab9e07cf3c895b60b43585492ce89a603fd6e9", + archive: "tinyeventqueues-0.2.4-ubuntu-24.04-x86_64.tar.gz", + sha256: "8a02f90dae9295a372042b6e4f15023948d8aedec99391e11e165fc643bdd0b0", library_sha256: None, }, PlatformAsset { host_key: "windows-11-arm64", - archive: "tinyeventqueues-0.2.3-windows-11-arm64.zip", - sha256: "7d0b10558977d44edb54cd0526cf7fe38cee5c48c6697fbb1770680e813e80e5", + archive: "tinyeventqueues-0.2.4-windows-11-arm64.zip", + sha256: "e0db90d65ce1f463d5dd6fab298344807a0129a58471c7e035eb8b61070e8f5f", library_sha256: None, }, PlatformAsset { host_key: "windows-2022-x86_64", - archive: "tinyeventqueues-0.2.3-windows-2022-x86_64.zip", - sha256: "79237c2ecada6ccf4adeadbe32a003369f041f5d4028ca1b433fbd6193e4dae9", + archive: "tinyeventqueues-0.2.4-windows-2022-x86_64.zip", + sha256: "f70d618f903cdc98f5f8853cc5135583732a67539a77b373eb90aa14b0e9b12f", library_sha256: None, }, PlatformAsset { host_key: "windows-2025-x86_64", - archive: "tinyeventqueues-0.2.3-windows-2025-x86_64.zip", - sha256: "93ff2b16fbfc545b986d1e2b92f4448d525bd8e90a44a8de80c2a8a4826007e0", + archive: "tinyeventqueues-0.2.4-windows-2025-x86_64.zip", + sha256: "591b2d559e6807b4c295dc4275827bdede573fb9ce74bb7c0ab65921a192c398", library_sha256: None, }, ], diff --git a/vendor/tinyeventqueues b/vendor/tinyeventqueues index d4519923ee..e041b28ebe 160000 --- a/vendor/tinyeventqueues +++ b/vendor/tinyeventqueues @@ -1 +1 @@ -Subproject commit d4519923ee4d9faed63f526176c610254963f9c9 +Subproject commit e041b28ebe270ef66623d8c0d5f91796cb3fdbc1 From 2194c35868fdcaae7f72f9524a937e65beebccba Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 17:23:26 +0530 Subject: [PATCH 07/12] chore(modules): pin the tinywallet 0.28.0 release Re-pin the tinywallet registry record to the published v0.28.0 release: version, release URL and every per-platform archive digest from its checksum.toml, checked against the downloaded archives. Refresh the embedded wallet library checksums from the release's library_sha256, each matching its extracted library. vendor/tinywallet moves to the v0.28.0 tag commit, which bumps the tinywallet crates to 0.28.0 in the lockfiles. The wallet tests now treat the v0.28.0 Linux library as current and the v0.27.0 one as retired. --- Cargo.lock | 12 +-- crates/openhuman-app/Cargo.lock | 2 +- .../modules/registry/records_docs_wallet.rs | 72 +++++++++--------- .../src/modules/registry_tests.rs | 74 +++++++++---------- crates/openhuman-core/src/modules/wallet.rs | 70 +++++++++--------- .../src/modules/wallet_tests.rs | 5 +- vendor/tinywallet | 2 +- 7 files changed, 119 insertions(+), 118 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 0c3bdd9903..004c1c49c9 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -10913,7 +10913,7 @@ dependencies = [ [[package]] name = "tinywallet" -version = "0.27.0" +version = "0.28.0" dependencies = [ "bitcoin", "bs58", @@ -10935,7 +10935,7 @@ dependencies = [ [[package]] name = "tinywallet-bus" -version = "0.27.0" +version = "0.28.0" dependencies = [ "serde", "serde_json", @@ -10944,7 +10944,7 @@ dependencies = [ [[package]] name = "tinywallet-crypto" -version = "0.27.0" +version = "0.28.0" dependencies = [ "async-trait", "bech32 0.12.0", @@ -10960,7 +10960,7 @@ dependencies = [ [[package]] name = "tinywallet-module" -version = "0.27.0" +version = "0.28.0" dependencies = [ "async-trait", "bitcoin", @@ -10989,7 +10989,7 @@ dependencies = [ [[package]] name = "tinywallet-web3" -version = "0.27.0" +version = "0.28.0" dependencies = [ "async-trait", "base64 0.23.1", @@ -11008,7 +11008,7 @@ dependencies = [ [[package]] name = "tinywallet-x402" -version = "0.27.0" +version = "0.28.0" dependencies = [ "async-trait", "base64 0.23.1", diff --git a/crates/openhuman-app/Cargo.lock b/crates/openhuman-app/Cargo.lock index 0466cadb91..597fe6f9ed 100644 --- a/crates/openhuman-app/Cargo.lock +++ b/crates/openhuman-app/Cargo.lock @@ -8499,7 +8499,7 @@ dependencies = [ [[package]] name = "tinywallet-bus" -version = "0.27.0" +version = "0.28.0" dependencies = [ "serde", "serde_json", diff --git a/crates/openhuman-core/src/modules/registry/records_docs_wallet.rs b/crates/openhuman-core/src/modules/registry/records_docs_wallet.rs index ac83b697a9..62fb5a5602 100644 --- a/crates/openhuman-core/src/modules/registry/records_docs_wallet.rs +++ b/crates/openhuman-core/src/modules/registry/records_docs_wallet.rs @@ -125,109 +125,109 @@ pub(crate) const TINYWALLET: ModuleRecord = ModuleRecord { description: "Transaction building and assembly for Bitcoin, EVM, Solana and Tron", bus_name: tinywallet_bus::names::BUS_NAME, object_path: tinywallet_bus::names::OBJECT_PATH, - version: "0.27.0", - release_url: "https://github.com/tinyhumansai/tinywallet/releases/tag/v0.27.0", + version: "0.28.0", + release_url: "https://github.com/tinyhumansai/tinywallet/releases/tag/v0.28.0", assets: &[ PlatformAsset { host_key: "archlinux-arm64", - archive: "tinywallet-module-0.27.0-archlinux-arm64.tar.gz", - sha256: "739b73d4fe246b108d3d8c15b96e358219e3357554663054bde9b4cfcc1e1547", + archive: "tinywallet-module-0.28.0-archlinux-arm64.tar.gz", + sha256: "da90ff7b53c2a229896d5a4ab0e3121727488f37a78551b3207a9c78bc4a09a6", library_sha256: None, }, PlatformAsset { host_key: "archlinux-x86_64", - archive: "tinywallet-module-0.27.0-archlinux-x86_64.tar.gz", - sha256: "30ad7f2de3d10d584d677412cd1fa6fc124083fb28ad5c58fcdb63a8c3d88f79", + archive: "tinywallet-module-0.28.0-archlinux-x86_64.tar.gz", + sha256: "1e80c400e50643d938e25b45aa0327de170f66f39fe65645a9d5ccb31b5f4a88", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-arm64", - archive: "tinywallet-module-0.27.0-fedora-43-arm64.tar.gz", - sha256: "e2a185ff78c0f636a1ccbc7a5d6d91e23121394fa5d64683058f33e24b414771", + archive: "tinywallet-module-0.28.0-fedora-43-arm64.tar.gz", + sha256: "fb2b630ae47e64bd10a975861e647a939bfaa55b664c8f0706cd096779d62c3b", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-x86_64", - archive: "tinywallet-module-0.27.0-fedora-43-x86_64.tar.gz", - sha256: "28f03bfde6eb63dde25e0f6fafaf2ce25e453afdf56a5c9a3277d47bf2fe5400", + archive: "tinywallet-module-0.28.0-fedora-43-x86_64.tar.gz", + sha256: "84cc92b8775d26def86ad5073ed7315a50aae4b5aa7134a1cf485b923a32c38b", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-arm64", - archive: "tinywallet-module-0.27.0-fedora-44-arm64.tar.gz", - sha256: "574cf3773f405e282c3d42f4fb8ba8e3037e7abcd06ee63c719a134c100f9748", + archive: "tinywallet-module-0.28.0-fedora-44-arm64.tar.gz", + sha256: "14a1f4a044a7e5b246aa2df7209c31c165bf1305b38d888a540c2e438c11e202", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-x86_64", - archive: "tinywallet-module-0.27.0-fedora-44-x86_64.tar.gz", - sha256: "af05c0582364306a0bf885df059bea601044cfd40c40c7a14af043499053dc71", + archive: "tinywallet-module-0.28.0-fedora-44-x86_64.tar.gz", + sha256: "d550966866d4b3446abef6f3b19fcf6968d914579a445c8b08fff276465b9029", library_sha256: None, }, PlatformAsset { host_key: "macos-15-arm64", - archive: "tinywallet-module-0.27.0-macos-15-arm64.tar.gz", - sha256: "554375d3e45eb9332454323937c7923e34a75934a99b2185bff35503b7abeec5", + archive: "tinywallet-module-0.28.0-macos-15-arm64.tar.gz", + sha256: "c8c791b7464f1db2c6395f286cf63727b24bacb7606e318bb7dad5fa120387e1", library_sha256: None, }, PlatformAsset { host_key: "macos-15-x86_64", - archive: "tinywallet-module-0.27.0-macos-15-x86_64.tar.gz", - sha256: "ad4a098b29dedd350bd60bf4d0194fa89cc2f79bff47447f7d52b440f702730a", + archive: "tinywallet-module-0.28.0-macos-15-x86_64.tar.gz", + sha256: "b72c5f5b979302599b3a4f85b6783bd753c119e23ade819c0b1edf9ffd01d729", library_sha256: None, }, PlatformAsset { host_key: "macos-26-arm64", - archive: "tinywallet-module-0.27.0-macos-26-arm64.tar.gz", - sha256: "762c4fa1a283df5d499610314a6d35b002663e00f4b57105d56047a5d0cb83a8", + archive: "tinywallet-module-0.28.0-macos-26-arm64.tar.gz", + sha256: "b8d189befa3358f854346f3903187ef23b990b71d314a4a58539531c9212ca82", library_sha256: None, }, PlatformAsset { host_key: "macos-26-x86_64", - archive: "tinywallet-module-0.27.0-macos-26-x86_64.tar.gz", - sha256: "5973882752b659ac5ef9906fcc418e55796e3cc1375b3be141e16a624bc666c1", + archive: "tinywallet-module-0.28.0-macos-26-x86_64.tar.gz", + sha256: "9eb8990e3401b8c6d30ca08a434c64f56ff82e6bc1b6e160d27aae4d30a8c24f", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-arm64", - archive: "tinywallet-module-0.27.0-ubuntu-22.04-arm64.tar.gz", - sha256: "927227ee8d8a23a12966ccb2de972fcab07e80fb6527dad840170e4ffd64f087", + archive: "tinywallet-module-0.28.0-ubuntu-22.04-arm64.tar.gz", + sha256: "c753826827230d2ebcb044eeae91f96d1f08d945f1ef37b26030ae0e0843d60c", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-x86_64", - archive: "tinywallet-module-0.27.0-ubuntu-22.04-x86_64.tar.gz", - sha256: "a031e81172452657a506cd769a41f8702c06d80a75b72ebf6dc9a0f4a8317c25", + archive: "tinywallet-module-0.28.0-ubuntu-22.04-x86_64.tar.gz", + sha256: "02cec7d7e33112266b988be1bab6213b71193f7a183db8783dba941e62ef7b46", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-arm64", - archive: "tinywallet-module-0.27.0-ubuntu-24.04-arm64.tar.gz", - sha256: "6e055459e513707e58b4d07c836a3659a453c3753ee8c632e858930c150b66f4", + archive: "tinywallet-module-0.28.0-ubuntu-24.04-arm64.tar.gz", + sha256: "5b8dc519829098029609e224b95b2149a71cdaad240148e33c0abac71ec5dc07", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-x86_64", - archive: "tinywallet-module-0.27.0-ubuntu-24.04-x86_64.tar.gz", - sha256: "cab0be708a52e8713df7cc57dc13717e3899ce3c8ec57819741b37dc463ccfc7", + archive: "tinywallet-module-0.28.0-ubuntu-24.04-x86_64.tar.gz", + sha256: "c2bb2acd7c15b061b66d564db738aa3eac6802544fba753a6715ade541faac86", library_sha256: None, }, PlatformAsset { host_key: "windows-11-arm64", - archive: "tinywallet-module-0.27.0-windows-11-arm64.zip", - sha256: "9e458762f740e166b9b028336b6faed3762dfb71bf46eb57c71ad7e3ec2dc9d3", + archive: "tinywallet-module-0.28.0-windows-11-arm64.zip", + sha256: "02598b083ce4d7e66c6d295785b5b42535861614741b2371462847760bbd2823", library_sha256: None, }, PlatformAsset { host_key: "windows-2022-x86_64", - archive: "tinywallet-module-0.27.0-windows-2022-x86_64.zip", - sha256: "ff389c8951c0721b31bb8eb4a71e86424f053923eab10464c8ee68bbb1ec25a1", + archive: "tinywallet-module-0.28.0-windows-2022-x86_64.zip", + sha256: "fdf15c140e0de0492fb0fde449e38e8eef0653cc7af6ebbe71c56218f5d33c17", library_sha256: None, }, PlatformAsset { host_key: "windows-2025-x86_64", - archive: "tinywallet-module-0.27.0-windows-2025-x86_64.zip", - sha256: "b01f58d66e73f73b510bf755fb89d1fa77a5caad00033405511ce12b84086632", + archive: "tinywallet-module-0.28.0-windows-2025-x86_64.zip", + sha256: "a89031486e2aeb8f2f96fc314a5a291ebc4364e3b34dcdcd6a010b1a939b365e", library_sha256: None, }, ], diff --git a/crates/openhuman-core/src/modules/registry_tests.rs b/crates/openhuman-core/src/modules/registry_tests.rs index 49f47025a3..b9e8a9ed6e 100644 --- a/crates/openhuman-core/src/modules/registry_tests.rs +++ b/crates/openhuman-core/src/modules/registry_tests.rs @@ -9,14 +9,14 @@ mod release_manifest_tests; #[test] #[cfg(feature = "web3")] -fn tinywallet_registry_matches_the_verified_v0270_release_manifest() { +fn tinywallet_registry_matches_the_verified_v0280_release_manifest() { let wallet = find("tinywallet").expect("compiled TinyWallet module"); - assert_eq!(wallet.version, "0.27.0"); + assert_eq!(wallet.version, "0.28.0"); #[cfg(feature = "web3")] assert_eq!(tinywallet_bus::CONTRACT_VERSION, (1, 14)); assert_eq!( wallet.release_url, - "https://github.com/tinyhumansai/tinywallet/releases/tag/v0.27.0" + "https://github.com/tinyhumansai/tinywallet/releases/tag/v0.28.0" ); let mut actual = wallet @@ -28,88 +28,88 @@ fn tinywallet_registry_matches_the_verified_v0270_release_manifest() { let mut published = [ ( "archlinux-arm64", - "tinywallet-module-0.27.0-archlinux-arm64.tar.gz", - "739b73d4fe246b108d3d8c15b96e358219e3357554663054bde9b4cfcc1e1547", + "tinywallet-module-0.28.0-archlinux-arm64.tar.gz", + "da90ff7b53c2a229896d5a4ab0e3121727488f37a78551b3207a9c78bc4a09a6", ), ( "archlinux-x86_64", - "tinywallet-module-0.27.0-archlinux-x86_64.tar.gz", - "30ad7f2de3d10d584d677412cd1fa6fc124083fb28ad5c58fcdb63a8c3d88f79", + "tinywallet-module-0.28.0-archlinux-x86_64.tar.gz", + "1e80c400e50643d938e25b45aa0327de170f66f39fe65645a9d5ccb31b5f4a88", ), ( "fedora-43-arm64", - "tinywallet-module-0.27.0-fedora-43-arm64.tar.gz", - "e2a185ff78c0f636a1ccbc7a5d6d91e23121394fa5d64683058f33e24b414771", + "tinywallet-module-0.28.0-fedora-43-arm64.tar.gz", + "fb2b630ae47e64bd10a975861e647a939bfaa55b664c8f0706cd096779d62c3b", ), ( "fedora-43-x86_64", - "tinywallet-module-0.27.0-fedora-43-x86_64.tar.gz", - "28f03bfde6eb63dde25e0f6fafaf2ce25e453afdf56a5c9a3277d47bf2fe5400", + "tinywallet-module-0.28.0-fedora-43-x86_64.tar.gz", + "84cc92b8775d26def86ad5073ed7315a50aae4b5aa7134a1cf485b923a32c38b", ), ( "fedora-44-arm64", - "tinywallet-module-0.27.0-fedora-44-arm64.tar.gz", - "574cf3773f405e282c3d42f4fb8ba8e3037e7abcd06ee63c719a134c100f9748", + "tinywallet-module-0.28.0-fedora-44-arm64.tar.gz", + "14a1f4a044a7e5b246aa2df7209c31c165bf1305b38d888a540c2e438c11e202", ), ( "fedora-44-x86_64", - "tinywallet-module-0.27.0-fedora-44-x86_64.tar.gz", - "af05c0582364306a0bf885df059bea601044cfd40c40c7a14af043499053dc71", + "tinywallet-module-0.28.0-fedora-44-x86_64.tar.gz", + "d550966866d4b3446abef6f3b19fcf6968d914579a445c8b08fff276465b9029", ), ( "macos-15-arm64", - "tinywallet-module-0.27.0-macos-15-arm64.tar.gz", - "554375d3e45eb9332454323937c7923e34a75934a99b2185bff35503b7abeec5", + "tinywallet-module-0.28.0-macos-15-arm64.tar.gz", + "c8c791b7464f1db2c6395f286cf63727b24bacb7606e318bb7dad5fa120387e1", ), ( "macos-15-x86_64", - "tinywallet-module-0.27.0-macos-15-x86_64.tar.gz", - "ad4a098b29dedd350bd60bf4d0194fa89cc2f79bff47447f7d52b440f702730a", + "tinywallet-module-0.28.0-macos-15-x86_64.tar.gz", + "b72c5f5b979302599b3a4f85b6783bd753c119e23ade819c0b1edf9ffd01d729", ), ( "macos-26-arm64", - "tinywallet-module-0.27.0-macos-26-arm64.tar.gz", - "762c4fa1a283df5d499610314a6d35b002663e00f4b57105d56047a5d0cb83a8", + "tinywallet-module-0.28.0-macos-26-arm64.tar.gz", + "b8d189befa3358f854346f3903187ef23b990b71d314a4a58539531c9212ca82", ), ( "macos-26-x86_64", - "tinywallet-module-0.27.0-macos-26-x86_64.tar.gz", - "5973882752b659ac5ef9906fcc418e55796e3cc1375b3be141e16a624bc666c1", + "tinywallet-module-0.28.0-macos-26-x86_64.tar.gz", + "9eb8990e3401b8c6d30ca08a434c64f56ff82e6bc1b6e160d27aae4d30a8c24f", ), ( "ubuntu-22.04-arm64", - "tinywallet-module-0.27.0-ubuntu-22.04-arm64.tar.gz", - "927227ee8d8a23a12966ccb2de972fcab07e80fb6527dad840170e4ffd64f087", + "tinywallet-module-0.28.0-ubuntu-22.04-arm64.tar.gz", + "c753826827230d2ebcb044eeae91f96d1f08d945f1ef37b26030ae0e0843d60c", ), ( "ubuntu-22.04-x86_64", - "tinywallet-module-0.27.0-ubuntu-22.04-x86_64.tar.gz", - "a031e81172452657a506cd769a41f8702c06d80a75b72ebf6dc9a0f4a8317c25", + "tinywallet-module-0.28.0-ubuntu-22.04-x86_64.tar.gz", + "02cec7d7e33112266b988be1bab6213b71193f7a183db8783dba941e62ef7b46", ), ( "ubuntu-24.04-arm64", - "tinywallet-module-0.27.0-ubuntu-24.04-arm64.tar.gz", - "6e055459e513707e58b4d07c836a3659a453c3753ee8c632e858930c150b66f4", + "tinywallet-module-0.28.0-ubuntu-24.04-arm64.tar.gz", + "5b8dc519829098029609e224b95b2149a71cdaad240148e33c0abac71ec5dc07", ), ( "ubuntu-24.04-x86_64", - "tinywallet-module-0.27.0-ubuntu-24.04-x86_64.tar.gz", - "cab0be708a52e8713df7cc57dc13717e3899ce3c8ec57819741b37dc463ccfc7", + "tinywallet-module-0.28.0-ubuntu-24.04-x86_64.tar.gz", + "c2bb2acd7c15b061b66d564db738aa3eac6802544fba753a6715ade541faac86", ), ( "windows-11-arm64", - "tinywallet-module-0.27.0-windows-11-arm64.zip", - "9e458762f740e166b9b028336b6faed3762dfb71bf46eb57c71ad7e3ec2dc9d3", + "tinywallet-module-0.28.0-windows-11-arm64.zip", + "02598b083ce4d7e66c6d295785b5b42535861614741b2371462847760bbd2823", ), ( "windows-2022-x86_64", - "tinywallet-module-0.27.0-windows-2022-x86_64.zip", - "ff389c8951c0721b31bb8eb4a71e86424f053923eab10464c8ee68bbb1ec25a1", + "tinywallet-module-0.28.0-windows-2022-x86_64.zip", + "fdf15c140e0de0492fb0fde449e38e8eef0653cc7af6ebbe71c56218f5d33c17", ), ( "windows-2025-x86_64", - "tinywallet-module-0.27.0-windows-2025-x86_64.zip", - "b01f58d66e73f73b510bf755fb89d1fa77a5caad00033405511ce12b84086632", + "tinywallet-module-0.28.0-windows-2025-x86_64.zip", + "a89031486e2aeb8f2f96fc314a5a291ebc4364e3b34dcdcd6a010b1a939b365e", ), ]; actual.sort_unstable(); diff --git a/crates/openhuman-core/src/modules/wallet.rs b/crates/openhuman-core/src/modules/wallet.rs index bf57e5edbf..a27f187dd3 100644 --- a/crates/openhuman-core/src/modules/wallet.rs +++ b/crates/openhuman-core/src/modules/wallet.rs @@ -378,93 +378,93 @@ async fn attested_proxy(config: &Config) -> Result Date: Tue, 3 Nov 2026 17:39:56 +0530 Subject: [PATCH 08/12] chore(modules): pin the tinyjuice 0.11.6 release Re-pin the tinyjuice registry record to the published v0.11.6 release: version, release URL and every per-platform archive digest from its checksum.toml, checked against the downloaded archives. vendor/tinyjuice moves to the v0.11.6 tag commit, whose module accepts any compatible TinyBus 0.3 release. With that, the root [patch] unifies it with the host's TinyBus, so the lockfile drops the second TinyBus copy (git rev 6ce06bc) and references the remaining one unqualified. --- Cargo.lock | 119 ++++++------------ .../modules/registry/records_memory_juice.rs | 72 +++++------ vendor/tinyjuice | 2 +- 3 files changed, 74 insertions(+), 119 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 004c1c49c9..7b84c69059 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -5789,8 +5789,8 @@ dependencies = [ "tinyagents-storage-kit", "tinyagents-tasks", "tinybox-bus 0.2.4", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinychannels", "tinychannels-bus", "tinychannels-module", @@ -5893,7 +5893,7 @@ dependencies = [ "tinyagents-session", "tinyagents-storage-kit", "tinyagents-tasks", - "tinybus 0.3.12", + "tinybus", "tinychannels", "tinycomputer-bus", "tinydocs-bus", @@ -5950,7 +5950,7 @@ dependencies = [ "tinyagents-harness-tools", "tinyagents-hooks", "tinyagents-session", - "tinybus 0.3.12", + "tinybus", "tinyflows-bus", "tinyflows-module", "tinyinference-embeddings", @@ -5978,7 +5978,7 @@ dependencies = [ "openhuman-rpc", "serde_json", "tinybox-module", - "tinybus 0.3.12", + "tinybus", "tinychannels-module", "tinycomputer", "tinyconnectors", @@ -6061,7 +6061,7 @@ dependencies = [ "tinyagents-harness", "tinyagents-live", "tinyagents-session", - "tinybus 0.3.12", + "tinybus", "tinychannels-bus", "tinyhumans-sdk", "tinyinference-core", @@ -9527,8 +9527,8 @@ dependencies = [ "tinybox-microvm", "tinybox-openshell", "tinybox-ssh", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinystoragedrivers-api", "tinystoragedrivers-busproxy", "tinystoragedrivers-types", @@ -9555,28 +9555,6 @@ dependencies = [ "uuid", ] -[[package]] -name = "tinybus" -version = "0.3.6" -source = "git+https://github.com/tinyhumansai/tinybus?rev=6ce06bc674e4f4d718aa51e643ef62c1f372e270#6ce06bc674e4f4d718aa51e643ef62c1f372e270" -dependencies = [ - "async-trait", - "flate2", - "libc", - "serde", - "serde_json", - "sha2 0.10.9", - "tar", - "tempfile", - "thiserror 2.0.21", - "tinybus-macros 0.3.6", - "tokio", - "toml 1.1.8+spec-1.1.0", - "tracing", - "ureq", - "zip 9.0.5", -] - [[package]] name = "tinybus" version = "0.3.12" @@ -9592,7 +9570,7 @@ dependencies = [ "tar", "tempfile", "thiserror 2.0.21", - "tinybus-macros 0.3.12", + "tinybus-macros", "tokio", "toml 1.1.8+spec-1.1.0", "tracing", @@ -9600,16 +9578,6 @@ dependencies = [ "ureq", ] -[[package]] -name = "tinybus-macros" -version = "0.3.6" -source = "git+https://github.com/tinyhumansai/tinybus?rev=6ce06bc674e4f4d718aa51e643ef62c1f372e270#6ce06bc674e4f4d718aa51e643ef62c1f372e270" -dependencies = [ - "proc-macro2", - "quote", - "syn 2.0.119", -] - [[package]] name = "tinybus-macros" version = "0.3.12" @@ -9619,19 +9587,6 @@ dependencies = [ "syn 2.0.119", ] -[[package]] -name = "tinybus-module" -version = "0.3.6" -source = "git+https://github.com/tinyhumansai/tinybus?rev=6ce06bc674e4f4d718aa51e643ef62c1f372e270#6ce06bc674e4f4d718aa51e643ef62c1f372e270" -dependencies = [ - "async-trait", - "serde", - "serde_json", - "tinybus 0.3.6", - "tokio", - "tracing", -] - [[package]] name = "tinybus-module" version = "0.3.12" @@ -9639,7 +9594,7 @@ dependencies = [ "async-trait", "serde", "serde_json", - "tinybus 0.3.12", + "tinybus", "tokio", "tracing", ] @@ -9718,8 +9673,8 @@ dependencies = [ "serde", "serde_json", "sha2 0.11.1", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinychannels", "tinychannels-bus", "tinychannels-runtime", @@ -9760,8 +9715,8 @@ dependencies = [ "getrandom 0.4.3", "serde", "serde_json", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinycomputer-accessibility", "tinycomputer-browser", "tinycomputer-bus", @@ -9883,8 +9838,8 @@ dependencies = [ "serde_json", "sha2 0.11.1", "thiserror 2.0.21", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinyconnectors-bus", "tinyconnectors-sync", "tinystoragedrivers-api", @@ -9946,8 +9901,8 @@ dependencies = [ "serde", "sha2 0.11.1", "thiserror 2.0.21", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinydocs", "tinydocs-bus", "tokio", @@ -9965,8 +9920,8 @@ dependencies = [ "serde_path_to_error", "sha2 0.10.9", "thiserror 2.0.21", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinyeventqueues-bus", "tinystoragedrivers-api", "tinystoragedrivers-busproxy", @@ -10072,8 +10027,8 @@ dependencies = [ "chrono", "serde", "serde_json", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinyflows", "tinyflows-bus", "tinyflows-catalog", @@ -10135,8 +10090,8 @@ dependencies = [ "serde_json", "sha1 0.11.0", "thiserror 2.0.21", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinyhosts-bus", ] @@ -10390,12 +10345,12 @@ dependencies = [ [[package]] name = "tinyjuice-module" -version = "0.11.5" +version = "0.11.6" dependencies = [ "log", "serde_json", - "tinybus 0.3.6", - "tinybus-module 0.3.6", + "tinybus", + "tinybus-module", "tinyjuice", "tinyjuice-bus", "tinyjuice-drivers", @@ -10438,8 +10393,8 @@ dependencies = [ "sha2 0.11.1", "thiserror 2.0.21", "tinybox-bus 0.1.36", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinymcp-bus", "tinystoragedrivers-api", "tinystoragedrivers-busproxy", @@ -10539,8 +10494,8 @@ dependencies = [ "serde", "serde_json", "thiserror 2.0.21", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinysearch-bus", "tokio", ] @@ -10646,7 +10601,7 @@ version = "2.1.2" dependencies = [ "serde", "serde_json", - "tinybus 0.3.12", + "tinybus", "tinystoragedrivers-types", ] @@ -10659,7 +10614,7 @@ dependencies = [ "futures-core", "serde", "serde_json", - "tinybus 0.3.12", + "tinybus", "tinystoragedrivers-api", "tinystoragedrivers-bus", "tinystoragedrivers-types", @@ -10901,8 +10856,8 @@ dependencies = [ "serde_json", "tinyagents-harness", "tinyagents-live", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinytools", "tinyvoice", "tinyvoice-bus 0.2.0", @@ -10972,8 +10927,8 @@ dependencies = [ "reqwest 0.13.5", "serde", "serde_json", - "tinybus 0.3.12", - "tinybus-module 0.3.12", + "tinybus", + "tinybus-module", "tinystoragedrivers-api", "tinystoragedrivers-busproxy", "tinystoragedrivers-types", diff --git a/crates/openhuman-core/src/modules/registry/records_memory_juice.rs b/crates/openhuman-core/src/modules/registry/records_memory_juice.rs index 8ee021513a..ab127846a9 100644 --- a/crates/openhuman-core/src/modules/registry/records_memory_juice.rs +++ b/crates/openhuman-core/src/modules/registry/records_memory_juice.rs @@ -7,109 +7,109 @@ pub(crate) const TINYJUICE: ModuleRecord = ModuleRecord { description: "Content-aware tool-output compression and recoverable caching", bus_name: tinyjuice_bus::names::BUS_NAME, object_path: tinyjuice_bus::names::OBJECT_PATH, - version: "0.11.5", - release_url: "https://github.com/tinyhumansai/tinyjuice/releases/tag/v0.11.5", + version: "0.11.6", + release_url: "https://github.com/tinyhumansai/tinyjuice/releases/tag/v0.11.6", assets: &[ PlatformAsset { host_key: "archlinux-arm64", - archive: "tinyjuice-module-0.11.5-archlinux-arm64.tar.gz", - sha256: "f865d734eac10f9d487d6ec0b4e9898a4bb8e570207e7d9272163a0c2a44a825", + archive: "tinyjuice-module-0.11.6-archlinux-arm64.tar.gz", + sha256: "54151837611c5a7239873fc8e7bc5d8c74f1f0818d78ee58ba508dd5f15e58d9", library_sha256: None, }, PlatformAsset { host_key: "archlinux-x86_64", - archive: "tinyjuice-module-0.11.5-archlinux-x86_64.tar.gz", - sha256: "0936436d1659af2a6a677d2f660eea24596066f2dd9eaafd6fea843144fdcada", + archive: "tinyjuice-module-0.11.6-archlinux-x86_64.tar.gz", + sha256: "a451f018fc81067bcb49db5aaf7265ebab1b7d8c9750fe9b7cca2405667859b7", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-arm64", - archive: "tinyjuice-module-0.11.5-fedora-43-arm64.tar.gz", - sha256: "c40e47b81f8f7f2fdaf26bbd7310286c052edb80dd9504a9e4dcd3d9c99e34e6", + archive: "tinyjuice-module-0.11.6-fedora-43-arm64.tar.gz", + sha256: "e6dc6550c5df5e1db17cf84b000a8cc893bae2b3082ed9b49813c01ea5e06104", library_sha256: None, }, PlatformAsset { host_key: "fedora-43-x86_64", - archive: "tinyjuice-module-0.11.5-fedora-43-x86_64.tar.gz", - sha256: "d27c7efaa70ebfa7c4fbe6bdf5f4121b2afcec5702735c6b1425acf8671e05c4", + archive: "tinyjuice-module-0.11.6-fedora-43-x86_64.tar.gz", + sha256: "9b7565e6b1f9fac6a4007d2494a5224f3e2f8f46b7c54d0eeede5b20804fc86c", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-arm64", - archive: "tinyjuice-module-0.11.5-fedora-44-arm64.tar.gz", - sha256: "8e34fc840fd8e673cb5d1eac191f4d58b63d43394bafac8b2954f149655da716", + archive: "tinyjuice-module-0.11.6-fedora-44-arm64.tar.gz", + sha256: "e1a780719502a6bff4d42bca28353e12a750c427255ad39c197ec00379d5ea1d", library_sha256: None, }, PlatformAsset { host_key: "fedora-44-x86_64", - archive: "tinyjuice-module-0.11.5-fedora-44-x86_64.tar.gz", - sha256: "dac80d49626952c4c8a45a8596cc861bf5c527a85561ce8747aba097b54ea1f9", + archive: "tinyjuice-module-0.11.6-fedora-44-x86_64.tar.gz", + sha256: "eee03fdb25ebc69c84431834e2c2e9c528a81b32bd92a20034d04f9680ef47e8", library_sha256: None, }, PlatformAsset { host_key: "macos-15-arm64", - archive: "tinyjuice-module-0.11.5-macos-15-arm64.tar.gz", - sha256: "f661177d68d29c2409ca9421e10ed82d3b78679784ac94875fe0658f38a3a47d", + archive: "tinyjuice-module-0.11.6-macos-15-arm64.tar.gz", + sha256: "35157f06332c06675d92a3c4392030d1a6b72de6fc7c8fd8ddd97390d33d1079", library_sha256: None, }, PlatformAsset { host_key: "macos-15-x86_64", - archive: "tinyjuice-module-0.11.5-macos-15-x86_64.tar.gz", - sha256: "c912a9dc14932a7b5ef7c6e799a0a4b03edb2df093596dcf4ac766ec18118c15", + archive: "tinyjuice-module-0.11.6-macos-15-x86_64.tar.gz", + sha256: "519560c5342d8853e6c4f1f1f33f5cdd0bb10ca537be92c4349509fd504f78d7", library_sha256: None, }, PlatformAsset { host_key: "macos-26-arm64", - archive: "tinyjuice-module-0.11.5-macos-26-arm64.tar.gz", - sha256: "58f3317b35a71dbb811e7d5b9a6e9cbf36ed682e1f97853927eb3c3f852c16cf", + archive: "tinyjuice-module-0.11.6-macos-26-arm64.tar.gz", + sha256: "0a73b15bf14fcfeb676ab2b70e842e15f61fa97595faeefbcd4608aaf98e5e6e", library_sha256: None, }, PlatformAsset { host_key: "macos-26-x86_64", - archive: "tinyjuice-module-0.11.5-macos-26-x86_64.tar.gz", - sha256: "11fe4d323a0b52186f4a0204a036354d004dc2f8597d631d8f0f690e06eb2f44", + archive: "tinyjuice-module-0.11.6-macos-26-x86_64.tar.gz", + sha256: "3a3dfcc4d2139de8a936d058f1c87c8c6dc201bb903566ea72061f21281f73ae", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-arm64", - archive: "tinyjuice-module-0.11.5-ubuntu-22.04-arm64.tar.gz", - sha256: "7b8f4c8cf6e17d1557c1593ec636ff7baa48273eaa5a1d2f46f8dce83587329f", + archive: "tinyjuice-module-0.11.6-ubuntu-22.04-arm64.tar.gz", + sha256: "c940e64939e03260ae4d8434dae10d8607857aa26a0ebf05456f2b7d3b485f52", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-22.04-x86_64", - archive: "tinyjuice-module-0.11.5-ubuntu-22.04-x86_64.tar.gz", - sha256: "9796d39f8a02c846a51e893ed5bed0b82e1ebf66d23eb339b9d737fca048266d", + archive: "tinyjuice-module-0.11.6-ubuntu-22.04-x86_64.tar.gz", + sha256: "7ed6b56a6972f6aa8661899e0489f09883c791fad87b01fd29a9e52e9cd4c409", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-arm64", - archive: "tinyjuice-module-0.11.5-ubuntu-24.04-arm64.tar.gz", - sha256: "d5e12d3384b6a9bab2ae934dfa1a70e2d243d11475340c8788ebaa89890763ed", + archive: "tinyjuice-module-0.11.6-ubuntu-24.04-arm64.tar.gz", + sha256: "a819f7c1f77ffc8887d8cd1ecf9d7bc1dafdbcbaa4fee5b3389c6a9292eb2699", library_sha256: None, }, PlatformAsset { host_key: "ubuntu-24.04-x86_64", - archive: "tinyjuice-module-0.11.5-ubuntu-24.04-x86_64.tar.gz", - sha256: "7f04334724e1246eb22f63303d988b7d27a8bf85c2995f3b1fcb01b36f64f490", + archive: "tinyjuice-module-0.11.6-ubuntu-24.04-x86_64.tar.gz", + sha256: "2dfa5d532a966460aa12d74f4cdaf7f4e379233682a9981831e2605b397172ea", library_sha256: None, }, PlatformAsset { host_key: "windows-11-arm64", - archive: "tinyjuice-module-0.11.5-windows-11-arm64.zip", - sha256: "732ac279d412067ad59ebd0710b5304ec846d25c01404bad79ff984d06a1680c", + archive: "tinyjuice-module-0.11.6-windows-11-arm64.zip", + sha256: "04af7fdd36e836f8cea86ca1d36e37fdf09147fad433e15b9a18cce472fdd4d0", library_sha256: None, }, PlatformAsset { host_key: "windows-2022-x86_64", - archive: "tinyjuice-module-0.11.5-windows-2022-x86_64.zip", - sha256: "aaa1cd900f6633a4bb645398643e344f7d32b790b11c52281928bba09082a1f2", + archive: "tinyjuice-module-0.11.6-windows-2022-x86_64.zip", + sha256: "8a510083d6b0350c872915c2a89bca4a013d5231552a56311922f3b291699633", library_sha256: None, }, PlatformAsset { host_key: "windows-2025-x86_64", - archive: "tinyjuice-module-0.11.5-windows-2025-x86_64.zip", - sha256: "7c1f2d063e0115fbfd77e6d138132f45c427b684edf3665d28333e8cddaa3782", + archive: "tinyjuice-module-0.11.6-windows-2025-x86_64.zip", + sha256: "0236cb968893c28320cc04626b20fdf0140ea3d45cc5872f1164bc6704883038", library_sha256: None, }, ], diff --git a/vendor/tinyjuice b/vendor/tinyjuice index 203f4f634a..ceb4f293cf 160000 --- a/vendor/tinyjuice +++ b/vendor/tinyjuice @@ -1 +1 @@ -Subproject commit 203f4f634ac0260a9fbffd765265ece001ba07b6 +Subproject commit ceb4f293cf17d17cdcdbc166cea311152398140b From 56a9ca241da876bee20c1696f3b1700450ac55f3 Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 18:20:27 +0530 Subject: [PATCH 09/12] test(security): prove the native fixture's audits are stored, not refused The two fail-closed fixtures asserted a v0.18.2 defect, not missing audit correlation: the host supplies a correlation for every sandbox plan and approval evaluation. v0.18.2 sent AuditSink2.Append as an ordinary bus call, which the host's confidential-only callback binding rejects, so every plan was refused (SandboxDenial2::Audit), every production sandbox plan included. tinysecurity 4a75ceb (in v0.18.4) sends it confidentially. The sandbox fixture now runs the command and reads the host's approval store to assert a committed tail and a stored sandbox-plan event. The approval fixture asserts one pending shell row with its api_key argument redacted, then denies it and expects the parked call to be denied. The CI script runs both under their new names. --- scripts/ci/security-native-fixture.sh | 4 +- tests/security_native_fixture.rs | 86 ++++++++++++++++++++------- 2 files changed, 68 insertions(+), 22 deletions(-) diff --git a/scripts/ci/security-native-fixture.sh b/scripts/ci/security-native-fixture.sh index 24cc858cb9..8389a15690 100644 --- a/scripts/ci/security-native-fixture.sh +++ b/scripts/ci/security-native-fixture.sh @@ -86,11 +86,11 @@ bash scripts/ci-cancel-aware.sh cargo test --manifest-path Cargo.toml -p openhum bash scripts/ci-cancel-aware.sh cargo test --manifest-path Cargo.toml -p openhuman-cli \ --test security_native_fixture --no-default-features \ --features "$core_features,security-module" \ - native_fixture_fails_closed_without_sandbox_audit_correlation \ + native_fixture_sandbox_plan_is_audited_before_running \ -- --ignored --exact --nocapture bash scripts/ci-cancel-aware.sh cargo test --manifest-path Cargo.toml -p openhuman-cli \ --test security_native_fixture --no-default-features \ --features "$core_features,security-module" \ - native_fixture_fails_closed_without_approval_audit_correlation \ + native_fixture_parks_a_redacted_approval_until_denied \ -- --ignored --exact --nocapture diff --git a/tests/security_native_fixture.rs b/tests/security_native_fixture.rs index 6e8f614a9c..a4f7daab02 100644 --- a/tests/security_native_fixture.rs +++ b/tests/security_native_fixture.rs @@ -307,11 +307,41 @@ async fn native_fixture_denies_keyring_before_backend_access() { ); } -/// Without a request-bound audit correlation the released module refuses to -/// plan a sandbox command before the shell can run. +/// The host's approval store, read back directly: `(tails, events)` of every +/// audit stream in `workspace`. Test-only, so the fixture can prove an audit +/// event was stored rather than trusting the module's `committed` claim. +async fn stored_audit(workspace: &std::path::Path) -> (Vec, Vec) { + use openhuman_core::storage::DocumentStore as _; + let opened = openhuman_core::storage::local::open_async("approval::rows", workspace) + .await + .expect("open the host approval store"); + let storage = opened.scoped().expect("scope the host approval store"); + let docs = storage.documents(); + let all = tinystoragedrivers::Query::all(); + let tails = docs + .query("approval_tails", &all) + .await + .expect("read audit tails") + .items + .iter() + .filter_map(|tail| tail.doc["tail"].as_u64()) + .collect(); + let events = docs + .query("approval_events", &all) + .await + .expect("read audit events") + .items + .iter() + .filter_map(|event| event.doc["event"].as_str().map(str::to_owned)) + .collect(); + (tails, events) +} + +/// The released module plans the command only after the host has stored its +/// audit event, then the shell runs it. #[test] -#[ignore = "loads the pinned module and verifies sandbox planning fails closed without audit correlation"] -fn native_fixture_fails_closed_without_sandbox_audit_correlation() { +#[ignore = "loads the pinned module and verifies a sandbox plan is audited before the command runs"] +fn native_fixture_sandbox_plan_is_audited_before_running() { run_on_agent_stack("native-sandbox-fixture", || async { let scratch = tempfile::tempdir().expect("scratch workspace"); let home = scratch.path().join("home"); @@ -328,7 +358,7 @@ fn native_fixture_fails_closed_without_sandbox_audit_correlation() { config.modules.enabled = true; config.autonomy.enabled = false; config.autonomy.forbidden_paths.clear(); - config.workspace_dir = workspace; + config.workspace_dir = workspace.clone(); config.config_path = home.join(".openhuman/config.toml"); config.action_dir = scratch.path().join("action"); config.action_dir_override = Some(config.action_dir.clone()); @@ -358,13 +388,17 @@ fn native_fixture_fails_closed_without_sandbox_audit_correlation() { ), ) .await; + let output = result.expect("the audited sandbox plan should run"); + assert!(output.success(), "fixture command should succeed"); + assert!(output.stdout.contains("sandbox-fixture")); + let (tails, events) = stored_audit(&workspace).await; assert!( - result.is_err(), - "sandbox execution must fail closed without audit correlation" + tails.iter().any(|tail| *tail >= 1), + "the host must have committed the plan's audit event: {tails:?}" ); assert!( - result.unwrap_err().to_string().contains("Audit"), - "released module must refuse the unaudited sandbox plan" + events.iter().any(|event| event.contains("sandbox-plan")), + "the stored audit must hold the sandbox-plan event" ); shutdown.cancel(); server @@ -374,13 +408,13 @@ fn native_fixture_fails_closed_without_sandbox_audit_correlation() { }); } -/// Verifies that the released module fails closed when a synthetic approval -/// request cannot provide the required request-bound audit correlation. +/// A WebChat shell call parks as one pending approval with its credential +/// argument redacted, and a human denial resolves the parked call as denied. #[test] -#[ignore = "loads the pinned module and verifies approval evaluation fails closed without audit correlation"] -fn native_fixture_fails_closed_without_approval_audit_correlation() { +#[ignore = "loads the pinned module and verifies a parked approval is redacted and can be denied"] +fn native_fixture_parks_a_redacted_approval_until_denied() { run_on_agent_stack("native-approval-fixture", || async { - let private_argument = "approval-callback-private-sentinel"; + let credential = "approval-callback-private-sentinel"; let scratch = tempfile::tempdir().expect("scratch workspace"); let home = scratch.path().join("home"); let workspace = scratch.path().join("workspace"); @@ -431,7 +465,7 @@ fn native_fixture_fails_closed_without_approval_audit_correlation() { "run harmless fixture command", json!({ "command":"echo approval-fixture", - "private_argument": private_argument, + "api_key": credential, }), ), ) @@ -450,15 +484,27 @@ fn native_fixture_fails_closed_without_approval_audit_correlation() { tokio::time::sleep(std::time::Duration::from_millis(25)).await; } let rows = rpc_result(&pending).as_array().expect("pending row list"); - assert!(rows.is_empty(), "a denied request must not become pending"); + assert_eq!(rows.len(), 1, "the shell call should park once: {rows:?}"); + assert_eq!(rows[0]["tool_name"], "shell"); assert!( - !pending.to_string().contains(private_argument), - "the released module must not reflect request data through the unscoped callback path" + !pending.to_string().contains(credential), + "a pending approval must not show its credential argument" ); + let request_id = rows[0]["request_id"] + .as_str() + .expect("pending request id") + .to_owned(); + let decided = rpc_http( + port, + "openhuman.approval_decide", + json!({"request_id": request_id, "decision": "deny"}), + ) + .await; + rpc_result(&decided); let outcome = parked.await.expect("parked caller"); assert!( - matches!(outcome, GateOutcome::Deny { ref reason } if reason.contains("EvaluateApproval2 failed")), - "required audit failure must deny approval evaluation: {outcome:?}" + matches!(outcome, GateOutcome::Deny { .. }), + "a human denial must deny the parked call: {outcome:?}" ); shutdown.cancel(); server From 8c1cfaee570e1a96ab2c996127116e65572500bf Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 18:42:58 +0530 Subject: [PATCH 10/12] test(security): fail the native fixture closed on a real audit-write fault Two negative fixtures break the host audit sink through its own storage, with no production hook: after one audited call creates the subject's stream, the test occupies the stream's next event slot in approval_events, so the host's append conflicts and it refuses to acknowledge the write. A sandbox plan must then be refused with the Audit denial, its command must not run (its marker file stays absent), and no tail may advance. An approval must be denied outright from the failed evaluation instead of parking, with nothing pending and no tail advanced. The CI script runs both, seven tests in all. --- scripts/ci/security-native-fixture.sh | 12 + tests/security_native_fixture.rs | 487 ++++++++++++++++++-------- 2 files changed, 362 insertions(+), 137 deletions(-) diff --git a/scripts/ci/security-native-fixture.sh b/scripts/ci/security-native-fixture.sh index 8389a15690..83c503e687 100644 --- a/scripts/ci/security-native-fixture.sh +++ b/scripts/ci/security-native-fixture.sh @@ -94,3 +94,15 @@ bash scripts/ci-cancel-aware.sh cargo test --manifest-path Cargo.toml -p openhum --features "$core_features,security-module" \ native_fixture_parks_a_redacted_approval_until_denied \ -- --ignored --exact --nocapture + +bash scripts/ci-cancel-aware.sh cargo test --manifest-path Cargo.toml -p openhuman-cli \ + --test security_native_fixture --no-default-features \ + --features "$core_features,security-module" \ + native_fixture_refuses_a_sandbox_plan_when_the_audit_write_fails \ + -- --ignored --exact --nocapture + +bash scripts/ci-cancel-aware.sh cargo test --manifest-path Cargo.toml -p openhuman-cli \ + --test security_native_fixture --no-default-features \ + --features "$core_features,security-module" \ + native_fixture_denies_an_approval_when_the_audit_write_fails \ + -- --ignored --exact --nocapture diff --git a/tests/security_native_fixture.rs b/tests/security_native_fixture.rs index a4f7daab02..1ad4d86b12 100644 --- a/tests/security_native_fixture.rs +++ b/tests/security_native_fixture.rs @@ -1,3 +1,4 @@ +use openhuman_core::storage::DocumentStore as _; use openhuman_core::{ config::Config, core::runtime::{ @@ -307,27 +308,44 @@ async fn native_fixture_denies_keyring_before_backend_access() { ); } -/// The host's approval store, read back directly: `(tails, events)` of every -/// audit stream in `workspace`. Test-only, so the fixture can prove an audit -/// event was stored rather than trusting the module's `committed` claim. -async fn stored_audit(workspace: &std::path::Path) -> (Vec, Vec) { - use openhuman_core::storage::DocumentStore as _; +/// The host's approval store in `workspace`, opened the way the host opens it. +async fn approval_store( + workspace: &std::path::Path, +) -> std::sync::Arc { let opened = openhuman_core::storage::local::open_async("approval::rows", workspace) .await .expect("open the host approval store"); let storage = opened.scoped().expect("scope the host approval store"); - let docs = storage.documents(); - let all = tinystoragedrivers::Query::all(); - let tails = docs - .query("approval_tails", &all) + std::sync::Arc::clone(storage.documents()) +} + +/// Every audit stream's committed tail, by stream id. +async fn stored_tails(workspace: &std::path::Path) -> Vec<(String, u64)> { + let mut tails = approval_store(workspace) + .await + .query("approval_tails", &tinystoragedrivers::Query::all()) .await .expect("read audit tails") .items .iter() - .filter_map(|tail| tail.doc["tail"].as_u64()) + .filter_map(|tail| Some((tail.id.clone(), tail.doc["tail"].as_u64()?))) + .collect::>(); + tails.sort(); + tails +} + +/// The host's approval store, read back directly: `(tails, events)` of every +/// audit stream in `workspace`. Test-only, so the fixture can prove an audit +/// event was stored rather than trusting the module's `committed` claim. +async fn stored_audit(workspace: &std::path::Path) -> (Vec, Vec) { + let tails = stored_tails(workspace) + .await + .into_iter() + .map(|(_, tail)| tail) .collect(); - let events = docs - .query("approval_events", &all) + let events = approval_store(workspace) + .await + .query("approval_events", &tinystoragedrivers::Query::all()) .await .expect("read audit events") .items @@ -337,6 +355,93 @@ async fn stored_audit(workspace: &std::path::Path) -> (Vec, Vec) { (tails, events) } +/// Break the host audit sink through its real storage: occupy the next event +/// slot of every stream with another event, so the next append conflicts and +/// the host refuses to acknowledge it. Returns how many streams were blocked. +async fn block_next_audit_events(workspace: &std::path::Path) -> usize { + let docs = approval_store(workspace).await; + let tails = stored_tails(workspace).await; + for (stream, tail) in &tails { + let next = tail + 1; + docs.put( + "approval_events", + &format!("{stream}:{next:020}"), + json!({"event_id": "native-fixture-audit-fault", "sequence": next}), + tinystoragedrivers::Precondition::Absent, + ) + .await + .expect("occupy the next audit event slot"); + } + tails.len() +} + +/// A desktop host with the sandbox off, so a planned command runs on the host. +async fn start_sandbox_fixture( + scratch: &std::path::Path, +) -> ( + PathBuf, + ShutdownOnDrop, + tokio::task::JoinHandle>, +) { + let home = scratch.join("home"); + let workspace = scratch.join("workspace"); + std::fs::create_dir_all(&home).expect("create isolated home"); + std::fs::create_dir_all(&workspace).expect("create isolated workspace"); + std::env::set_var("HOME", &home); + std::env::set_var("OPENHUMAN_WORKSPACE", &workspace); + std::env::remove_var("OPENHUMAN_STORAGE_URL"); + std::env::set_var("BACKEND_URL", "http://127.0.0.1:9"); + std::env::set_var("OPENHUMAN_ACTION_DIR", scratch.join("action")); + std::env::set_var("OPENHUMAN_SANDBOX", "off"); + let mut config = Config::default(); + config.modules.enabled = true; + config.autonomy.enabled = false; + config.autonomy.forbidden_paths.clear(); + config.workspace_dir = workspace.clone(); + config.config_path = home.join(".openhuman/config.toml"); + config.action_dir = scratch.join("action"); + config.action_dir_override = Some(config.action_dir.clone()); + config.save().await.expect("save sandbox fixture config"); + let (_port, shutdown, server) = start_desktop_fixture(config).await; + (workspace, shutdown, server) +} + +async fn run_sandboxed( + scratch: &std::path::Path, + command: &str, +) -> anyhow::Result { + let policy = SandboxPolicy { + backend: SandboxBackendKind::None, + workspace_root: scratch.to_path_buf(), + state_dir: scratch.join("state"), + read_only_mounts: vec![], + read_write_mounts: vec![], + allow_network: false, + mount_workspace: true, + env_passthrough: vec![], + docker_overrides: None, + }; + turn_origin::with_origin( + AgentTurnOrigin::Cli, + openhuman_core::sandbox::ops::execute_in_sandbox( + &DispatchCtx::process_default(), + &policy, + command, + scratch, + std::collections::HashMap::new(), + std::time::Duration::from_secs(10), + ), + ) + .await +} + +fn sandbox_plan_events(events: &[String]) -> usize { + events + .iter() + .filter(|event| event.contains("sandbox-plan")) + .count() +} + /// The released module plans the command only after the host has stored its /// audit event, then the shell runs it. #[test] @@ -344,51 +449,10 @@ async fn stored_audit(workspace: &std::path::Path) -> (Vec, Vec) { fn native_fixture_sandbox_plan_is_audited_before_running() { run_on_agent_stack("native-sandbox-fixture", || async { let scratch = tempfile::tempdir().expect("scratch workspace"); - let home = scratch.path().join("home"); - let workspace = scratch.path().join("workspace"); - std::fs::create_dir_all(&home).expect("create isolated home"); - std::fs::create_dir_all(&workspace).expect("create isolated workspace"); - std::env::set_var("HOME", &home); - std::env::set_var("OPENHUMAN_WORKSPACE", &workspace); - std::env::remove_var("OPENHUMAN_STORAGE_URL"); - std::env::set_var("BACKEND_URL", "http://127.0.0.1:9"); - std::env::set_var("OPENHUMAN_ACTION_DIR", scratch.path().join("action")); - std::env::set_var("OPENHUMAN_SANDBOX", "off"); - let mut config = Config::default(); - config.modules.enabled = true; - config.autonomy.enabled = false; - config.autonomy.forbidden_paths.clear(); - config.workspace_dir = workspace.clone(); - config.config_path = home.join(".openhuman/config.toml"); - config.action_dir = scratch.path().join("action"); - config.action_dir_override = Some(config.action_dir.clone()); - config.save().await.expect("save sandbox fixture config"); - let (_port, shutdown, server) = start_desktop_fixture(config.clone()).await; - let policy = SandboxPolicy { - backend: SandboxBackendKind::None, - workspace_root: scratch.path().to_path_buf(), - state_dir: scratch.path().join("state"), - read_only_mounts: vec![], - read_write_mounts: vec![], - allow_network: false, - mount_workspace: true, - env_passthrough: vec![], - docker_overrides: None, - }; - let command = "echo sandbox-fixture"; - let result = turn_origin::with_origin( - AgentTurnOrigin::Cli, - openhuman_core::sandbox::ops::execute_in_sandbox( - &DispatchCtx::process_default(), - &policy, - command, - scratch.path(), - std::collections::HashMap::new(), - std::time::Duration::from_secs(10), - ), - ) - .await; - let output = result.expect("the audited sandbox plan should run"); + let (workspace, shutdown, server) = start_sandbox_fixture(scratch.path()).await; + let output = run_sandboxed(scratch.path(), "echo sandbox-fixture") + .await + .expect("the audited sandbox plan should run"); assert!(output.success(), "fixture command should succeed"); assert!(output.stdout.contains("sandbox-fixture")); let (tails, events) = stored_audit(&workspace).await; @@ -396,8 +460,9 @@ fn native_fixture_sandbox_plan_is_audited_before_running() { tails.iter().any(|tail| *tail >= 1), "the host must have committed the plan's audit event: {tails:?}" ); - assert!( - events.iter().any(|event| event.contains("sandbox-plan")), + assert_eq!( + sandbox_plan_events(&events), + 1, "the stored audit must hold the sandbox-plan event" ); shutdown.cancel(); @@ -408,6 +473,167 @@ fn native_fixture_sandbox_plan_is_audited_before_running() { }); } +/// When the host cannot store a plan's audit event, the released module +/// refuses the plan and the command never runs. +#[test] +#[ignore = "loads the pinned module and verifies a sandbox plan is refused when its audit write fails"] +fn native_fixture_refuses_a_sandbox_plan_when_the_audit_write_fails() { + run_on_agent_stack("native-sandbox-audit-fault", || async { + let scratch = tempfile::tempdir().expect("scratch workspace"); + let (workspace, shutdown, server) = start_sandbox_fixture(scratch.path()).await; + // One audited plan first, so the subject's stream and its tail exist. + run_sandboxed(scratch.path(), "echo sandbox-fixture") + .await + .expect("the first, audited plan should run"); + let tails = settled_tails(&workspace).await; + assert!( + block_next_audit_events(&workspace).await >= 1, + "fault injection needs an audit stream" + ); + let marker = scratch.path().join("audit-fault-marker"); + let result = run_sandboxed( + scratch.path(), + &format!("echo sandbox-fixture > '{}'", marker.display()), + ) + .await; + let error = result.expect_err("a plan whose audit write fails must be refused"); + assert!( + format!("{error:#}").contains("refused (Audit)"), + "the refusal must be the audit denial: {error:#}" + ); + assert!(!marker.exists(), "the refused command must not run"); + let (_, events) = stored_audit(&workspace).await; + assert_eq!( + stored_tails(&workspace).await, + tails, + "no audit event may be committed for the refused plan" + ); + assert_eq!( + sandbox_plan_events(&events), + 1, + "only the first plan's sandbox-plan event may be stored" + ); + shutdown.cancel(); + server + .await + .expect("desktop server task") + .expect("desktop server shuts down cleanly"); + }); +} + +/// A desktop host serving the approval RPCs, and the process approval gate. +async fn start_approval_fixture( + scratch: &std::path::Path, +) -> ( + u16, + PathBuf, + std::sync::Arc, + ShutdownOnDrop, + tokio::task::JoinHandle>, +) { + let home = scratch.join("home"); + let workspace = scratch.join("workspace"); + std::fs::create_dir_all(&home).expect("create isolated home"); + std::fs::create_dir_all(&workspace).expect("create isolated workspace"); + std::env::set_var("HOME", &home); + std::env::set_var("OPENHUMAN_WORKSPACE", &workspace); + std::env::remove_var("OPENHUMAN_STORAGE_URL"); + std::env::set_var("BACKEND_URL", "http://127.0.0.1:9"); + std::env::set_var("OPENHUMAN_KEYRING_BACKEND", "file"); + let mut config = Config::default(); + config.modules.enabled = true; + config.autonomy.enabled = false; + config.autonomy.forbidden_paths.clear(); + config.workspace_dir = workspace.clone(); + config.config_path = home.join(".openhuman/config.toml"); + config.action_dir = scratch.join("action"); + config.action_dir_override = Some(config.action_dir.clone()); + config.save().await.expect("save fixture config"); + openhuman_core::security::secret_storage::init_workspace(scratch); + let (port, shutdown, server) = start_desktop_fixture(config.clone()).await; + tokio::time::sleep(std::time::Duration::from_millis(100)).await; + if let Err(error) = health_http(port).await { + let task = if server.is_finished() { + format!("finished: {:?}", server.await) + } else { + "still running".into() + }; + panic!("health route failed: {error}; desktop server task {task}"); + } + let gate = ApprovalGate::init_global(config, "session-security-native-approval-fixture"); + (port, workspace, gate, shutdown, server) +} + +/// Ask the gate about one WebChat `shell` call, the way a chat turn does. +fn park_shell_call( + gate: &std::sync::Arc, + args: Value, +) -> tokio::task::JoinHandle { + let gate = gate.clone(); + tokio::spawn(async move { + turn_origin::with_origin( + AgentTurnOrigin::WebChat { + thread_id: "native-fixture-thread".into(), + client_id: "native-fixture-client".into(), + request_id: None, + }, + gate.intercept( + &ApprovalTurnContext::chat(ApprovalChatContext { + thread_id: "native-fixture-thread".into(), + client_id: "native-fixture-client".into(), + request_id: None, + }), + "shell", + "run harmless fixture command", + args, + ), + ) + .await + }) +} + +/// The pending list, polled until a row appears or about five seconds pass. +async fn wait_for_pending(port: u16) -> Value { + let mut pending = Value::Null; + for _ in 0..200 { + pending = rpc_http(port, "openhuman.approval_list_pending", json!({})).await; + if rpc_result(&pending) + .as_array() + .is_some_and(|rows| !rows.is_empty()) + { + break; + } + tokio::time::sleep(std::time::Duration::from_millis(25)).await; + } + pending +} + +async fn deny_pending(port: u16, row: &Value) { + let request_id = row["request_id"].as_str().expect("pending request id"); + let decided = rpc_http( + port, + "openhuman.approval_decide", + json!({"request_id": request_id, "decision": "deny"}), + ) + .await; + rpc_result(&decided); +} + +/// The committed tails once two reads 200 ms apart agree, so no audit write +/// from an earlier call is still landing. +async fn settled_tails(workspace: &std::path::Path) -> Vec<(String, u64)> { + let mut tails = stored_tails(workspace).await; + for _ in 0..25 { + tokio::time::sleep(std::time::Duration::from_millis(200)).await; + let now = stored_tails(workspace).await; + if now == tails { + return tails; + } + tails = now; + } + panic!("the audit tails kept moving: {tails:?}"); +} + /// A WebChat shell call parks as one pending approval with its credential /// argument redacted, and a human denial resolves the parked call as denied. #[test] @@ -416,73 +642,13 @@ fn native_fixture_parks_a_redacted_approval_until_denied() { run_on_agent_stack("native-approval-fixture", || async { let credential = "approval-callback-private-sentinel"; let scratch = tempfile::tempdir().expect("scratch workspace"); - let home = scratch.path().join("home"); - let workspace = scratch.path().join("workspace"); - std::fs::create_dir_all(&home).expect("create isolated home"); - std::fs::create_dir_all(&workspace).expect("create isolated workspace"); - std::env::set_var("HOME", &home); - std::env::set_var("OPENHUMAN_WORKSPACE", &workspace); - std::env::remove_var("OPENHUMAN_STORAGE_URL"); - std::env::set_var("BACKEND_URL", "http://127.0.0.1:9"); - std::env::set_var("OPENHUMAN_KEYRING_BACKEND", "file"); - let mut config = Config::default(); - config.modules.enabled = true; - config.autonomy.enabled = false; - config.autonomy.forbidden_paths.clear(); - config.workspace_dir = workspace; - config.config_path = home.join(".openhuman/config.toml"); - config.action_dir = scratch.path().join("action"); - config.action_dir_override = Some(config.action_dir.clone()); - config.save().await.expect("save fixture config"); - openhuman_core::security::secret_storage::init_workspace(scratch.path()); - let (port, shutdown, server) = start_desktop_fixture(config.clone()).await; - tokio::time::sleep(std::time::Duration::from_millis(100)).await; - if let Err(error) = health_http(port).await { - let task = if server.is_finished() { - format!("finished: {:?}", server.await) - } else { - "still running".into() - }; - panic!("health route failed: {error}; desktop server task {task}"); - } - let gate = ApprovalGate::init_global(config, "session-security-native-approval-fixture"); - let parked = { - let gate = gate.clone(); - tokio::spawn(async move { - turn_origin::with_origin( - AgentTurnOrigin::WebChat { - thread_id: "native-fixture-thread".into(), - client_id: "native-fixture-client".into(), - request_id: None, - }, - gate.intercept( - &ApprovalTurnContext::chat(ApprovalChatContext { - thread_id: "native-fixture-thread".into(), - client_id: "native-fixture-client".into(), - request_id: None, - }), - "shell", - "run harmless fixture command", - json!({ - "command":"echo approval-fixture", - "api_key": credential, - }), - ), - ) - .await - }) - }; - let mut pending = Value::Null; - for _ in 0..200 { - pending = rpc_http(port, "openhuman.approval_list_pending", json!({})).await; - if rpc_result(&pending) - .as_array() - .is_some_and(|rows| !rows.is_empty()) - { - break; - } - tokio::time::sleep(std::time::Duration::from_millis(25)).await; - } + let (port, _workspace, gate, shutdown, server) = + start_approval_fixture(scratch.path()).await; + let parked = park_shell_call( + &gate, + json!({"command": "echo approval-fixture", "api_key": credential}), + ); + let pending = wait_for_pending(port).await; let rows = rpc_result(&pending).as_array().expect("pending row list"); assert_eq!(rows.len(), 1, "the shell call should park once: {rows:?}"); assert_eq!(rows[0]["tool_name"], "shell"); @@ -490,17 +656,7 @@ fn native_fixture_parks_a_redacted_approval_until_denied() { !pending.to_string().contains(credential), "a pending approval must not show its credential argument" ); - let request_id = rows[0]["request_id"] - .as_str() - .expect("pending request id") - .to_owned(); - let decided = rpc_http( - port, - "openhuman.approval_decide", - json!({"request_id": request_id, "decision": "deny"}), - ) - .await; - rpc_result(&decided); + deny_pending(port, &rows[0]).await; let outcome = parked.await.expect("parked caller"); assert!( matches!(outcome, GateOutcome::Deny { .. }), @@ -513,3 +669,60 @@ fn native_fixture_parks_a_redacted_approval_until_denied() { .expect("desktop server shuts down cleanly"); }); } + +/// When the host cannot store an approval's audit event, the call is denied +/// outright instead of parking, so it can never be approved and run. +#[test] +#[ignore = "loads the pinned module and verifies an approval is denied when its audit write fails"] +fn native_fixture_denies_an_approval_when_the_audit_write_fails() { + run_on_agent_stack("native-approval-audit-fault", || async { + let scratch = tempfile::tempdir().expect("scratch workspace"); + let (port, workspace, gate, shutdown, server) = + start_approval_fixture(scratch.path()).await; + // One audited approval first, so the scope's stream and its tail exist. + let first = park_shell_call(&gate, json!({"command": "echo approval-fixture"})); + let pending = wait_for_pending(port).await; + let rows = rpc_result(&pending).as_array().expect("pending row list"); + assert_eq!(rows.len(), 1, "the first call should park: {rows:?}"); + deny_pending(port, &rows[0]).await; + assert!(matches!( + first.await.expect("first caller"), + GateOutcome::Deny { .. } + )); + let tails = settled_tails(&workspace).await; + assert!( + block_next_audit_events(&workspace).await >= 1, + "fault injection needs an audit stream" + ); + let faulted = park_shell_call(&gate, json!({"command": "echo approval-audit-fault"})); + let outcome = tokio::time::timeout(std::time::Duration::from_secs(30), faulted) + .await + .expect("an approval whose audit write fails must be denied, not parked") + .expect("faulted caller"); + assert!( + matches!( + &outcome, + GateOutcome::Deny { reason } + if reason.contains("EvaluateApproval2 failed") + || reason.contains("approval audit is unavailable") + ), + "the denial must come from the failed audit: {outcome:?}" + ); + let pending = rpc_http(port, "openhuman.approval_list_pending", json!({})).await; + let rows = rpc_result(&pending).as_array().expect("pending row list"); + assert!( + rows.is_empty(), + "a denied call must not be pending: {rows:?}" + ); + assert_eq!( + stored_tails(&workspace).await, + tails, + "no audit event may be committed for the denied call" + ); + shutdown.cancel(); + server + .await + .expect("desktop server task") + .expect("desktop server shuts down cleanly"); + }); +} From fad59e015babe2a9499aa3bfe1fd240f24ca8456 Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 19:26:39 +0530 Subject: [PATCH 11/12] ci(security): run TinyComputer's egress tests in the browser egress fixture TinyComputer 0.16 dropped the tinycomputer-browser `test-connector` feature; its egress-proxy test connector now lives behind cfg(test). The fixture's `cargo build --features test-connector` therefore failed. Run the crate's own egress tests instead, which exercise that connector. --- scripts/ci/security-browser-egress-fixture.sh | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/scripts/ci/security-browser-egress-fixture.sh b/scripts/ci/security-browser-egress-fixture.sh index c8bc5741ba..395c66d405 100755 --- a/scripts/ci/security-browser-egress-fixture.sh +++ b/scripts/ci/security-browser-egress-fixture.sh @@ -18,8 +18,11 @@ bash scripts/ci-cancel-aware.sh cargo test --manifest-path Cargo.toml -p openhum --no-default-features --features "$features" \ modules::browser_egress_host::tests::browser_egress_callback +# TinyComputer 0.16 keeps its egress-proxy test connector behind cfg(test) +# instead of a `test-connector` feature, so exercise it through the crate's +# own egress tests. computer_dir="$repo_root/vendor/tinycomputer" ( cd -- "$computer_dir" - bash "$repo_root/scripts/ci-cancel-aware.sh" cargo build -p tinycomputer-browser --features test-connector + bash "$repo_root/scripts/ci-cancel-aware.sh" cargo test -p tinycomputer-browser --lib egress ) From a7d918cbd9afd9fdef32aa001420f808747fcff7 Mon Sep 17 00:00:00 2001 From: M3gA-Mind Date: Tue, 3 Nov 2026 19:59:37 +0530 Subject: [PATCH 12/12] ci: re-baseline ignored tests for the two audit-fault fixtures tests/security_native_fixture.rs gains two #[ignore] tests, native_fixture_refuses_a_sandbox_plan_when_the_audit_write_fails and native_fixture_denies_an_approval_when_the_audit_write_fails. Like the other native fixtures they load the staged TinySecurity release, so they are ignored by default and run by security-native-fixture.sh with --ignored --exact. --- scripts/ci/ignored-test-baseline.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/ci/ignored-test-baseline.json b/scripts/ci/ignored-test-baseline.json index 6a2e2e01fc..6483a51ae1 100644 --- a/scripts/ci/ignored-test-baseline.json +++ b/scripts/ci/ignored-test-baseline.json @@ -7,5 +7,5 @@ "openhuman-rpc": 0, "openhuman-tinyhumans": 0, "openhuman-tui": 0, - "tests": 20 + "tests": 22 }