Commit Graph
636 Commits
Author SHA1 Message Date
Lucas Fernandes Nogueira 9106093f77 fix(fs): map open options to valid Android modes (#3624)
In plugins/fs/src/lib.rs OpenOptions::android_mode, the mode was built by
concatenating r/w/t/a, so open(url, {append: true}) (read defaults to
true) produced "ra" and write+truncate+append "wta", which
ParcelFileDescriptor.parseMode / ContentResolver reject.

The options now map to r, w, wt, wa, rw or rwt. append wins over the
default read (no read+append mode exists). create/createNew still have no
Android equivalent (documented on the function). Unit tests for the
mapping, compiled on the host with cfg(test).
2026-09-23 12:58:28 -03:00
Lucas Fernandes Nogueira 97e865bc13 feat(fs): accept baseDir in size (#3623)
In plugins/fs/guest-js/index.ts, the size function only sent `path`
although the Rust command accepts `options.baseDir` and the JSDoc example
passed `{ baseDir: BaseDirectory.AppData }` (a TS error, silently dropped
at runtime, so the relative path was rejected).

Adds an optional `options?: SizeOptions` parameter (new exported type).
api-iife.js regenerated. The e2e spec now measures a file and a directory
relative to AppData instead of working around the missing option.
2026-09-23 12:58:03 -03:00
Lucas Fernandes Nogueira b46a88ff55 fix(fs): reject malformed write_file options instead of ignoring them (#3622)
In plugins/fs/src/commands.rs write_file_inner, a malformed or non-ASCII
`options` header was dropped with .ok(), so baseDir/append/createNew were
silently ignored and the call became a truncating write to the raw path;
the JSON array body fallback truncated values above 255 and dropped
non-numbers.

The header is parsed with parse_write_file_options: empty, `undefined`
(what fetch sends for JSON.stringify(undefined)) and `null` mean no
options, anything else must parse. Array bodies must only contain bytes.
Unit test for the header parser; e2e spec for writes without options,
which is the case the `undefined` handling keeps working.
2026-09-23 12:57:49 -03:00
Lucas Fernandes Nogueira 0c84c917e3 fix(fs): log file watcher errors (#3621)
In plugins/fs/src/watcher.rs, notify errors were discarded (TODO), so a
watch that died left no trace. They are now logged with log::error!.
Reporting them to the JS callback would change the event payload and is
deferred to v3.
2026-09-23 12:57:33 -03:00
Timofey Maykov 101e1b068a fix(updater): stop overriding SSL_CERT_FILE and SSL_CERT_DIR on Linux (#3615)
check() set both variables to Debian paths when they were unset. On distros
with a different layout, such as ALT Linux, the paths do not exist, and
rustls-native-certs then loads roots only from them, so every TLS client
created afterwards in the app got an empty root store.

reqwest with rustls already finds the system store through
rustls-platform-verifier and openssl-probe, so the override is not needed.

Closes #3598
2026-09-23 09:29:37 -03:00
Lucas Nogueira 4a94356386 fix(deep-link): unregister must refresh the database 2026-09-22 22:03:02 -03:00
Lucas Nogueira 5c78814220 fix(autostart): handle disabling when the autostart is already disabled 2026-09-22 21:56:01 -03:00
Lucas Nogueira c8c373b48b tests(e2e): improve coverage 2026-09-22 21:54:21 -03:00
Lucas Fernandes Nogueira 684feb2510 feat(tests): add api e2e tests (#3617)
* feat(tests): add api e2e tests

* lockfile

* mobile

* try linux fix [skip ci]

* ios fix

* fix test on windows

* improve cache

* fix pnpm audit [skip ci]
2026-09-22 18:58:14 -03:00
Lucas Nogueira 8882934230 fix: change file 2026-09-22 13:39:05 -03:00
Lucas Nogueira a87a3c7d44 chore: update documentation 2026-09-22 11:30:47 -03:00
Lucas Nogueira d869c162a7 fix: geolocation and haptics plugin build fails with specta feature on 2026-09-22 06:40:58 -03:00
Lucas Fernandes Nogueira ae3c808eb6 fix: global API script should reuse window.__TAURI__ types (#3602)
currently each script inlines what it needs from @tauri-apps/api, so type checks like `image instanceof Image` all fail
2026-09-22 06:04:28 -03:00
github-actions[bot] 2393188dea publish new versions (#3591)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-19 22:23:23 -03:00
Lucas Fernandes Nogueira 1198a524b7 Merge commit from fork
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 - including `localhost` services, internal hosts and cloud metadata endpoints - and the plugin follows it, returning the response to the webview.
2026-09-19 21:01:48 -03:00
Lucas Fernandes Nogueira 1308bfa399 Merge commit from fork 2026-09-19 21:00:36 -03:00
Lucas Fernandes Nogueira 690dcfd694 Merge commit from fork
* feat(updater): verify the version an update was signed for

The endpoint response is fetched over TLS but is not signed, and the signature
only covers the artifact, so a crafted response could pair an inflated version
with an older release's url and signature to force a downgrade to a genuine
but outdated build.

Read the version back from the signature's trusted comment and reject an
update whose announced version differs. Signatures carrying no version are
only rejected under the new requireSignedVersion option, since older CLIs did
not record one.

* fix tests
2026-09-19 20:57:51 -03:00
PathGao 67cd25a10c fix(single-instance): let the first instance come to front on Windows (#3592)
* fix(single-instance): let the first instance come to front on Windows

* move the hand-over right after the window lookup
2026-09-18 01:23:13 +08:00
Tony 2df3d93681 refactor(log): log webview location after double colon (#3574) 2026-09-17 16:33:47 +08:00
github-actions[bot] 3c5d267767 publish new versions (#3567)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-09-16 12:17:22 +08:00
Tony c050e073b6 fix(store): apply_pending_auto_save can deadlock (#3572) 2026-09-16 10:49:36 +08:00
Den Ilin a21555ddd2 fix(http): stop unhandled rejections from the fetch cleanup path (#3566)
* fix(http): stop unhandled rejections from the fetch cleanup path

The request/body cleanup commands are fired as floating promises, and the
Rust side releases a resource only once: fetch_cancel_body is
resources_table.close(rid)?, and fetch_read_body also closes the rid at
end-of-body. So every release after the first rejects with BadResourceId
into a promise nobody is listening to.

Make dropBody idempotent and let both cleanup calls handle their own
rejection.

* chore: add changefile

* chore(http): rebuild api-iife.js
2026-09-03 21:00:34 +03:00
github-actions[bot] 6aa2854f31 publish new versions (#3509)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-08-31 19:17:31 +08:00
Tony db9c5998fe fix(android): missing consumer-rules.pro (#3531)
* fix(android): missing `consumer-rules.pro`

* setup android test

* copy right too new

* build api first

* we're still on gradle 8 right now...

* restore the right host on mac
2026-08-13 17:44:29 +08:00
Tony 685610ae78 fix(fs): default permissions (#3507)
* Fix deny-webview-data platfroms and scopes

* Fix `create-app-specific-dirs` scopes

* Fix read-app-specific-dirs-recursive

* Re-generate schema and docs

* Remove unused `fs:allow-unwatch`

* Add change file

* Remove unused permissions

* Update linux permissions

* Update change file

* regenerate doc md and schema
2026-08-10 15:48:27 +08:00
Tony f8053e659e docs: cargo features (#3527)
* dialog

* fs

* geolocation

* haptic

* log

* single instance

* notification

* updater

* ##

* persisted scopes

* stronghold

* sql

* upload

* websocket

* http
(this one was too long that I generated through codex, didn't review yet)

* add change file

* no persisted-scope-js

* add `://`

* Merge branch 'v2' into document-cargo-features

* update system-proxy docs

* finish http docs

* notification doesn't need version bumps

* clean up docs
2026-08-05 15:48:11 +08:00
Tony 19fb3926fd feat(http): add system-proxy feature (#3528)
* feat(http): add `system-proxy` feature

* require reqwest 0.12.16
2026-08-04 19:51:32 +08:00
Tony 2371be839f feat(updater): add system-proxy feature (#3526)
* feat(updater): add `system-proxy` feature

* enable by default
2026-08-04 16:37:00 +08:00
purvsinojiya-inventyv cc9ec9b4ad fix(dialog): use parsed MIME type for Android save dialog (#3519) 2026-07-29 17:05:43 +02:00
Michael Kadziela 304292d740 feat(notification): add rust Action/ActionType api. fix action registration in Android (#2805) 2026-07-27 13:03:43 +02:00
Tony 622f02bf21 fix(updater): check ShellExecuteW results (#3516)
* fix(updater): check `ShellExecuteW` results

* document the exit on windows
2026-07-27 16:38:50 +08:00
Tony ab7489c964 feat(updater): option to not restart after install (#3299)
* feat(updater): option to not restart after install

* More platform cfg

* Add the same function for `UpdaterBuilder`

* Fix missing `#[cfg(windows)]`

* Mark `current_exe_args` cfg(windows)

* Mark `on_before_exit` cfg(windows)

* Mark `installer_args` cfg(windows)

* Note about `installer_arg` apply to both

* Remove current args and restart together

* Only build needed bundle on windows as well

* Remove `/NS` since it breaks the msi updater

* Add launch updater debug log

* Add a folder to test updates

* Remove unused `#[allow(unused)]`

* Format

* messed up git stage

* Add change file

* Clean up

* Disable NSIS compression for API example

* Bump wry for v1 test to pull in https://github.com/tauri-apps/wry/pull/1703

* format

* Make typescript happy

* Close new update on destroy
2026-07-21 18:25:16 +08:00
Vitor AyresandTony 3fb27bf13a fix(docs): deep link platform specific and fs scope (#3504)
* deep link fix Platform Specific heading

* fix fs permission toml

* .changes

* Update change files

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

* Update .changes/fs-deny-scope.md

* fix eol

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-07-21 14:56:52 +08:00
Pascal Auf der MaurandFabian-Lars 526726162f fix(nfc): adapt backend invoke to frontend (#3419)
* fix(nfc): adapt backend invoke to frontend

* Revert "fix(nfc): adapt backend invoke to frontend"

This reverts commit e34306e083.

* fix:  enforce nfc function return type

* Update .changes/nfc.md

Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>

---------

Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>
2026-07-20 13:11:20 +02:00
github-actions[bot] 03afae6d72 publish new versions (#3500)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-19 00:40:36 +08:00
Tony 2ed6d6c1de fix(store): StoreOptions.defaults should not be required (#3499) 2026-07-18 19:46:31 +08:00
Tony 40ae0a7fa0 enhance(dialog): use MaterialAlertDialogBuilder (#3491)
* Fix example insets

* Add app-region: drag

* Use `Theme.Material3.DayNight.NoActionBar`

* Re-generate some kotlin files

* Use MaterialAlertDialogBuilder

* Add change file

* Revert back to margin-top: 0.5rem

* Re-generate outdated gradle wrapper from #3039

* Move title bar to its own file

* Fix cancel message
2026-07-16 17:27:19 +08:00
github-actions[bot] cad301fcc1 publish new versions (#3447)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-07-14 01:10:29 +02:00
Bajoca 254f222e0e chore(log): use kv stable feature rather than unstable (#3477) 2026-07-13 13:23:56 +02:00
BajocaandFabian-Lars d157387722 fix(single-instance): Yield unix listener in macos (#3466)
* Use tokio UnixListener so the task can yield and release the thread

* use standard unix listener, convert to non blocking and cast into tokio yielding one

* Create fix-yield-single-instance-macos.md

* Update .changes/fix-yield-single-instance-macos.md

Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>

* use net feature in Tokio dependency

* Use tokio UnixListener::bind, inside the tokio task

---------

Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>
2026-06-29 11:00:59 +02:00
BajocaandTony f08980f123 feat(log): rotate log file on each session (#3445)
* Update lib.rs

* docstring for file_open_strategy

* Create log-file-open-strategy.md

* Update plugins/log/src/lib.rs

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

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-06-17 16:25:24 +08:00
Slava Minamoto 4be7690085 fix(positioner): return error instead of panicking when window has no monitor (#3449) 2026-06-11 21:05:20 +08:00
beefandTony 0c23b8ecfe remove unused dependency byte-unit from log plugin (#3446)
* remove unused dependency `byte-unit` from log plugin

* Update .changes/rmdep.md

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

* Update .changes/rmdep.md

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

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
2026-06-11 14:24:37 +08:00
github-actions[bot] 9883f396dc Publish New Versions (v2) (#3425) 2026-05-28 12:06:17 +02:00
zankowitch alexis d8645ab3e5 fix(barcode-scanner): dispatch iOS cancel() cleanup to the main thread (#3393)
Signed-off-by: Alexis Zankowitch <a.zankowitch@reply.de>
2026-05-28 11:46:25 +02:00
renovate[bot]andFabian-Lars cb863d57c6 chore(deps): update rust crate global-hotkey to 0.8 (#3408)
Co-authored-by: Fabian-Lars <30730186+FabianLars@users.noreply.github.com>
2026-05-27 11:50:02 +02:00
Urs de Swardt c0d64bf7d9 fix: replace panics with error returns (#3420)
* refactor: replace panics with error returns

* fix: lints

* chore: add changes md
2026-05-18 21:56:33 +08:00
github-actions[bot] 5c7668b6bb publish new versions (#3397)
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
2026-05-02 19:37:51 +08:00
renovate[bot]andTony ec0540138b chore(deps): update rust crate toml to v1 (#3323)
* chore(deps): update rust crate toml to v1

* downgrade to 1.0.x in lockfile

* Add change file

* Downgrade indexmap

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
2026-05-01 18:09:41 +08:00
TonyandMark Gandolfo c1fd33b3a2 fix(opener): allow open network share locations (#3343)
* fix(opener): allow open network share locations

* Clippy

* Move to a seperate file

* Add license header

* test(opener): add unit tests for shell_parent_path and absolute functions (#1)

* Keep `absolute` non pub in `windows_shell_path`

* Add change file

---------

Co-authored-by: Mark Gandolfo <mark@gandolfo.com.au>
2026-04-18 19:02:09 +08:00