Upstream dependencies
upstream.json lists every pin, workaround and upstream behaviour this plugin depends on, each with its URL, its state when recorded, what it is waiting on, and what to re-check when it moves — in a shape a scheduled job can poll: for each entry with an upstream.api, GET it and compare the field it names against state_when_recorded.
This page is a readable copy of the entries as recorded on 2026-09-23. The JSON file is the source of truth.
| Entry | Kind | Waiting on |
|---|---|---|
tauri-specta-rc | pin | A stable tauri-specta 2.0.0 (and specta 2.0.0) |
tauri-android-jackson-api24 | upstream defect | Tauri dropping jackson-databind 2.15.3, or requiring API 26 |
tauri-ipc-script-es2018 | upstream behaviour | Nothing |
wry-android-loadurl-posted | upstream behaviour | Nothing |
tauri-ios-project-yml-once | upstream behaviour | Nothing |
tauri-specta release candidate
- What:
tauri-specta = "=2.0.0-rc.25"(Cargo.toml), withspecta = "=2.0.0-rc.25"and, fortests/bindings.rs,specta-typescript = "=0.0.12". - Why: the house plugin standard requires tauri-specta for end-to-end types. It has never had a stable 2.0 release; its own crate docs tell users to pin with
=during the rc period because the generated bindings change shape between rcs. - Upstream: crates.io/crates/tauri-specta, polled on
crate.max_stable_version(nullwhen recorded). - Re-check: when a stable version appears, move all three pins, run
UPDATE_BINDINGS=1 cargo test --test bindings, review the diff ofguest-js/bindings.ts, and update the API docs.
Android 7 crash in stock Tauri
- What: stock Tauri crashes in
TauriActivity.onCreateon Android 7.x (API 24/25) withNoClassDefFoundError: java.lang.BootstrapMethodError, from jackson-databind 2.15.3's static initialiser — before any plugin, this guard included, is constructed. Measured on tauri 2.11.6. - Workaround:
examples/tauri-app/android-7-jackson-workaround.zshforces jackson-databind 2.12.7.1 and enables core library desugaring in the example's generated Gradle project. The plugin does not impose this on consumers; see Android. - Upstream: tauri-apps/tauri#8788, open when recorded.
- Re-check: when the issue closes, check the jackson-databind version in the new Tauri release and run the example without the workaround on an API 24 image; if it starts, delete the workaround.
Tauri's IPC script on old engines
- What: Tauri's injected IPC script uses object spread (
...options,scripts/ipc-protocol.jsline 77 in tauri 2.11.6), a Chromium 60 feature. On Chromium 53 it fails to parse, so everyinvoke()rejects. - Why it matters here: it is the premise for the dialog being native — an HTML fallback whose button calls
invoke()is dead on exactly the engines it is for. - Upstream: raised in a comment on tauri-apps/tauri#8788.
- Re-check: informational. If Tauri ever ships an ES5 IPC script, the native dialog stays: it is strictly more robust.
wry's posted first load on Android
- What: wry's Android
loadUrlMainThreadposts the app's firstloadUrlto the main looper (wry 0.55.1,RustWebView.kt), so it runs after the plugin'sload(webView)hook. Blanking the WebView insideload()alone is overtaken by that posted load. - Handled by: Tauri's
on_navigationhook, plus a second, posted neutralize. See the lifecycle. - Re-check: on a wry bump, re-run the Chromium 109 arm and confirm the log still shows
refused navigation to http://tauri.localhost/and nopage load started: http://tauri.localhost/.
Tauri's iOS project.yml is written once
- What:
tauri ios initwritesproject.ymlonly if it does not exist, so changingbundle.iOS.minimumSystemVersionafter the first init never reachesIPHONEOS_DEPLOYMENT_TARGET.bundle.iOS.templateis rendered on every init and does. The template path is resolved against the CLI's working directory. Tauri 2.11.6's default target is 14.0; thedevbranch says 15.0. - Upstream:
project.rsat tauri-v2.11.6. - Re-check: on a Tauri bump, re-copy Tauri's
project.ymltemplate at the new tag intoexamples/tauri-app/src-tauri/ios-project.yml.hbs, and re-run the three-step check. See iOS.