From 514a5b521df666d2d494f466bae5b88a8424ecd9 Mon Sep 17 00:00:00 2001 From: oxoxDev Date: Wed, 15 Jul 2026 20:10:08 +0530 Subject: [PATCH] fix(app): forward voice + tokenjuice-treesitter to the desktop build MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The Tauri shell consumes the core with `default-features = false`, so every core feature the desktop app needs must be listed explicitly. The voice gate (#4803) moved `openhuman::voice` + `openhuman::audio_toolkit` behind a default-ON `voice` feature but never added it here, and `tokenjuice-treesitter` has never been forwarded either. Effect on the shipped app: the voice facade compiled to its disabled stub, so `openhuman.voice_*` answered unknown-method, the dictation/TTS/podcast tools were absent from the agent tool belt, and TokenJuice fell back to its brace-depth heuristic instead of tree-sitter. Nothing caught it — the app compiles either way, and silent absence is exactly what a clean gate produces. v0.61.2 (tagged 2026-07-15) is the first release carrying the gate, so it is the first shipped build affected; v0.61.0 and earlier predate the promotion and are unaffected. The lockfile delta is the proof: `hound` and `lettre` (voice's exclusive deps, per the gate table in AGENTS.md) and the `tree-sitter*` crates were absent from the app's dependency graph entirely and are restored by this change. Verified: `cargo check --manifest-path app/src-tauri/Cargo.toml` passes, and `cargo tree --manifest-path app/src-tauri/Cargo.toml -e features -i openhuman` now reports media + voice + tokenjuice-treesitter. --- app/src-tauri/Cargo.lock | 68 ++++++++++++++++++++++++++++++++++++++++ app/src-tauri/Cargo.toml | 2 ++ 2 files changed, 70 insertions(+) diff --git a/app/src-tauri/Cargo.lock b/app/src-tauri/Cargo.lock index c71413f1cb..56cc43af7a 100644 --- a/app/src-tauri/Cargo.lock +++ b/app/src-tauri/Cargo.lock @@ -3564,6 +3564,12 @@ dependencies = [ "windows-link 0.2.1", ] +[[package]] +name = "hound" +version = "3.5.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "62adaabb884c94955b19907d60019f4e145d091c75345379e70d1ee696f7854f" + [[package]] name = "html5ever" version = "0.29.1" @@ -5608,9 +5614,11 @@ dependencies = [ "hkdf", "hmac 0.12.1", "hostname", + "hound", "iana-time-zone", "image", "keyring", + "lettre", "libc", "log", "mail-parser", @@ -8319,6 +8327,12 @@ dependencies = [ "pin-project-lite", ] +[[package]] +name = "streaming-iterator" +version = "0.1.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2b2231b7c3057d5e4ad0156fb3dc807d900806020c5ffa3ee6ff2c8c76fb8520" + [[package]] name = "strict-num" version = "0.1.1" @@ -9268,6 +9282,10 @@ dependencies = [ "sha2 0.11.0", "thiserror 2.0.18", "tokio", + "tree-sitter", + "tree-sitter-python", + "tree-sitter-rust", + "tree-sitter-typescript", "unicode-segmentation", "unicode-width", ] @@ -9718,6 +9736,56 @@ dependencies = [ "windows-sys 0.60.2", ] +[[package]] +name = "tree-sitter" +version = "0.26.11" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "af1c71c1c4cc0920b20d6b0f6572e7682cd07a6a2faec71067a31fa394c586df" +dependencies = [ + "cc", + "regex", + "regex-syntax", + "serde_json", + "streaming-iterator", + "tree-sitter-language", +] + +[[package]] +name = "tree-sitter-language" +version = "0.1.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "009994f150cc0cd50ff54917d5bc8bffe8cad10ca10d81c34da2ec421ae61782" + +[[package]] +name = "tree-sitter-python" +version = "0.25.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6bf85fd39652e740bf60f46f4cda9492c3a9ad75880575bf14960f775cb74a1c" +dependencies = [ + "cc", + "tree-sitter-language", +] + +[[package]] +name = "tree-sitter-rust" +version = "0.24.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "439e577dbe07423ec2582ac62c7531120dbfccfa6e5f92406f93dd271a120e45" +dependencies = [ + "cc", + "tree-sitter-language", +] + +[[package]] +name = "tree-sitter-typescript" +version = "0.23.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "6c5f76ed8d947a75cc446d5fccd8b602ebf0cde64ccf2ffa434d873d7a575eff" +dependencies = [ + "cc", + "tree-sitter-language", +] + [[package]] name = "try-lock" version = "0.2.5" diff --git a/app/src-tauri/Cargo.toml b/app/src-tauri/Cargo.toml index 4c6bb5c6ef..31c45e217a 100644 --- a/app/src-tauri/Cargo.toml +++ b/app/src-tauri/Cargo.toml @@ -142,6 +142,8 @@ cef = { version = "=146.4.1", default-features = false } # this only restores the pre-gate desktop tool surface. openhuman_core = { path = "../..", package = "openhuman", default-features = false, features = [ "media", + "voice", + "tokenjuice-treesitter", ] } tinyjuice = { version = "0.2.1", default-features = false }