Skip to content

Sync upstream/dev (2026-08-03) and forward-port ports/tao 0.36 / ports/wry 0.56 - #15

Merged
OlympusLedgerOrg merged 37 commits into
devfrom
agent/sync-upstream-2026-08-03
Aug 3, 2026
Merged

Sync upstream/dev (2026-08-03) and forward-port ports/tao 0.36 / ports/wry 0.56#15
OlympusLedgerOrg merged 37 commits into
devfrom
agent/sync-upstream-2026-08-03

Conversation

@OlympusLedgerOrg

Copy link
Copy Markdown
Owner

Brings the fork up to date with tauri-apps/dev as of 2026-08-03 (32 commits, last sync was 2026-07-19), and forward-ports the vendored GTK4/WebKit6 crates to the versions upstream now requires.

Draft: not compile verified — see Caveats.

Why this is not just a merge

Upstream tauri-apps#15307 bumped crates/tauri-runtime-wry to tao 0.36.0 / wry 0.56.0, while [patch.crates-io] pointed at ports/tao (0.35.3) and ports/wry (0.55.1).

Cargo does not error on that. It resolves successfully, drops both patches, and pulls stock GTK3 tao/wry from crates.io — bypassing the GTK4/WebKit6 port entirely while the build still succeeds. The only signal is:

warning: patch `tao v0.35.3 (ports/tao)` was not used in the crate graph
warning: patch `wry v0.55.1 (ports/wry)` was not used in the crate graph

Both ports are now at the required versions and cargo metadata resolves tao, wry, muda, tray-icon and wayland-scanner to local paths with no patch-unused warnings.

Commits

  • 8f18a4c2 — merge of upstream/dev. 7 conflicts; per-file reasoning in the commit message.
  • f4298c93 — forward-port of both ports, plus lockfile regeneration.

How the ports were forward-ported

Rather than replaying patches, each port was reconstructed as a branch off the upstream commit it was actually built from, and the upstream release tag was merged in as a real 3-way merge. Both ports turned out to be branched off upstream dev ahead of their tags, which is why they were already much closer to 0.36/0.56 than to 0.35.3/0.55.1.

The full merges, with per-conflict reasoning, are pushed for review:

  • tao: OlympusLedgerOrg/tao branch agent/gtk4-port-tao-0.36-2026-08-03 (merge a534ef74)
  • wry: OlympusLedgerOrg/wry branch agent/gtk4-port-wry-0.56-2026-08-03 (merge c28f997a)

All of platform_impl/linux — the entire GTK4 surface — merged without conflict.

Resolutions worth a second look

  • tao android/ndk_glue.rs poll_events — kept the port. Upstream reads size_of::<Event>() bytes from the wake pipe; the port's wake() (which auto-merged) writes a 1-byte token and queues events in a Mutex<VecDeque<Event>>. Taking upstream would have corrupted the event stream.
  • wry examples/streaming.rs, examples/async_custom_protocol.rs — took upstream's rewrites, then re-applied the fork's path-traversal guard. Upstream still does fs::read(canonicalize(root.join(path))?)? with no check that the result stays under root.
  • wry Cargo.toml — kept the webkit = { package = "webkit6" } alias and tao = { path = "../tao" }; adopted upstream's removal of the protocol, transparent and fullscreen feature flags.
  • crates/tauri/src/app.rs — upstream's file, with only the fork's supports_multiple_windows early return re-applied so a failed main-thread dispatch does not panic in rx.recv().unwrap().

Lockfiles

  • Cargo.lock regenerated; patches verified in the graph.
  • pnpm-lock.yaml regenerated so the merged pnpm-workspace.yaml overrides apply — including the fork's brace-expansion, js-yaml and sharp audit remediations, which upstream's lockfile does not carry.

Caveats

  1. Not compile verified. Prepared on Windows; the GTK4/WebKit6 code is Linux-only and cannot be built or cross-compiled there. Dependency resolution is verified, the source is not. Needs a Linux build and CI before this leaves draft.
  2. Upstream fix(linux): use resize cursor when within the defined inset for an undecorated webkitgtk window tauri-apps/tauri#15701 is not ported. The resize-cursor-on-hover feature for undecorated webkitgtk windows is written entirely against GTK3 (connect_motion_notify_event, connect_touch_event, gdk::Window, WindowEdge, CursorType, Cursor::for_display), none of which exist in GTK4. undecorated_resizing.rs keeps the port's version; upstream's change to that file is confined to the gtk module, so the resolution is self-consistent. Porting it needs EventControllerMotion + set_cursor, gdk::Surface, and a decision on touch.

renovate Bot and others added 30 commits July 20, 2026 09:45
Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
* ci: fix and run acl-tests

* Simplify `CommandScope::from_command`
…rs (tauri-apps#15737)

* docs(cli): document TAURI_SIGNING_PRIVATE_KEY_PATH and clarify key vars

* docs(cli): sync signer generate output with signing env var docs and add change file
…pps#15629)

* fix(build): copy newly added files from resource directories

The resource copy only emitted `cargo:rerun-if-changed` for the
individual files resolved at build time. When a new file was added to a
resource directory, cargo had no reason to re-run the build script, so
the file was never copied until an unrelated rebuild happened.

Track every walked/globbed resource directory in `ResourcePathsIter` and
emit a `rerun-if-changed` for each after copying, so adding or removing a
file inside a resource directory re-runs the script and picks it up.

Closes tauri-apps#14992

* Avoid emitting for each glob file
ref: tauri-apps#15390

* Rework the test

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
…-apps#15619)

* feat(bundler): add bundle > disableBinaryPatching option

Tauri patches the main executable with bundle type information so the updater
plugin can pick the matching installer format when multiple bundle types target
the same platform. This rewrites the binary after it is built, invalidating an
existing code signature on it, which breaks bundling an already-signed binary
(e.g. inside the NSIS bundler).

Add a `bundle > disableBinaryPatching` config option (default false). When set,
the bundler skips patching the main binary and the subsequent re-sign, leaving
the executable untouched.

closes tauri-apps#15591

* feat(cli): add --no-binary-patching flag to build and bundle

Switch the disable-binary-patching control from the proposed
`bundle > disableBinaryPatching` config option to a `--no-binary-patching`
CLI flag on `tauri build` and `tauri bundle`, mirroring the `--no-sign`
precedent. When set, the bundler skips patching the main executable with
bundle type information (and the subsequent re-sign), preserving an
already-signed binary. Patching only matters when shipping multiple bundle
types per platform.

* chore: add @tauri-apps/cli to changefile

* refactor(bundler): use positive binary_patching flag defaulting to true

* refactor(bundler): hand-write SettingsBuilder default, notice on skip

- Implement Default for SettingsBuilder manually so binary_patching
  defaults to true, instead of overriding it on top of a derived default.
- Log a notice when --no-binary-patching skips patching, mirroring the
  --no-sign notice, and drop the now-redundant inline comment.

* Always sign and warn with path data

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
…ps#15620)

* feat(cli): support non-square source images in `tauri icon`

`tauri icon` rejected any source whose width and height differ. Add a `--fit`
option, modeled on the CSS `object-fit` property, to square a non-square source
before generating icons:

- `cover`: scale to fill the square, center-cropping the longer side
- `contain`: scale to fit inside the square, padding the shorter side with transparency

SVG sources are rasterized at their native size before fitting. Non-square
sources without `--fit` still error, now with a hint pointing to the flag.

closes tauri-apps#15376

* fix(cli): rasterize small SVG sources at a higher resolution

* refactor(cli): apply icon --fit as SVG render transform

Keep SVG sources as a vector tree through the fit step and apply the
crop/pad as a transform when rendering each target size, instead of
rasterizing once at a fixed floor and squaring the bitmap. Icons are now
rendered directly from the vector at their final resolution, so a source
with a small intrinsic size stays crisp and the MIN_SVG_RASTER_SIZE
upscale hack is gone.

* Small refactor

* Inline width and height fn

* Clean up comments

* use `::min` `::max`

* Add `@tauri-apps/cli`

* Update tests

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
tauri-apps#15617)

* fix(core): purge Rust event listeners when window/webview is destroyed

Rust-side listeners registered via listen/once on a Window, Webview or
WebviewWindow were never removed when that target was destroyed, leaking
handlers for the lifetime of the app.

Add Listeners::remove_listeners_for_target, wired into on_window_close and
on_webview_close, which drops handlers whose target exactly matches the
destroyed one. Matching on the full EventTarget (kind + label) instead of the
label alone keeps window and webview listeners distinct in multi-webview mode,
where a window and its webviews can share a label. App, Any and AnyLabel
listeners are preserved. Follows the existing try_lock + Pending convention so
it is safe during emit.

closes tauri-apps#15613

* Remove AI task comments

* Combine tests

* Simplify target creations

* Move the calls to listener

---------

Co-authored-by: Tony <legendmastertony@gmail.com>
* refactor: reduce some nestings

* a bit more

* Move back down desktop to keep the diffs small

* Clippy
…#15625)

* Remove unwraps

* Restore multi-webview focus

* Cleanup

* Skip if already focused

* `has_children` is set to true for webview window on unstable feature

* Forward the event for raw tao window

* Always handle focused events in `add_LostFocus`

* Clean up

* Add change file

* Move out to a `add_focus_change_listeners` fn

* move `add_focus_change_listeners` down to bottom
* refactor: reduce some clones inside `App::run`

* Use fn calls when possible

* Remove useless ignore lint
* fix: customized config path.

* fix: add customized path in Attributes.

* chore: add change file.

* chore: update docs.

* fix: deprecate config_path in CodegenContext.

* fix: revert config_path in CodegenContext.

* Small refactors

* 2.12 now

* clippy

* crate instead of package

* proper change file

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
* chore(deps): update rust crate jsonschema to 0.48

* jsonschema 0.49

* bump `js-yaml` `brace-expansion` `PostCSS`

* bump wrangler

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
…s#15771)

* docs: document browser argument data directory requirement

* Simplify and document in config as well

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
node 24 dropped 32bit support
* chore(deps): update `objc2-*` crates to 0.3.2

* change tag

* remove unsafe on ios
* feat: changes for tauri 0.36

* Tao 0.36 wry 0.56 events (tauri-apps#15789)

* use git version of tao and wry

* Migrate window events

* use my wry branch

* Gate behind mobile

* tao 0.36

* wry 0.56 and dom_query 0.28

* change tag

* Use `onCreate` exclusively

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
* feat: expose wry permission handler API in tauri

* fix: preserve default permission behavior

* refactor: move webview permission mappings

* refactor: rename permission mapping helpers

* from not to

* add docs about the fall through

* update change file

---------

Co-authored-by: Tony <68118705+Legend-Master@users.noreply.github.com>
Co-authored-by: Tony <legendmastertony@gmail.com>
…i-apps#15806)

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Legend-Master and others added 4 commits August 3, 2026 16:16
)

* Try to use whichever activity available

* Add change file

* Clean up
Brings in 32 upstream commits since the 2026-07-19 sync, including the
serde_with 3.21.0 security update.

Conflict resolutions:

- crates/tauri/src/app.rs: kept our version. Upstream's refactor changed
  the iOS supports_multiple_windows dispatch to `let _ = ...`, which lets
  the following rx.recv().unwrap() panic when run_on_main_thread fails.
  Ours returns false instead.
- crates/tauri-utils/src/resources.rs, crates/tauri-build/src/lib.rs,
  .changes/fix-copy-new-resource-files.md: took upstream. Our resource
  rerun-if-changed fix (#11) was upstreamed verbatim as tauri-apps#15629;
  only doc comments and a test name differed.
- crates/tauri-runtime-wry/src/undecorated_resizing.rs: kept our version.
  See "Deferred" below.
- Cargo.lock, pnpm-lock.yaml: took upstream, NOT regenerated. See "DO NOT
  MERGE" below.

Deferred:

Upstream tauri-apps#15701 (resize cursor within the inset for undecorated
webkitgtk windows) is written against GTK3 -- connect_motion_notify_event,
connect_button_press_event, connect_touch_event, gdk::Window, WindowEdge,
begin_resize_drag -- plus helpers using gdk::CursorType and
Cursor::for_display, all removed in GTK4. It cannot be merged into our
GTK4/WebKit6 port as-is and needs a real forward-port
(EventControllerMotion + set_cursor, gdk::Surface, and a decision on touch,
which GTK4 has no direct equivalent for). Upstream's entire change to that
file is confined to the gtk module, so taking our side is complete and
self-consistent.

DO NOT MERGE -- this commit silently disables the GTK4 ports:

Upstream tauri-apps#15307 bumped crates/tauri-runtime-wry to tao 0.36.0 and
wry 0.56.0, but [patch.crates-io] points tao/wry at ports/tao (0.35.3) and
ports/wry (0.55.1). Cargo does not error on this. It resolves successfully
and drops the patches, warning only:

  warning: patch `tao v0.35.3 (ports/tao)` was not used in the crate graph
  warning: patch `wry v0.55.1 (ports/wry)` was not used in the crate graph

The resulting graph pulls stock tao 0.36.0 / wry 0.56.0 / webkit2gtk from
crates.io -- i.e. the entire GTK4/WebKit6 port is bypassed and the build
reverts to GTK3 without failing. The lockfile in this commit is upstream's
and pins tao 0.36.0 / wry 0.56.0 for that reason.

Do not merge or build from this branch until ports/tao is forward-ported to
0.36 and ports/wry to 0.56, after which Cargo.lock and pnpm-lock.yaml must
be regenerated and the patch-unused warnings confirmed gone.
Completes the 2026-08-03 upstream sync. tauri-apps#15307 bumped
crates/tauri-runtime-wry to tao 0.36.0 / wry 0.56.0, which left
[patch.crates-io] pointing at ports/ trees still at 0.35.3 / 0.55.1. Cargo
did not error on that -- it silently dropped both patches and resolved
stock GTK3 tao/wry from crates.io, bypassing the GTK4/WebKit6 port
entirely. Both ports are now at the required versions and both patches are
back in the crate graph.

Method: each port was reconstructed as a git branch off the upstream commit
it was actually built from (tao 722aad90, wry 09f088e9 -- both on dev, ahead
of their tags, which is why the ports were already much closer to 0.36/0.56
than to 0.35.3/0.55.1), then upstream's release tag was merged in. This kept
the port's own changes as the "ours" side of a real 3-way merge rather than
replaying patches. All of platform_impl/linux -- the GTK4 surface -- merged
without conflict. Per-conflict reasoning is in the two port merge commits.

Also fixes crates/tauri/src/app.rs from the previous commit: resolving that
conflict with --ours took the whole file and so discarded upstream's
tauri-apps#15766 clone reduction in App::run. The file is now upstream's,
with only the fork's supports_multiple_windows early return re-applied.

Lockfiles regenerated:
- Cargo.lock: cargo metadata now resolves tao 0.36.0, wry 0.56.0, muda,
  tray-icon and wayland-scanner to the local paths, with no
  "patch ... was not used" warnings.
- pnpm-lock.yaml: regenerated so the merged pnpm-workspace.yaml overrides
  are reflected, including the fork's brace-expansion, js-yaml and sharp
  audit remediations, which upstream's lockfile did not carry.

NOT COMPILE VERIFIED. This was done on Windows; the GTK4/WebKit6 code is
Linux-only and cannot be built or cross-compiled here. Dependency resolution
is verified, the source is not. Needs a Linux build plus the fork's CI
before merging.

Still deferred: upstream tauri-apps#15701 (resize cursor within the inset
for undecorated webkitgtk windows) remains unported to GTK4 -- see the
previous commit.
@coderabbitai

coderabbitai Bot commented Aug 3, 2026

Copy link
Copy Markdown

Important

Review skipped

Too many files!

This PR contains 129 files, which is 29 over the limit of 100.

To get a review, reduce the PR to 100 files or fewer by splitting it into smaller PRs or changing its base branch.

Upgrade to a paid plan to raise the limit.

This review couldn't start because sufficient usage credits or metered capacity aren't available. Add credits or update usage-based reviews in the billing tab, then retry.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 20187a71-0892-4366-bf79-21b91a37e54c

📥 Commits

Reviewing files that changed from the base of the PR and between 2f17713 and 6e308a1.

⛔ Files ignored due to path filters (5)
  • Cargo.lock is excluded by !**/*.lock
  • crates/tests/acl/fixtures/snapshots/acl_tests__tests__file-explorer-remote.snap is excluded by !**/*.snap
  • pnpm-lock.yaml is excluded by !**/pnpm-lock.yaml
  • ports/tao/Cargo.lock is excluded by !**/*.lock
  • ports/wry/Cargo.lock is excluded by !**/*.lock
📒 Files selected for processing (129)
  • .changes/android-plugin-manager-no-activity.md
  • .changes/appimage-respect-gdk-backend.md
  • .changes/build-config-path.md
  • .changes/clarify-init-frontend-command-prompts.md
  • .changes/disable-binary-patching.md
  • .changes/event-listener-cleanup-on-destroy.md
  • .changes/fix-appimage-xdg-utils.md
  • .changes/fix-copy-new-resource-files.md
  • .changes/icon-non-square-fit.md
  • .changes/mobile-resumed-suspended-event.md
  • .changes/objc2-0.3.2.md
  • .changes/permission-handler.md
  • .changes/signing-env-vars.md
  • .changes/unstable-webview-focus.md
  • .changes/update-dom-query.md
  • .changes/webkitgtk-resize-cursor.md
  • .changes/webview-focus-on-move.md
  • .changes/wry-focused-webview.md
  • .github/workflows/publish-cli-js.yml
  • .github/workflows/test-core.yml
  • bench/src/run_benchmark.rs
  • crates/tauri-build/src/codegen/context.rs
  • crates/tauri-build/src/lib.rs
  • crates/tauri-bundler/src/bundle.rs
  • crates/tauri-bundler/src/bundle/linux/appimage/linuxdeploy-plugin-gtk.sh
  • crates/tauri-bundler/src/bundle/linux/appimage/linuxdeploy.rs
  • crates/tauri-bundler/src/bundle/settings.rs
  • crates/tauri-cli/Cargo.toml
  • crates/tauri-cli/ENVIRONMENT_VARIABLES.md
  • crates/tauri-cli/config.schema.json
  • crates/tauri-cli/src/acl/permission/rm.rs
  • crates/tauri-cli/src/build.rs
  • crates/tauri-cli/src/bundle.rs
  • crates/tauri-cli/src/icon.rs
  • crates/tauri-cli/src/init.rs
  • crates/tauri-cli/src/interface/rust.rs
  • crates/tauri-cli/src/mobile/android/build.rs
  • crates/tauri-cli/src/mobile/ios/build.rs
  • crates/tauri-cli/src/signer/generate.rs
  • crates/tauri-runtime-wry/Cargo.toml
  • crates/tauri-runtime-wry/src/lib.rs
  • crates/tauri-runtime-wry/src/webview_permissions.rs
  • crates/tauri-runtime/Cargo.toml
  • crates/tauri-runtime/src/lib.rs
  • crates/tauri-runtime/src/webview.rs
  • crates/tauri-runtime/src/webview_permissions.rs
  • crates/tauri-schema-generator/schemas/config.schema.json
  • crates/tauri-schema-worker/package.json
  • crates/tauri-utils/Cargo.toml
  • crates/tauri-utils/src/acl/resolved.rs
  • crates/tauri-utils/src/config.rs
  • crates/tauri-utils/src/resources.rs
  • crates/tauri/Cargo.toml
  • crates/tauri/mobile/android-codegen/TauriActivity.kt
  • crates/tauri/mobile/android/src/main/java/app/tauri/PermissionHelper.kt
  • crates/tauri/mobile/android/src/main/java/app/tauri/plugin/Plugin.kt
  • crates/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginHandle.kt
  • crates/tauri/mobile/android/src/main/java/app/tauri/plugin/PluginManager.kt
  • crates/tauri/src/app.rs
  • crates/tauri/src/event/listener.rs
  • crates/tauri/src/ipc/authority.rs
  • crates/tauri/src/ipc/protocol.rs
  • crates/tauri/src/manager/mod.rs
  • crates/tauri/src/manager/webview.rs
  • crates/tauri/src/webview/mod.rs
  • crates/tauri/src/webview/webview_window.rs
  • packages/api/package.json
  • packages/cli/package.json
  • pnpm-workspace.yaml
  • ports/tao/.cargo/audit.toml
  • ports/tao/.changes/change-pr-1173.md
  • ports/tao/.changes/dpi-leak-hdc-handle.md
  • ports/tao/.changes/fix-jis-key-mapping.md
  • ports/tao/.changes/fix-wayland-csd.md
  • ports/tao/.changes/ios-multiwindow-crash.md
  • ports/tao/.changes/ios-windowing-control-style.md
  • ports/tao/.changes/refactor-windows-keyboard.md
  • ports/tao/.changes/taskbar-created-lock.md
  • ports/tao/.changes/windows-ime-event.md
  • ports/tao/.changes/windows-initial-background-color.md
  • ports/tao/.changes/windows-input-deadlock.md
  • ports/tao/.changes/windows-remove-subclassing.md
  • ports/tao/.github/workflows/audit.yml
  • ports/tao/.github/workflows/ci.yml
  • ports/tao/.github/workflows/covector-status.yml
  • ports/tao/.github/workflows/covector-version-or-publish.yml
  • ports/tao/CHANGELOG.md
  • ports/tao/Cargo.toml
  • ports/tao/src/event.rs
  • ports/tao/src/event_loop.rs
  • ports/tao/src/keyboard.rs
  • ports/tao/src/platform/unix.rs
  • ports/tao/src/platform_impl/android/mod.rs
  • ports/tao/src/platform_impl/android/ndk_glue.rs
  • ports/tao/src/platform_impl/ios/mod.rs
  • ports/tao/src/platform_impl/ios/scene.rs
  • ports/tao/src/platform_impl/ios/view.rs
  • ports/tao/src/platform_impl/macos/util/async.rs
  • ports/tao/src/platform_impl/macos/view.rs
  • ports/tao/src/platform_impl/macos/window.rs
  • ports/tao/src/platform_impl/macos/window_delegate.rs
  • ports/tao/src/platform_impl/windows/event_loop.rs
  • ports/tao/src/window.rs
  • ports/tao/tao-macros/CHANGELOG.md
  • ports/tao/tao-macros/Cargo.toml
  • ports/tao/tao-macros/src/lib.rs
  • ports/wry/.changes/change-pr-1736.md
  • ports/wry/.changes/change-pr-1748.md
  • ports/wry/.changes/early-mutex-release.md
  • ports/wry/.changes/forward-hwnd-handler.md
  • ports/wry/.changes/macos-protocol-body-nocopy.md
  • ports/wry/.changes/objc2-0.3.2.md
  • ports/wry/.changes/permission-handler.md
  • ports/wry/.changes/windows-with-profile-name.md
  • ports/wry/CHANGELOG.md
  • ports/wry/Cargo.toml
  • ports/wry/README.md
  • ports/wry/examples/async_custom_protocol.rs
  • ports/wry/examples/custom_protocol.rs
  • ports/wry/examples/streaming.rs
  • ports/wry/examples/transparent.rs
  • ports/wry/src/android/binding.rs
  • ports/wry/src/android/kotlin/Rust.kt
  • ports/wry/src/android/kotlin/WryActivity.kt
  • ports/wry/src/android/main_pipe.rs
  • ports/wry/src/android/mod.rs
  • ports/wry/src/lib.rs
  • ports/wry/src/wkwebview/mod.rs
  • renovate.json

You can disable this status message by setting the reviews.review_status to false in the CodeRabbit configuration file.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

@socket-security

socket-security Bot commented Aug 3, 2026

Copy link
Copy Markdown

@socket-security

socket-security Bot commented Aug 3, 2026

Copy link
Copy Markdown

Warning

Review the following alerts detected in dependencies.

According to your organization's Security Policy, it is recommended to resolve "Warn" alerts. Learn more about Socket for GitHub.

Action Severity Alert  (click "▶" to expand/collapse)
Warn High
Obfuscated code: cargo openssl is 90.0% likely obfuscated

Confidence: 0.90

Location: Package overview

From: ?cargo/native-tls@0.2.12cargo/openssl@0.10.78

ℹ Read more on: This package | This alert | What is obfuscated code?

Next steps: Take a moment to review the security alert above. Review the linked package source code to understand the potential risk. Ensure the package is not malicious before proceeding. If you're unsure how to proceed, reach out to your security team or ask the Socket team for help at support@socket.dev.

Suggestion: Packages should not obfuscate their code. Consider not using packages with obfuscated code.

Mark the package as acceptable risk. To ignore this alert only in this pull request, reply with the comment @SocketSecurity ignore cargo/openssl@0.10.78. You can also ignore all packages with @SocketSecurity ignore-all. To ignore an alert for all future pull requests, use Socket's Dashboard to change the triage state of this alert.

View full report

CI on PR #15 surfaced three real defects, all from resolving conflicts with
--ours/--theirs, which takes the whole file and silently discards the other
side's non-conflicting changes.

1. crates/tauri/src/app.rs -- rebuilding from upstream dropped a second fork
   change I had not noticed: store.register_initialized(plugin) reverted to
   upstream's store.register(plugin). register_initialized is fork-only;
   upstream's register() calls initialized.remove(name), which marks a
   just-initialized plugin as uninitialized. This is what CI reported, as
   dead_code on the now-uncalled method under -D warnings. Also restores the
   fork's webkit2gtk doc-link change. Audited all four fork changes to this
   file; the fourth (removing an unsafe block) had already converged upstream.

2. ports/tao android/mod.rs, ndk_glue.rs, window.rs -- resolving with --ours
   discarded upstream 0.36's android work and, in window.rs, the
   #[cfg(any(windows, linux))] gate on hit_test. The android break was a hard
   compile error: 0.36 moved Suspended and Resumed from Event to WindowEvent,
   and the retained port code still emitted event::Event::Resumed. All three
   are now hunk-level 3-way merges keeping only the port's deliberate
   divergences.

3. ports/wry examples -- taking --theirs kept only the path-traversal guard
   and dropped the rest of the port's hardening, notably unimplemented!() in
   the request handlers (a panic on any unrecognized extension) which the
   port had replaced with 415/404 responses. Rebuilt on 0.56's structure,
   since 0.56 removed the 'protocol' feature the port's module gate used.

Also bumps the brace-expansion pnpm override from 5.0.7 to 5.0.9 for two
advisories requiring >=5.0.8 and >=5.0.9. This one is not from the merge --
audit-js has been failing on dev since at least 2026-07-30 on 3062a89.

Verified: resources.rs and tauri-build/src/lib.rs, also resolved with
--theirs, are genuinely equivalent to upstream (identical rerun_if_changed
push sites and the same by_ref restructure), so nothing was lost there.
Cargo resolution still clean with all five patches used.
OlympusLedgerOrg added a commit that referenced this pull request Aug 3, 2026
audit-js is a required check and has been failing on dev since at least
2026-07-30 on 3062a89, for reasons unrelated to the udeps fix here. Every
PR targeting dev inherits it, which is why this one has been red for two
weeks despite touching only .github/workflows/udeps.yml.

Two advisory groups had to be cleared:

- brace-expansion: the override pinned 5.0.7, but GHSA-rgw5-rvv9-x895 and
  its predecessor now require >=5.0.8 and >=5.0.9. Bumped to 5.0.9.
- postcss: <=8.5.17 (high, path traversal in previous source map) and
  <=8.5.22 (moderate, incomplete fix of GHSA-6g55-p6wh-862q). Added a
  postcss@<8.5.23 override.

`pnpm audit` now reports no known vulnerabilities, and prettier is clean on
both changed files.

Note: the postcss override is only needed on this branch. The upstream sync
in #15 pulls newer transitive deps that already resolve postcss >=8.5.23,
so once that lands this entry is redundant and can be dropped. The
brace-expansion bump is the same change #15 carries, so expect a trivial
conflict in pnpm-workspace.yaml / pnpm-lock.yaml between the two -- take
either side for brace-expansion, drop postcss.
@OlympusLedgerOrg
OlympusLedgerOrg marked this pull request as ready for review August 3, 2026 19:41
OlympusLedgerOrg and others added 2 commits August 3, 2026 16:15
GHSA-4cwx-7wf7-3272 (high, cross-user information disclosure and parse-time
crash via degenerate private cache directives) and GHSA-8xcm-r25x-g524
(moderate, downstream response desynchronization via the retry interceptor).
Both are >=7.0.0 <7.29.0, patched in 7.29.0. Single path:
crates__tauri-schema-worker>wrangler>miniflare>undici, i.e. build/test
tooling for the schema worker, not the desktop binary or the frontend
bundle.

Pinned as ^7.29.0 rather than a bare >=7.29.0 on purpose: undici 8.x is
released (8.10.0 is latest), so an open-ended lower bound would drag
miniflare across a major. undici now resolves to 7.29.0 and pnpm audit
reports no known vulnerabilities.

These advisories are new drift, not merge fallout -- audit-js was green on
this branch at 45/45 before they were published. Same pattern as the
brace-expansion and postcss bumps.

Note on the postcss override inherited from dev via #14: it is inert here,
because the upstream sync already resolves postcss >=8.5.23 on its own. Left
in place rather than removed, since dropping it is a separate decision from
this sync.
@OlympusLedgerOrg
OlympusLedgerOrg merged commit e13c347 into dev Aug 3, 2026
45 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.