Repository navigation
Use native-tls for reqwest on watchOS so arm64_32 builds - #41
Conversation
reqwest 0.13's rustls feature pulls in aws-lc-sys, whose C code fails on arm64_32 because it assumes 64-bit limbs on aarch64. ring fails there too, on its pointer-size asserts. On watchOS, ed-acp and ed-onde-account now use reqwest's native-tls (Security.framework) and ed-mcp uses rmcp's reqwest-native-tls, so no rustls crypto provider is built. Other platforms keep rustls with aws-lc. The workspace reqwest dependency no longer picks a TLS backend; each crate chooses one per target. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
There was a problem hiding this comment.
This change adapts the workspace to build for watchOS (arm64_32) by switching reqwest and rmcp TLS backends from rustls (aws-lc/ring) to native-tls on watchOS targets. The top-level reqwest dependency drops the rustls feature, and each crate (ed-acp, ed-mcp, ed-onde-account) now conditionally enables rustls or native-tls based on the target OS. rmcp is similarly configured to use reqwest-native-tls on watchOS. No source code changes are made; all changes are in Cargo.toml files. This should resolve build failures for arm64_32-apple-watchos and allow the agent library to be included in the SplitFire AI Watch app. Previous findings about platform-specific TLS backend selection and build failures appear addressed.
Automated review by siGit Code Review · commit a87e191 · see the review dashboard
The SplitFire AI Watch app needs an
arm64_32slice (App Store Connect error 90733), and the agent library doesn't build forarm64_32-apple-watchostoday. Both rustls crypto providers assume 64-bit pointers on aarch64:aws-lc-sys(reqwest 0.13rustls, and rmcp'sreqwestfeature) fails inbcm.c.ring0.17.14 fails the_ASSUMED_POINTER_SIZEasserts incpu/arm.rs.On watchOS this switches to
native-tls, which is Security.framework and needs no rustls provider:reqwestdependency no longer selects a TLS backend.ed-acpanded-onde-accountuserustlson non-watchOS andnative-tlson watchOS.ed-mcpuses rmcpreqweston non-watchOS andreqwest-native-tlson watchOS.Every other platform keeps rustls with aws-lc. Nothing in
srctouches TLS APIs, so there are no source changes.cargo check -p ed-acp -p ed-mcp -p ed-onde-accountpasses on the host. The fullarm64_32build is verified from the splitfire agent FFI crate, which consumes this branch through a path patch until it is released.