Repository navigation
research: upgrade to Tauri 2.12 and carry the Android tao patch - #1264
Draft
AnthonyRonning wants to merge 4 commits into
Draft
AnthonyRonning wants to merge 4 commits into
AnthonyRonning wants to merge 4 commits into
Conversation
Contributor
|
Maple development preview: https://fd298ab5.maple-ca8.pages.dev Commit: Uses development API, billing, flags and PCR configuration. Cloudflare Access applies. |
Pristine copy of the crates.io release, without its standalone lockfile, so the following commits show Maple's patches as reviewable diffs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Tauri 2.12 pulls in tao 0.37, the first release with working single-window UIScene support, which iOS 27 SDK builds require (UIKit aborts at launch otherwise). It also carries the Xcode 27 fixes in tauri-cli and in the Swift plugin entry points of log and opener. - tauri 2.12.4, tauri-build/macros/codegen 2.7.3, tauri-runtime-wry 2.12.2, wry 0.57.0 - plugins: log 2.10.1, updater 2.14.0, opener 2.7.2, os 2.4.0, fs 2.7.1; deep-link and single-instance stay on their pins - @tauri-apps/cli 2.12.3, @tauri-apps/api 2.12.4, JS plugins to match - tao is patched from the vendored 0.37.1 copy instead of 0.35.2 - Android: Gradle wrapper 8.11.1 -> 8.14.3 (with its checksum); Tauri 2.12's Android library and plugins use the compilerOptions DSL, which needs Gradle 8.13+. AGP, Kotlin, SDK, NDK and JDK stay as they are. All versions are at least seven days old (bunfig minimumReleaseAge). Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tauri-apps/tao#1217 was closed by #1224, which only fixed the getType() null case. tao 0.37 still unwraps getIntent/getAction and the ClipData and EXTRA_STREAM conversions, so a null launch intent aborts the process across JNI before tauri-plugin-deep-link sees OAuth or payment redirects. Re-apply Maple's 0.35.2 patch minus the hunk upstream now covers; checked with cargo check --target aarch64-linux-android. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
tauri-cli 2.12 looks for target/.tauri/linuxdeploy-07333c6-<arch>.AppImage instead of linuxdeploy-<arch>.AppImage. It no longer found the pinned wrapper, so it downloaded an unpinned linuxdeploy and ran it with its own embedded gtk plugin. That plugin sources /etc/os-release, which the Nix /usr bind leaves dangling, and the AppImage step failed. Install the wrapper under the new name. tauri-cli now rewrites its embedded plugin scripts in the cache on every build, so stop writing Maple's copies there; the wrapper never runs them. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
AnthonyRonning
force-pushed
the
research/tauri-2.12
branch
from
October 29, 2026 03:12
95921de to
ca82731
Compare
This branch was successfully deployed
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Why
Research's iOS app has to be built with Xcode 27 / the iOS 27 SDK: App Store Connect requires it from April 2027, and the iPhone Duo only runs apps full screen when they're built with the iOS 27.1 SDK. That SDK requires UIKit's scene life cycle. tao 0.37, which only Tauri 2.12 pulls in, is the first tao with working single-window scene support; Tauri 2.11 is pinned to tao 0.35, whose release builds crash at launch once a scene manifest is added (tauri-apps/tao#1340). Tauri 2.12 also carries the Xcode 27 fixes in tauri-cli and in the log/opener Swift entry points.
This is the bottom of a three-PR stack: Tauri 2.12 (this) → PR #1265 iOS scene adoption → PR #1266 Xcode 27.1 in CI. It keeps building with today's Xcode 26.5 pin.
Rebased on master after the CI rewrite and the removal of Research's Agent Mode. That removal dropped the dialog plugin, so this PR no longer bumps it. The previous push also carried build artifacts from the sign-in-with-apple plugin directory (
.tauri/tauri-api,Package.resolved); they're gone.What
@tauri-apps/cli2.12.3,@tauri-apps/api2.12.4.minimumReleaseAge). Both lockfiles were regenerated from master's with targeted updates, and newer patch releases (tauri 2.12.5, wry 0.57.1 and others) were pinned back to the validated versions.tauri-plugin-deep-link =2.4.7stays for the Android callback regression.tauri-plugin-single-instance =2.4.0stays only because 2.4.1+ needs deep-link 2.4.8+; there's now a comment saying so.getType(). tao 0.37 still unwrapsgetIntent/getActionand the ClipData/EXTRA_STREAMconversions, so a null launch intent aborts before tauri-plugin-deep-link sees an OAuth or payment redirect.cargo check --target aarch64-linux-android.distributionSha256Sum. Tauri 2.12's Android library and plugins use thecompilerOptionsDSL, which needs Gradle 8.13+. AGP 8.10.1, Kotlin 1.9.25, SDK 36, NDK 27 and JDK 21 are unchanged.target/.tauri/linuxdeploy-07333c6-<arch>.AppImage, a new versioned name. It no longer found the pinned wrapper, so it downloaded an unpinned linuxdeploy and ran it with tauri's embedded gtk plugin. That plugin sources/etc/os-release, which the Nix/usrsandbox leaves dangling, so the Linux AppImage build failed. The wrapper is now installed under the new name, so bundling stays on the flake-pinned linuxdeploy and plugins. tauri-cli now rewrites its plugin scripts in that cache on every build, so Maple stops writing its own copies there; the wrapper never runs them.Validation
plan.py lint, and thedeps-research,research-web,updatesandagent-updateslanes pass.cargo fmt --check, the local-deps check andcargo test --all-targetspass (85 + 3 tests).cargo check --target aarch64-linux-android.ci-okpasses. The plan ranresearch-rust,research-web,research-ios,research-android,deps-research,updates,agent-updatesandrepo.research-desktop-linuxpassed in PR #1266'sci:packageevidence run, whose head includes this PR. It bundled with the pinned linuxdeploy. The Windows and Agent packaging lanes passed in the same run.Needs a device or a release to confirm
None of the CI lanes runs the app.
cloud.opensecret.maple://OAuth plus the payment App Link, with the app killed and with it running. This is where the tao patch matters.open -n.WM_ENDSESSION, so Maple's async agent shutdown is skipped; the agent's children are covered by the process-wrap job object.GDK_BACKEND=x11.tauri signer sign --app-version). macOS updater bundles signed bytauri buildalready carry it. The manual re-signs inscripts/ci/_common.shdon't, which still verifies becauserequireSignedVersiondefaults to off. Passing the version there would let us turn that check on later.🤖 Generated with Claude Code