503 Commits
Author SHA1 Message Date
Lucas Fernandes Nogueira 152529eb81 Revert "feat(core): add android activityEmbedding config (#15255)" (#16138)
This reverts commit 93bf07f4bb.
2026-09-26 05:55:56 -03:00
Lucas Fernandes Nogueira 93bf07f4bb feat(core): add android activityEmbedding config (#15255)
* feat(core): add androidEmbedding config

automatically configures the project to support Activity embedding and generate split rules from config

* cr
2026-09-25 10:04:57 -03:00
Tunglies 8265c982f0 perf: reduce redundant clones and allocations (#16091)
* perf: reduce redundant clones and allocations

- tray: Arc::unwrap_or_clone for icon updates, skip 4MiB RGBA clone when uniquely owned
- asset protocol: keep decoded path as Cow, build SafePathBuf once, borrow Range header, write multi-range bodies directly into the response buffer
- menu builders: move MenuId into the main-thread closure instead of cloning
- tauri-utils: AssetKey::from borrows rooted paths via Cow

Signed-off-by: Tunglies <77394545+Tunglies@users.noreply.github.com>

* fix clippy

* fix fmt while rebase

---------

Signed-off-by: Tunglies <77394545+Tunglies@users.noreply.github.com>
2026-09-23 13:25:39 +08:00
Lucas Nogueira e3e3474d33 fix(android): JSObject and JSArray serialization 2026-09-22 21:50:12 -03:00
Fabian-LarsandLucas Nogueira 4a50656537 feat: add liquid glass window effects (#14454)
* feat: add liquid glass effects

* update objc2

* Enhance Liquid Glass effects and update objc2

Added new Liquid Glass window effects and updated dependencies.

* revert cargo toml changes

* wrong version number in ts comment

* gremlin

* put behind feature flag (untested)

* Revert "put behind feature flag (untested)"

This reverts commit e6a4eee23b5d2d717ea602ca93fc4eafecd7af1e.

* cr, docs

* update example

* non_exhaustive

* interactive

* NSEnumerator

* window-vibrancy 0.8

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2026-09-22 15:29:59 -03:00
Lucas Fernandes Nogueira 59e077457a feat(tests): run e2e tests on mobile (#16075)
* feat(tests): add mobile e2e tests

* fix pnpm usage

* fix ios test

* chore: bump automation deps

* fix audit

* remove silly tests
2026-09-21 21:50:14 -03:00
seekskyworldandLucas Nogueira d8d02ba60c feat: expose app exit via JS process API (#14767)
* feat: add process exit api

* chore: update api bundle

* code review

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2026-09-19 08:09:31 -03:00
Oscar LenziandLucas Nogueira 6edc2f4d49 feat(window): add command to set fullscreen on specific monitor (#14926)
* feat(window): add command to set fullscreen on specific monitor

* update example, add warns

* remove warns

* fix checks

* fix lockfile [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2026-09-19 08:05:48 -03:00
Tony 2dcf227d37 chore: format with edition 2024 style (#16045) 2026-09-18 00:42:56 +08:00
Lucas Fernandes Nogueira 0a28d9b764 feat: add e2e tests for API (#15760)
* feat: add e2e tests for API

* fix pnpm

* ci

* test on push for now

* workflow_dispatch

* fix lint

* fix CI build on mac

* fix audit

* fix tests

* fix windows CI

* fix tests

* install driver fix

* fix windows test

* test ci

* test

* test

* fix ci

* actually fix windows ci test

* test

* pin

* fix tests

* remove api env override

* bump actions, fix workaround

* code review

* bump deps
2026-09-16 13:36:41 -03:00
Tony 2e6e33c850 chore: migrate to edition 2024 (#16029)
* `cargo fix --edition`

* update editions

* `cargo fmt`

* revert drop orders change from `cargo fix --edition`

* resolver v3

* fix audit

* implicit readme links

* update schemars to 0.8.22

* clippy

* remove redundant unsafe

* revert to 2021 fmt to keep the changes small

* move all expr to 2024

* Revert "clippy"

This reverts commit 671cd0caa15bf463b7d24950c9b6c2ce1d1fcf5b.

* minor clippy fixes

* Setup workspace lints and ignore `collapsible_if`

* unsafe set var for mac

* revert all format changes (hopefully)

* more unsafe set var

* `no_mangle` is now unsafe

* Bump schemars fork

* rename `gen`s

* audit unsafe env var modifications

* revert more formatting diffs

* Add change file

* edition 2024 notice

* fix bench warnings
2026-09-16 13:27:27 -03:00
Lucas Fernandes Nogueira 9e9a54dea2 fix: support iOS 27 development using Xcode 27 (#15890)
* fix: support iOS 27 development using Xcode 27

* pin swift-rs to 1.0.8

* fix doc

* fix doc

* do not UIApplicationSupportsMultipleScenes by default

* update tao

* update example

* update schemas

* fix windows build
2026-08-31 08:54:52 -03:00
sftseandTony ba3490b3e6 Use workspace dependency management (#15412)
* chore: make tauri deps into workspace deps

* add change file

* fmt

* enable default features for example and bench

* enable default features for example and bench for tauri-build

* Revert "enable default features for example and bench for tauri-build"

This reverts commit 5c15412d61cdc07e834b2378d6bb7f09afd9b5cf.

* re-order deps

* use workspace dependencies everywhere

* set `default-features` to false for `tauri-build`

* fix api example

* use exact versions like before

* tauri doesn't need to depend on itself

* use path `.` for tauri

* fix change files

* no need to tell the users for the workspace change

* bring back default features false to tauri dev dep

* fix missing features for sample plugin

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2026-08-14 10:52:48 +02:00
TonyandMegh Parikh e2e585ad11 fix(android): update template to use gradle 9 (#15828)
* Android: Gradle upgrades

* typos

* bump agp to latest

* Remove all jvmTarget

* clean up unused

* migrate to getByName

* remove `id("org.jetbrains.kotlin.android")`  from plugin template

* Try disable `builtInKotlin`

* revert all gradle 9 migrations

* back to JVM_1_8

* remove `org.gradle.toolchains.foojay-resolver-convention` as I still don't understand what it does

* `android.useAndroidx` is true by default

* fix white spaces before first packaging

* Only `consumerProguardFiles` is used for Android libaries

* pickup the right proguard rules

* install cli instead of moving the built one

* bump spin and install locked

* try latest java and ndk

* try to work around missing `consumer-rules.pro`

* Add change files

* more specific about both gradle and plugin versions

* remove unused linux deps installation step

* Revert "try to work around missing `consumer-rules.pro`"

This reverts commit f1afdd953bab174fbf2e205bb1af90c0254f9153.

* Disable `android.proguard.failOnMissingFiles` instead

* update change file that we don't do the work around in tauri-build anymore

* update gradle wrapper and scripts

* use file helper
reference: https://issuetracker.google.com/issues/463283604#comment10

---------

Co-authored-by: Megh Parikh <meghprkh@gmail.com>
2026-08-10 16:28:20 +08:00
Tony 1417768f99 fix: menu channels are never cleaned up (#15679)
* clean up and docs

* Remove menu channel on drop

* Why was the mut gone

* Clone the channel out

* Keep `unreachable_code`

* Put it back to a block

* Move the cloned channel out so no nuances

* Add change file
2026-07-16 20:21:20 +08:00
Tony 42ae2d8453 feat(example): rework menu examples (#15684)
* Migrate to svelte ts for API example

* Clean up

* Use `$derived` `selectedWebview`

* Do the change in onchange instead of state effects

* Set initial x y and sizes

* revert ai slop on main.ts

* More cleanup

* Remove ConsoleMessage

* Remove View type

* license header

* Use `ViewProps`

* Use same button spacing through out

* Move theme example to top level theme switch

* Fix menu views

* More cleanups

* Merge branch 'dev' into api-example-svelte-ts

* Final cleanup

* Move types to svelte files

* fallback to empty string not false

* Initial work

* Bump deps

* Make dragging with states work

* Fix sorting

* Move everything to `MenuBuilder.svelte`

* Add remove button

* Fix Menu and Tray

* Make menu items reactive

* Sync checked states

* Add placeholder to menu builder

* Set user-select to none

* Fix text in the console

* Rework tray page layout

* Close all menus on MenuBuilder unmounted

* Clean up menus properly

* Add initial text and icon on the menu builders

* Move MenuItems to MenuBuilder

* format

* Merge branch 'dev' into api-example-svelte-ts

* Merge branch 'api-example-svelte-ts' into menu-example-rework

* Re-create all the elements as a work around

* Reorder the menu items on builder changes

* On one tray for the tray page

* Update menus on add and remove

* Same for the tray

* Space and align checkboxes

* Merge remote-tracking branch 'upstream/dev' into menu-example-rework

* Clean up menus properly

* Merge branch 'dev' into menu-example-rework

* Remove duplicated webview in new command

* Merge branch 'dev' into menu-example-rework
2026-07-15 18:23:47 +08:00
Tobias Bieniek aebf38c845 android: Migrate Gradle scripts to compilerOptions DSL (#15694)
Kotlin Gradle Plugin deprecated the string-based `kotlinOptions` DSL and
2.3+ rejects it with a hard error. Use the `compilerOptions` DSL with
`JvmTarget.JVM_1_8` instead, which is accepted on both 1.9.x and 2.x, so
projects can move to Kotlin 2.x without editing the vendored
`:tauri-android` scripts.
2026-07-11 14:56:21 +08:00
Tony f92954ba90 docs: menu_on_left_click no longer works since v2.2 (#15674) 2026-07-08 17:01:48 +08:00
Tony 61a1af1ee9 chore: run clippy on all platforms (#15668)
* chore: run clippy on all platforms

* Only install dependencies for linux

* Use cross on Android

* mac clippy

* mobile clippy

* run on `macos-latest`

* duplicated cargo

* mac clippy suggestion take 2

* ios clippy

* Exclude tauri-cli and tauri-bundler on mobile

* Exclude `tauri-cli-node`

* just test api example on mobile

* Fix audit

* Android clippy

* Run the event handler in test
2026-07-07 22:06:58 +08:00
sftse d3108ff9a2 enhance: remove T: Send + Sync requirement from State<'r, T> (#15578)
* remove needless pinning

* less unsafe

* reduce use of potentially dangerous fn inner() and replace with fn deref() where possible

* refactor(tauri): remove unnecessary trait bounds

* Add change file
2026-07-06 16:09:45 +02:00
Tony e517fa18ee fix: mock runtime run on main thread dead locks (#15450)
* fix: mock runtime run on main thread dead locks

* Try testing API example

* Revert "Try testing API example"

This reverts commit 1d04b9f50fbdc66b3866f56c03a8fb67fcb12c80.

* Revert API example changes

* Run unit tests in examples

* Revert `not(test)`

* Split out the example tests

* Condition got reversed

* Only android uses cross

* Test api example

* Install cross through `taiki-e/install-action@v2`

* Install through cargo binstall instead

* Revert "Install through cargo binstall instead"

This reverts commit 2aec3905b4437c5e6c1f5b24b08db98fb63ef5cc.

* Revert "Install cross through `taiki-e/install-action@v2`"

This reverts commit b88035ac9a21c76c84cbd71a794ba8613fb79a57.

* Add change file
2026-07-02 18:19:23 +08:00
1cffb01da5 feat: bump MSRV to 1.90 (#13221)
* feat: bump MSRV to 1.83

previous MSRV change was introduced by #11205
to follow the ecosystem and keep our dependencies up to date we must update our MSRV

currently our agreed standard is to keep MSRV to "latest - 3", which currently is 1.83

* bump to 1.90

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2026-07-02 16:40:47 +08:00
Tony f092d10549 chore: remove unused http server in api example (#15466) 2026-06-04 11:14:25 +08:00
Lucas Nogueira df3fb97cba chore: fix clippy warnings 2026-04-16 15:57:24 -03:00
Lucas Fernandes Nogueira cc5c976027 feat(mobile): add file association support (#14486) 2026-04-13 19:41:27 +02:00
Lucas Fernandes Nogueira 5a0ca7edbb feat(bundler): support Liquid Glass icons, closes #14207 (#14671)
* feat(bundler): support Liquid Glass icons, closes #14207

the `icon` config now supports loading an Assets.car directly or a `.icon` (Icon Composer asset) that gets compiled into an Assets.car file

* fmt

* fix build

* add version checks

* fmt

* fix icns fallback

* fmt
2026-03-26 13:58:58 -03:00
Lucas Fernandes NogueiraandFabianLars 093e2b47c0 feat(mobile): multi-window support (#14484)
Co-authored-by: FabianLars <30730186+FabianLars@users.noreply.github.com>
2026-03-23 17:32:02 +01:00
TonyandLucas Nogueira 737364b8d3 fix: a few regressions from previous PRs (#14020)
* fix: a few regressions from previous PRs

* rename with_window_features to window_features

* Clippy

* clippy

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-17 12:03:31 -03:00
RobertandLucas Nogueira 68874c68c5 feat(core): webview window focusable property, closes #11130 (#13564)
* Adds the ability to set the focused property from tauri.conf.json -- windows

* add set_focusable, pin tao

* fmt

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-17 11:50:17 -03:00
THELOSTSOULandLucas Nogueira 33d0b3f0c1 feat: add WebviewBuilder::on_new_window and WebviewBuilder::on_document_title_changed (#13876)
* add "new window" and "document title changed" webview handler

* take document title changed handler

* update example, add missing api, change files

* allow creating tauri window for the window.open call

* set size and position, fix linux, example

* enhance document title change

* fix windows deadlock

* wry 0.53

* update wry

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-16 14:49:01 -03:00
Naman KhandelwalandLucas Nogueira 5110a762e9 feat(window): add macOS window::set_simple_fullscreen (closes #13670) (#13830)
* add implementation of set_simple_fullscreen

* add simple fullscreen API for macos

* register desktop command

* format

* fix errors

* chore: format

* change implementation

* add api

* fix tests

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-08-12 08:03:29 -03:00
Tony 0ea08e901e fix(example): unminimize window on tray icon click (#13949) 2025-08-05 10:07:16 +08:00
Pavel KuzminandTony 5ba1c3faa4 feat(menu): add icon support for Submenu in Rust and JS/TS APIs (#13722)
* feat(menu): add icon and nativeIcon support for Submenu in tauri and @tauri-apps/api

* Merge branch 'dev' into dev

* Update muda

* feat(menu): add set_icon and set_native_icon methods to set submenu icons

* feat(menu): unify icon handling by introducing MenuIcon type

* chore: sync bundle.global.js

* Make setIcon actually work

* Regenerate `bundle.global.js`

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
2025-07-30 13:48:55 +08:00
Jeong Min OhandTony 12e3590613 Fix(package.json) build script, Fix(android) build template (#13759)
* Update compileSdk targetSdk, Fix build cmd

* Add changelog

* Update AGP version

* Update package.json

* Update AGP

* Update SDK

* Update

* Update .changes/update-android-sdk.md

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>

* Use changes tag in change file

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2025-07-08 17:00:26 +08:00
Fabian-Lars 6b2b9d6cbf chore: clippy 1.88 (#13720) 2025-06-27 15:33:36 +02:00
Tony eb3f0248c2 fix: write default permission words if not empty (#13646)
* fix: write default permission words if not empty

* Remove left over format!
2025-06-21 09:52:36 +08:00
thewh1teagleandLucas Nogueira 8d994f60fe fix(bundler): sign DLLs (#11676)
* fix: sign nsis plugin DLLs

* also sign DLLs on unix

* fix build

* create copy of nsis dir

* always make a copy of nsis (so linux works, permission error otherwise)

* fix windows build

* fix

* to_path_buf

* also create wix copy

* remove unused toolset change

* fix unused var

* fmt

* fix wix build

* fix build

* fix plugin copy

* fix conflict

* fix file download

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-13 18:46:14 -03:00
sftseandLucas Nogueira 8a1d490820 Clippy (#12485)
* fix: remove unused clones, discovered with clippy nursery lint clippy::redundant_clone

* fix: clippy

* fix: remove no longer used clippy allow directives

* more lint

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-13 08:21:34 -03:00
The1111mpandLucas Nogueira dd4f13ce4b feat: add set_dock_visibility method (#13185)
* feat: add `set_dock_visibility` method

Signed-off-by: The1111mp <The1111mp@outlook.com>

* add api

* retain focus

* fmt

* make SetDockVisibility message conditional (macos only)

* lint

---------

Signed-off-by: The1111mp <The1111mp@outlook.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-04-11 15:13:07 -03:00
TonyandAmr Bashir a851b6597f enhance: include permission group permissions in the generated schema (#13057)
* enhance: include permissions in default permission description

* Only include in schema

* Remove 'which includes` to tauri's build script

* Also bump utils

* Clippy
My local clippy didn't report this, weird

* Use `which enables all commands`
for default permissions that enables everything

* Extract description into a variable

* Generate permissions with or without description

* Tweak the docs and generate 'which includes'

* Simplify to just `includes`

* Docs change change file

* Put the change in minor

* Update .changes/include-permissions-in-schema.md

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>

* Remove unused change file

---------

Co-authored-by: Amr Bashir <amr.bashir2015@gmail.com>
2025-03-23 21:35:45 +08:00
TonyandLucas Nogueira 72df2e4a04 refactor: remove permission description from runtime (#12994)
* Remove description from runtime

* Just use none instead

* global_scope_schema and add comments about it

* Tweak wording

* remove comments [skip ci]

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2025-03-16 07:33:41 -03:00
013f8f6523 feat: add a new option to remove unused commands (#12890)
* Add a new option to remove unused commands

* Fix compile

* Add markers to all core plugins

* Clippy

* Add allow unused when running with this

* Use build script to generate allowed-commands.json

* Clean up and add proper reruns

* Wrong path

* Revert to #[cfg_attr(not(debug_assertions), allow(unused))]

* Add change files

* Some more docs

* Add version requirement note

* Avoid rerun if no capabilities folder

* Remove unused box

* small cleanup

* fix channel

* implement for app handler too

* rely on core:default for channel perms

* Move this feature to config

* Docs change

* Forget one last remove_unused_commands

* Remove removeUnusedCommands from helloworld

* tell handler that the app ACL manifest exists

* update change file

* update doc

* update change file

* Use a struct to pass the data instead of env var

* Clippy

* Fix can't exclude inlined plugins on Windows
due to UNC paths...

* Apply suggestion from code review

* Remove remove on empty to tauri-build

* Revert "Remove remove on empty to tauri-build"

This reverts commit b727dd621eeb13b408e7402600fb1156d462f597.

* Centralize remove_file(allowed_commands_file_path)

* Escape glob pattern

* update change file

* remove unused commands for dev too

* Update crates/tauri-utils/src/config.rs

Co-authored-by: Fabian-Lars <github@fabianlars.de>

* regen schema

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
Co-authored-by: Fabian-Lars <github@fabianlars.de>
2025-03-15 13:46:08 -03:00
Fabian-Lars cde0ff7798 chore: Fix clippy 1.84 warnings (#12328) 2025-01-10 13:47:37 +01:00
Tony a16796a555 fix(api): use array for channel queueing (#12069) 2025-01-02 12:19:50 +01:00
renovate[bot]andFabianLars b0ddee8992 chore(deps): update rust crate wry to 0.48 (dev) (#12101)
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: FabianLars <fabianlars@fabianlars.de>
2025-01-02 01:01:31 +01:00
Amr Bashir fc30b20bea feat(api/tray): add TrayIcon.setShowMenuOnLeftClick method (#11726) 2024-11-21 14:50:41 +02:00
renovate[bot]andLucas Nogueira b28435860c chore(deps) Update Rust crate thiserror to v2 (dev) (#11604)
* chore(deps) Update Rust crate thiserror to v2

* thiserror v2 on all crates

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-11-08 08:21:38 -03:00
Amr BashirandLucas Nogueira 4d545ab3ca feat: background color APIs (#11486)
* feat: background color APIs

closes #10519
closes #1564

* clippy

* git branch

* bundle

* fix hex color schema pattern

* add missing `^`

* fix iOS

* revert test

* revert apple-codesign bump

* fmt

* add change files

---------

Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-11-06 13:21:47 -03:00
f37e97d410 feat: add use_https_scheme for Windows and Android (#11477)
* feat: add `use_https_scheme` for Windows and Android

closes #11252

* fix compilation

* Apply suggestions from code review

Co-authored-by: Fabian-Lars <github@fabianlars.de>

* change wording

* add migrations

* migrate `dangerousUseHttpScheme`

* fmt

* infer AssetResolver::get https scheme config

* fix tests

---------

Co-authored-by: Fabian-Lars <github@fabianlars.de>
Co-authored-by: Lucas Nogueira <lucas@tauri.app>
2024-11-05 09:48:59 -03:00
Lucas Fernandes Nogueira f0da0bde87 feat(core): add WebviewWindow::resolve_command_scope (#11439)
* feat(core): add WebviewWindow::resolve_command_scope

This new functionality exposes the `CommandScope` resolution as a function (currently only commands can resolve them as a dependency injection via CommandItem)

This function is useful to validate the configuration at runtime (do some asserts at setup phase to ensure capabilities are properly configured) and to resolve scopes in a separate thread or context

* adjust return type
2024-10-21 15:16:08 -03:00