Saddle 1.8.10 — native surfaces and artifact optimization
Saddle 1.8.10 — native surfaces and artifact optimization
Saddle 1.8.10 keeps the TypeScript-first library as the source of truth and makes the conversion boundaries explicit. The desktop Tauri shell remains the Saddle Browser application, while Android and iOS use Capacitor 8.5.0 against the same compiled web/dist/public surface.
Architecture
The root browser/ directory remains transport-neutral browser-agent logic. The desktop/ directory owns the Tauri browser shell. The android/ and ios/ directories own only native conversion metadata, Gradle/Xcode project files, WebView hosting and caller-configured signing. No native surface reimplements the engine.
Verified release assets
The live release contains 20 assets. Sizes below are bytes and were read from the GitHub release after all successful workflows completed.
Android optimization
The Capacitor Android release enables R8 code shrinking, resource shrinking and optimized resource shrinking through Android Gradle Plugin 8.13. The final APK is 3,498,594 bytes, approximately 3.34 MiB; the AAB is 3,893,352 bytes, approximately 3.71 MiB. When production keystore secrets are absent, the workflow uses an ephemeral CI test key and marks the Android manifest ci-test-key. Caller-provided keystore secrets produce a caller-key artifact. The AAB is the preferred store input, while the APK is retained for direct test installation.
The v1.8.9 Tauri debug APK measured approximately 119.5 MiB because libsaddle_desktop.so alone contributed about 118.1 MiB. The 1.8.10 Capacitor path avoids that Rust mobile binary and reuses the system WebView, reducing the attached APK by approximately 97.1% compared with the previous debug APK. The 1.8.10 figure is a release artifact measurement, not a promise about future plugin additions.
Signing and unavailable targets
Desktop files are unsigned CI outputs. Android files use the ephemeral test key unless caller production signing secrets are configured. The iOS job remains gated by SADDLE_IOS_ENABLED or explicit manual dispatch and requires caller-owned Apple certificates, provisioning profiles and export options; no IPA is claimed in this release because those inputs were not enabled. PKG, MSIX, Snap and Flatpak are deferred or caller-owned targets.
Verification
The release workflows succeeded for desktop Linux, Windows and macOS, Capacitor Android, container packaging, extension packaging, registry publication and release validation. Local gates passed before tagging: 99 active Node tests, 69 legacy Vitest tests, web typecheck, web build, package dry-run, formatting checks and npm audit --audit-level=high with zero vulnerabilities.