@splitfireai / agent / commits / 057e235

build(watchos): move embed's reqwest to 0.13 with native-tls on watchOS

The optional reqwest dependency was 0.12 with rustls-tls-native-roots, which pulls in ring. ring fails its pointer-size asserts on arm64_32-apple-watchos. It also left two reqwest versions in the graph, since ed-acp and rmcp are already on 0.13. reqwest is now 0.13 everywhere: rustls on most targets, native-tls (Security.framework) on watchOS. embed::fetch_key needed no source changes; cargo check --features embed passes. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>

Seto committed Oct 16, 2026 at 23:38 UTC 057e235237454c9109f1b5cc1c66cd4ec333a495
2 files changed +136 -72
Cargo.lock
+126 -67
@@ -220,12 +220,6 @@ dependencies = [
220 "pkg-config",
221 ]
222
223 -[[package]]
224 -name = "base64"
225 -version = "0.22.1"
226 -source = "registry+https://github.com/rust-lang/crates.io-index"
227 -checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6"
228 -
223 [[package]]
224 name = "base64"
225 version = "0.23.1"
@@ -648,11 +642,11 @@ dependencies = [
642 "agent-client-protocol",
643 "anyhow",
644 "async-trait",
651 - "base64 0.23.1",
645 + "base64",
646 "directories",
647 "ed-mcp",
648 "futures",
655 - "reqwest 0.13.5",
649 + "reqwest",
650 "serde",
651 "serde_json",
652 "tokio",
@@ -776,6 +770,21 @@ version = "0.2.0"
770 source = "registry+https://github.com/rust-lang/crates.io-index"
771 checksum = "77ce24cb58228fbb8aa041425bb1050850ac19177686ea6e0f41a70416f56fdb"
772
773 +[[package]]
774 +name = "foreign-types"
775 +version = "0.3.2"
776 +source = "registry+https://github.com/rust-lang/crates.io-index"
777 +checksum = "f6f339eb8adc052cd2ca78910fda869aefa38d22d5cb648e6485e4d3fc06f3b1"
778 +dependencies = [
779 + "foreign-types-shared",
780 +]
781 +
782 +[[package]]
783 +name = "foreign-types-shared"
784 +version = "0.1.1"
785 +source = "registry+https://github.com/rust-lang/crates.io-index"
786 +checksum = "00b0228411908ca8685dba7fc2cdd70ec9990a6e753e89b6ac91a84c40fbaf4b"
787 +
788 [[package]]
789 name = "form_urlencoded"
790 version = "1.2.2"
@@ -1053,19 +1062,34 @@ dependencies = [
1062 "hyper",
1063 "hyper-util",
1064 "rustls",
1056 - "rustls-native-certs",
1065 "tokio",
1066 "tokio-rustls",
1067 "tower-service",
1068 ]
1069
1070 +[[package]]
1071 +name = "hyper-tls"
1072 +version = "0.6.0"
1073 +source = "registry+https://github.com/rust-lang/crates.io-index"
1074 +checksum = "70206fc6890eaca9fde8a0bf71caa2ddfc9fe045ac9e5c70df101a7dbde866e0"
1075 +dependencies = [
1076 + "bytes",
1077 + "http-body-util",
1078 + "hyper",
1079 + "hyper-util",
1080 + "native-tls",
1081 + "tokio",
1082 + "tokio-native-tls",
1083 + "tower-service",
1084 +]
1085 +
1086 [[package]]
1087 name = "hyper-util"
1088 version = "0.1.21"
1089 source = "registry+https://github.com/rust-lang/crates.io-index"
1090 checksum = "ddc03d96684f9226b8a787cdb71488417b53ab5ea8fdb1dac946cb9431cc8bff"
1091 dependencies = [
1068 - "base64 0.23.1",
1092 + "base64",
1093 "bytes",
1094 "futures-channel",
1095 "futures-util",
@@ -1529,6 +1553,23 @@ dependencies = [
1553 "windows-sys 0.61.2",
1554 ]
1555
1556 +[[package]]
1557 +name = "native-tls"
1558 +version = "0.2.18"
1559 +source = "registry+https://github.com/rust-lang/crates.io-index"
1560 +checksum = "465500e14ea162429d264d44189adc38b199b62b1c21eea9f69e4b73cb03bbf2"
1561 +dependencies = [
1562 + "libc",
1563 + "log",
1564 + "openssl",
1565 + "openssl-probe",
1566 + "openssl-sys",
1567 + "schannel",
1568 + "security-framework",
1569 + "security-framework-sys",
1570 + "tempfile",
1571 +]
1572 +
1573 [[package]]
1574 name = "nix"
1575 version = "0.31.3"
@@ -1598,12 +1639,49 @@ version = "1.21.4"
1639 source = "registry+https://github.com/rust-lang/crates.io-index"
1640 checksum = "9f7c3e4beb33f85d45ae3e3a1792185706c8e16d043238c593331cc7cd313b50"
1641
1642 +[[package]]
1643 +name = "openssl"
1644 +version = "0.10.81"
1645 +source = "registry+https://github.com/rust-lang/crates.io-index"
1646 +checksum = "77823a27f0babb03091cb9ed9ef80af3b39dbc82f97e8fa530374b7dafd87a45"
1647 +dependencies = [
1648 + "bitflags 2.13.2",
1649 + "cfg-if",
1650 + "foreign-types",
1651 + "libc",
1652 + "openssl-macros",
1653 + "openssl-sys",
1654 +]
1655 +
1656 +[[package]]
1657 +name = "openssl-macros"
1658 +version = "0.1.1"
1659 +source = "registry+https://github.com/rust-lang/crates.io-index"
1660 +checksum = "a948666b637a0f465e8564c73e89d4dde00d72d4d473cc972f390fc3dcee7d9c"
1661 +dependencies = [
1662 + "proc-macro2",
1663 + "quote",
1664 + "syn 2.0.119",
1665 +]
1666 +
1667 [[package]]
1668 name = "openssl-probe"
1669 version = "0.2.1"
1670 source = "registry+https://github.com/rust-lang/crates.io-index"
1671 checksum = "7c87def4c32ab89d880effc9e097653c8da5d6ef28e6b539d313baaacfbafcbe"
1672
1673 +[[package]]
1674 +name = "openssl-sys"
1675 +version = "0.9.117"
1676 +source = "registry+https://github.com/rust-lang/crates.io-index"
1677 +checksum = "b47e7e6bb2c38cd930d25a23b40fa52e068c10e85f3e03a7f5ba5aaca5713695"
1678 +dependencies = [
1679 + "cc",
1680 + "libc",
1681 + "pkg-config",
1682 + "vcpkg",
1683 +]
1684 +
1685 [[package]]
1686 name = "option-ext"
1687 version = "0.2.0"
@@ -2033,51 +2111,13 @@ version = "0.8.11"
2111 source = "registry+https://github.com/rust-lang/crates.io-index"
2112 checksum = "d6f6ff9a378485b298a5286656da665ba74413d36db0979633275d2e708145d4"
2113
2036 -[[package]]
2037 -name = "reqwest"
2038 -version = "0.12.28"
2039 -source = "registry+https://github.com/rust-lang/crates.io-index"
2040 -checksum = "eddd3ca559203180a307f12d114c268abf583f59b03cb906fd0b3ff8646c1147"
2041 -dependencies = [
2042 - "base64 0.22.1",
2043 - "bytes",
2044 - "futures-core",
2045 - "http",
2046 - "http-body",
2047 - "http-body-util",
2048 - "hyper",
2049 - "hyper-rustls",
2050 - "hyper-util",
2051 - "js-sys",
2052 - "log",
2053 - "percent-encoding",
2054 - "pin-project-lite",
2055 - "quinn",
2056 - "rustls",
2057 - "rustls-native-certs",
2058 - "rustls-pki-types",
2059 - "serde",
2060 - "serde_json",
2061 - "serde_urlencoded",
2062 - "sync_wrapper",
2063 - "tokio",
2064 - "tokio-rustls",
2065 - "tower",
2066 - "tower-http",
2067 - "tower-service",
2068 - "url",
2069 - "wasm-bindgen",
2070 - "wasm-bindgen-futures",
2071 - "web-sys",
2072 -]
2073 -
2114 [[package]]
2115 name = "reqwest"
2116 version = "0.13.5"
2117 source = "registry+https://github.com/rust-lang/crates.io-index"
2118 checksum = "16a1cfa75cc186dd73d5818e510e042e40927bccc9c236b061cea97e1eb08029"
2119 dependencies = [
2080 - "base64 0.23.1",
2120 + "base64",
2121 "bytes",
2122 "futures-core",
2123 "futures-util",
@@ -2086,9 +2126,11 @@ dependencies = [
2126 "http-body-util",
2127 "hyper",
2128 "hyper-rustls",
2129 + "hyper-tls",
2130 "hyper-util",
2131 "js-sys",
2132 "log",
2133 + "native-tls",
2134 "percent-encoding",
2135 "pin-project-lite",
2136 "quinn",
@@ -2099,6 +2141,7 @@ dependencies = [
2141 "serde_json",
2142 "sync_wrapper",
2143 "tokio",
2144 + "tokio-native-tls",
2145 "tokio-rustls",
2146 "tokio-util",
2147 "tower",
@@ -2131,7 +2174,7 @@ version = "3.5.1"
2174 source = "registry+https://github.com/rust-lang/crates.io-index"
2175 checksum = "ab5023804cbe0304cbe06197ac16e645a0a0d0ffa2953bf735c15c2fa0213350"
2176 dependencies = [
2134 - "base64 0.23.1",
2177 + "base64",
2178 "bytes",
2179 "chrono",
2180 "futures",
@@ -2139,7 +2182,7 @@ dependencies = [
2182 "indexmap 2.14.2",
2183 "pin-project-lite",
2184 "process-wrap",
2142 - "reqwest 0.13.5",
2185 + "reqwest",
2186 "serde",
2187 "serde_json",
2188 "sse-stream",
@@ -2200,7 +2243,6 @@ checksum = "0d41d731c7d2f962d1ccc364cec258de3c0e93b38c2fb3ba97ac74513048d634"
2243 dependencies = [
2244 "aws-lc-rs",
2245 "once_cell",
2203 - "ring",
2246 "rustls-pki-types",
2247 "rustls-webpki",
2248 "subtle",
@@ -2425,25 +2467,13 @@ dependencies = [
2467 "zmij",
2468 ]
2469
2428 -[[package]]
2429 -name = "serde_urlencoded"
2430 -version = "0.7.1"
2431 -source = "registry+https://github.com/rust-lang/crates.io-index"
2432 -checksum = "d3491c14715ca2294c4d6a88f15e84739788c1d030eed8c110436aafdaa2f3fd"
2433 -dependencies = [
2434 - "form_urlencoded",
2435 - "itoa",
2436 - "ryu",
2437 - "serde",
2438 -]
2439 -
2470 [[package]]
2471 name = "serde_with"
2472 version = "3.24.0"
2473 source = "registry+https://github.com/rust-lang/crates.io-index"
2474 checksum = "df9adc193c780ef8f159aee8b61e2d5801aaa555e6eb0947fe45530ec506296f"
2475 dependencies = [
2446 - "base64 0.23.1",
2476 + "base64",
2477 "bs58",
2478 "chrono",
2479 "hex",
@@ -2567,7 +2597,7 @@ dependencies = [
2597 "agent-client-protocol",
2598 "anyhow",
2599 "async-trait",
2570 - "base64 0.23.1",
2600 + "base64",
2601 "directories",
2602 "ebur128",
2603 "ed-acp",
@@ -2576,7 +2606,7 @@ dependencies = [
2606 "ed-mcp",
2607 "hound",
2608 "realfft",
2579 - "reqwest 0.12.28",
2609 + "reqwest",
2610 "serde",
2611 "serde_json",
2612 "symphonia",
@@ -2877,6 +2907,19 @@ dependencies = [
2907 "syn 3.0.6",
2908 ]
2909
2910 +[[package]]
2911 +name = "tempfile"
2912 +version = "3.27.0"
2913 +source = "registry+https://github.com/rust-lang/crates.io-index"
2914 +checksum = "32497e9a4c7b38532efcdebeef879707aa9f794296a4f0244f6f69e9bc8574bd"
2915 +dependencies = [
2916 + "fastrand",
2917 + "getrandom 0.4.3",
2918 + "once_cell",
2919 + "rustix",
2920 + "windows-sys 0.52.0",
2921 +]
2922 +
2923 [[package]]
2924 name = "thiserror"
2925 version = "2.0.21"
@@ -2982,6 +3025,16 @@ dependencies = [
3025 "syn 3.0.6",
3026 ]
3027
3028 +[[package]]
3029 +name = "tokio-native-tls"
3030 +version = "0.3.1"
3031 +source = "registry+https://github.com/rust-lang/crates.io-index"
3032 +checksum = "bbae76ab933c85776efabc971569dd6119c580d8f5d448769dec1764bf796ef2"
3033 +dependencies = [
3034 + "native-tls",
3035 + "tokio",
3036 +]
3037 +
3038 [[package]]
3039 name = "tokio-rustls"
3040 version = "0.26.6"
@@ -3215,6 +3268,12 @@ version = "0.1.1"
3268 source = "registry+https://github.com/rust-lang/crates.io-index"
3269 checksum = "ba73ea9cf16a25df0c8caa16c51acb937d5712a8429db78a3ee29d5dcacd3a65"
3270
3271 +[[package]]
3272 +name = "vcpkg"
3273 +version = "0.2.15"
3274 +source = "registry+https://github.com/rust-lang/crates.io-index"
3275 +checksum = "accd4ea62f7bb7a82fe23066fb0957d48ef677f6eeb8215f372f52e48bb32426"
3276 +
3277 [[package]]
3278 name = "walkdir"
3279 version = "2.5.0"
Cargo.toml
+10 -5
@@ -37,11 +37,6 @@ async-trait = "0.1"
37 directories = "6.0.0"
38 ebur128 = "0.1.10"
39 realfft = "3.5.0"
40 -# Only for `embed::fetch_key` and `embed::splitfire_mcp`, gated behind the `embed` feature.
41 -reqwest = { version = "0.12", default-features = false, features = [
42 - "json",
43 - "rustls-tls-native-roots",
44 -], optional = true }
40 serde = { version = "1.0.229", features = ["derive"] }
41 serde_json = "1.0.151"
42 symphonia = { version = "0.6.1", features = ["mp3", "flac", "ogg", "vorbis", "wav", "pcm", "aac", "isomp4", "aiff", "alac", "mkv"] }
@@ -53,3 +48,13 @@ uuid = { version = "1.27.0", features = ["v4"] }
48 ed-acp-testkit = { version = "1.3.0" }
49 base64 = "0.23.1"
50 hound = "3.5.1"
51 +
52 +# Only for `embed::fetch_key` and `embed::splitfire_mcp`, gated behind the `embed` feature.
53 +# reqwest 0.13's `rustls` is the aws-lc provider, whose C code doesn't build for arm64_32
54 +# (and `ring` asserts 64-bit pointers on aarch64), so watchOS uses `native-tls`, which is
55 +# Security.framework.
56 +[target.'cfg(not(target_os = "watchos"))'.dependencies]
57 +reqwest = { version = "0.13", default-features = false, features = ["json", "rustls"], optional = true }
58 +
59 +[target.'cfg(target_os = "watchos")'.dependencies]
60 +reqwest = { version = "0.13", default-features = false, features = ["json", "native-tls"], optional = true }