Publish New Versions (v2) - #3591
Merged
Merged
Conversation
github-actions
Bot
force-pushed
the
ci/release-v2
branch
3 times, most recently
from
September 20, 2026 00:01
ba6c086 to
965edb9
Compare
github-actions
Bot
force-pushed
the
ci/release-v2
branch
from
September 20, 2026 00:06
965edb9 to
f8962bc
Compare
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.
Version Updates
Merging this PR will release new versions of the following packages based on your change files.
api-example
[2.0.49]
Dependencies
http@2.7.0log@2.9.2updater@2.12.0api-example-js
[2.0.45]
Dependencies
log-js@2.9.2updater-js@2.12.0http
[2.7.0]
1198a52 Security: Added the
scopeRedirectsplugin configuration option, which checks the URL scope on every hop of a redirect chain instead of only on the URL requested by the frontend. Without it, a server on an allowed origin can redirect the request to any other origin - includinglocalhostservices, internal hosts and cloud metadata endpoints - and the plugin follows it, returning the response to the webview.{ "plugins": { "http": { "scopeRedirects": true } } }It is opt-in because a redirect to a URL that is not allowed by the scope now fails with
url not allowed on the configured scopeinstead of being followed, so applications that rely on being redirected outside of their scope must add the redirect target to the scope. This will become the default in v3.Note that
tauri_plugin_http::init()now returnsTauriPlugin<R, Option<Config>>instead ofTauriPlugin<R>.log
[2.9.2]
webview:myFunction@http://localhost:5173/src/myFile.ts?t=1787480723620:47:4towebview::myFunction@http://localhost:5173/src/myFile.ts?t=1787480723620:47:4)log-js
[2.9.2]
webview:myFunction@http://localhost:5173/src/myFile.ts?t=1787480723620:47:4towebview::myFunction@http://localhost:5173/src/myFile.ts?t=1787480723620:47:4)single-instance
[2.4.5]
updater
[2.12.0]
1308bfa Breaking change: the
allowDowngradesoption was removed from thecheckcommand and is now read from the plugin configuration instead.Previously any code running in the webview could pass
allowDowngrades: truetoplugin:updater|checkand relax the version check from "the update must be newer" to "the update must be different", overriding the comparator the application had configured on the Rust side. The flag is now an application-level setting:{ "plugins": { "updater": { "allowDowngrades": true } } }It defaults to
false, and is ignored when the application provides its ownBuilder::default_version_comparator, which continues to take precedence.690dcfd Add a
requireSignedVersionconfiguration option that binds an update to the version it was signed for.The update endpoint response is fetched over TLS but is not itself signed, and the signature only covers the downloaded artifact. Anyone able to serve a crafted response could therefore pair an inflated
versionfield with theurlandsignatureof an older release and force a downgrade to a genuine but outdated build, because that older artifact carries a valid signature.The Tauri CLI records the version in the signature's trusted comment, which the signature covers. With this option enabled the updater compares that signed version against the one announced by the endpoint and rejects the update when they differ:
{ "plugins": { "updater": { "requireSignedVersion": true } } }It defaults to
falsebecause releases signed before the CLI started recording the version carry none and would be rejected. Re-sign and re-publish every release your users can still update from before enabling it, otherwise an older signature can still be served to bypass the check. When the signature does carry a version, a mismatch is rejected whether or not the option is enabled.This is checked independently of
allowDowngrades: it constrains which artifact a given version number may resolve to, not whether that version is newer than the running one.updater-js
[2.12.0]
1308bfa Breaking change: the
allowDowngradesoption was removed from thecheckcommand and is now read from the plugin configuration instead.Previously any code running in the webview could pass
allowDowngrades: truetoplugin:updater|checkand relax the version check from "the update must be newer" to "the update must be different", overriding the comparator the application had configured on the Rust side. The flag is now an application-level setting:{ "plugins": { "updater": { "allowDowngrades": true } } }It defaults to
false, and is ignored when the application provides its ownBuilder::default_version_comparator, which continues to take precedence.