chore(deps): update rust crate open to v5.4.5 (master) #342

Open
renovate-bot wants to merge 1 commit from renovate/master-open-5.x-lockfile into master
Collaborator

This PR contains the following updates:

Package Type Update Change
open workspace.dependencies minor 5.3.3 → 5.4.5

⚠️ Warning

Some dependencies could not be looked up. Check the Dependency Dashboard for more information.


Release Notes

Byron/open-rs (open)

v5.4.5

Compare Source

Bug Fixes
  • check that_detached launchers for immediate failures
    that_detached() returned as soon as a launcher spawned, so a launcher that
    failed right after starting was reported as success and no fallback ran.

    Observe each launcher for 250 ms by delegating to
    that_detached_with_timeout(). A launcher that exits unsuccessfully within
    that window falls through to the next candidate; one still running is treated
    as handed off. The macOS and shellexecute-on-windows paths are unchanged.

    Extend the fixture tests to call that_detached() directly.

  • restore launcher fallback and support Plasma 6

    When xdg-open starts but exits unsuccessfully, that() and the CLI
    previously stopped before trying another installed opener. On Plasma 6,
    the fallback list also omitted the versioned KDE launchers.

Launcher behavior
  • Retry reported failures from UNIX desktop launchers and retain the first
    unsuccessful exit when later candidates are missing.
  • Add kde-open6 and kde-open5 before the existing kde-open fallback.
  • Keep launcher ordering, argument boundaries, and exit-status policy
    together so compatibility decisions are explicit.
  • Preserve Windows' stop-on-failure policy and the existing protections
    for option-shaped and non-UTF-8 paths.
Bounded detached checks

Add that_detached_with_timeout(path, timeout) to opt into checking the
actual launcher status for a configurable interval per candidate. Retry
confirmed UNIX launcher failures; consider successful exits or launchers
still running at the deadline handed off. A zero timeout polls once.

On UNIX, use setsid() while retaining the launcher as a child. Reserve a
background waiter before spawning and transfer ownership after a timeout
so the launcher can outlive its caller and is eventually reaped. Stop
fallback if observing an already-started launcher fails, avoiding a second
launch based only on a wait error. Existing detached calls retain their
timing behavior. The new API uses command-based launchers on Windows,
including when shellexecute-on-windows is enabled.

Historical constraints

55dc10d relaxed exit checks for argumentless availability probes, where
usage errors are expected. It did not establish that failed real opening
operations should stop fallback. 245c95e introduced that behavior;
the earlier implementation retried unsuccessful operations.

Keep stderr redirected to null: 30a144a and 0bdc6d6 document previous
pipe deadlocks and hangs. Do not interpret the successful double-fork
intermediate child's exit as launcher success (a78c0ca, 43e601d).

Document these constraints and upstream launcher behavior in
docs/launchers.md. Exclude kioclient exec, which enables execution
beyond kde-open's behavior, and arbitrary file-manager or AppImage
environment fallbacks that could override configured handlers.

Validation and limits
  • Default and all-feature Linux tests pass, covering fallback, error
    selection, Plasma 6 reachability, timeouts, child reaping, survival after
    caller exit, large stderr output, argument protection, and CLI behavior.
  • Formatting, git diff --check, and all-target, all-feature Linux clippy
    pass. Windows and macOS compile checks and clippy also pass.
  • Actual desktop and AppImage behavior still needs testing. A handler
    that opens a target before reporting failure can cause a duplicate open
    when retried. Failures after the timeout cannot trigger fallback.
Commit Statistics
  • 4 commits contributed to the release.
  • 42 days passed between releases.
  • 2 commits were understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
  • Uncategorized
    • Merge pull request #​135 from Byron/fix-linux-launchers (4e64f6b)
    • Auto-review (c88759b)
    • Check that_detached launchers for immediate failures (42a34b0)
    • Restore launcher fallback and support Plasma 6 (279c1b2)

v5.4.4

Compare Source

Bug Fixes
  • open Windows paths without wildcard expansion

    Opening a child of a bracket-named directory fails because Start-Process
    resolves parent directories as PowerShell wildcard patterns. The isolated
    Windows regression test reproduced WildcardPatternException for a copied
    executable under "【Tiny Asa】 [77P7V-712MB]\child" before this change.

    Use Test-Path and Invoke-Item with LiteralPath for existing items, retaining
    Start-Process for URLs and application names. These cmdlets also work under
    PowerShell Constrained Language Mode. Share the embedded script between
    Windows and WSL, keep targets in environment data, and stop on launch errors
    to report a nonzero exit status. Preserve the security boundary established
    in fd29861: cmd /c start remains opt-in through the insecure feature. No
    previously removed launcher options are restored.

    The integration test launches only a copy of its own test binary, which
    records its executable path and exits. It checks absolute and relative paths
    with invalid and valid bracket patterns, Unicode, backticks, quotes, shell
    metacharacters, and leading dashes in normal and constrained PowerShell
    sessions, plus failure for a missing executable. It requires neither Explorer
    nor registered document or URL handlers. Adjust the existing fallback
    assertion to also allow the opt-in cmd launcher after Explorer with all
    features enabled.

    Validated locally on Windows with PowerShell 5.1.26100.33438 and rustc 1.97.1:
    cargo test and cargo test --all-features each passed all 19 tests, including
    the behavioral regression. git diff --check passed, and cargo
    package --list includes the embedded script. Test-Path returned false without
    errors for representative https, mailto, and file URLs. Actual GUI folder,
    document, URL handling and WSL interop were not exercised locally.

Commit Statistics
  • 3 commits contributed to the release.
  • 8 days passed between releases.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #​132
Commit Details
view details
  • #​132
    • Open Windows paths without wildcard expansion (ad95c40)
  • Uncategorized

v5.4.3

Compare Source

Bug Fixes
  • wait for intermediate child to terminate when double-forking
Commit Statistics
  • 4 commits contributed to the release.
  • 9 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
  • Uncategorized
    • Release open v5.4.3 (9551952)
    • Merge pull request #​131 from ncfavier/reap (136d4d0)
    • Review (43e601d)
    • Wait for intermediate child to terminate when double-forking (a78c0ca)

v5.4.2

Compare Source

Bug Fixes
  • wait in that_detached instead of double-fork
    On macOS /usr/bin/open already detaches via LaunchServices. spawn_detached()
    adds another fork and leaves zombie children. Align that_detached with
    with_detached (PR #​119).
Commit Statistics
  • 5 commits contributed to the release over the course of 18 calendar days.
  • 19 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details
  • Uncategorized

v5.4.1

Compare Source

Bug Fixes
  • Forward WSL targets to PowerShell to make open actually work there

    Opening a URL from WSL failed because the Windows process did not receive
    OPEN_RS_TARGET, even though it was present in the Linux command environment.
    The failure reproduces with cargo run -- https://google.com on Ubuntu under
    WSL, where Start-Process receives a null FilePath and exits unsuccessfully.

    Add OPEN_RS_TARGET to WSLENV so WSL interop forwards the target into the
    PowerShell environment. Preserve existing WSLENV entries and their flags,
    while keeping the PowerShell command fixed so targets remain data rather than
    shell code.

    Validated with focused WSL tests, the all-features test suite, rustfmt,
    Clippy with warnings denied, and an end-to-end cargo run from WSL.

Commit Statistics
  • 2 commits contributed to the release.
  • 24 days passed between releases.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #​128
Commit Details
view details
  • #​128
    • Forward WSL targets to PowerShell to make open actually work there (96fa673)
  • Uncategorized

v5.4.0

Compare Source

New Features
  • cargo run now shows the exact commands that were tried when opening.
    This is useful for debugging, mainly.
Bug Fixes
  • Align WSL PowerShell invocation with Windows
    Pass the WSL open target to PowerShell through the OPEN_RS_TARGET
    environment variable instead of embedding it in the command string and
    escaping it as a single-quoted PowerShell value.

    This matches the safer invocation already used by the native Windows
    backend. Keeping the PowerShell program fixed ensures that paths and URLs
    are treated purely as data, even when they contain quotes, semicolons, or
    other PowerShell metacharacters. It also removes the need for custom
    PowerShell quoting and avoids converting the target through
    to_string_lossy() during command construction.

    Add -NonInteractive for consistency with the Windows launcher and update
    the WSL tests to verify both the fixed command and the unchanged
    environment-variable value.

  • prevent launcher option and shell injection
    Opening an attacker-controlled dash-leading path could be interpreted as
    launcher options. On Windows, cmd /c start also parsed embedded quotes and
    metacharacters as command language, while the legacy gnome-open fallback
    could load a module even after a double-dash separator.

    Add command-construction regressions for malicious option-shaped paths and
    Windows shell metacharacters. Use supported separators on macOS and KDE, and
    rewrite dash-leading relative paths for launchers without separator support.
    Keep Windows values out of shell syntax by passing the default target through
    the environment and invoking custom applications directly, with explorer.exe
    as a PowerShell-free fallback.

    Exclude cmd-based opening by default, while providing an
    explicit insecure Cargo feature for users who need compatibility it
    and accept their unsafe handling of untrusted input.

    Validated with default and all-feature cargo tests, clippy, and cross-target
    cargo check --tests for aarch64 Linux and Windows.

Commit Statistics
  • 6 commits contributed to the release.
  • 13 days passed between releases.
  • 3 commits were understood as conventional.
  • 1 unique issue was worked on: #​124
Commit Details
view details
  • #​124
    • Prevent launcher option and shell injection (fd29861)
  • Uncategorized
    • Release open v5.4.0 (b5c12bd)
    • Merge pull request #​126 from Byron/fix-wsl (bdc3397)
    • Align WSL PowerShell invocation with Windows (7265cae)
    • Merge pull request #​125 from Byron/open-with-dash-dash (407b058)
    • cargo run now shows the exact commands that were tried when opening. (7c19c0a)

v5.3.6

Compare Source

Bug Fixes
  • use PowerShell instead of wslview on WSL
    WSL users reported that wslu's wslview is discontinued and unavailable in
    some package managers. The regression tests cover the WSL command builder and
    initially failed because the first generated command was still wslview.

    Build the WSL opener as a PowerShell Start-Process -FilePath script argument
    with the target quoted as data, then retain the xdg-open, gio, gnome-open, and
    kde-open fallbacks. Update the user-facing docs and keep the WSL command builder
    testable from host builds without adding dev-dependencies.

Commit Statistics
  • 3 commits contributed to the release.
  • 48 days passed between releases.
  • 1 commit was understood as conventional.
  • 1 unique issue was worked on: #​122
Commit Details
view details

v5.3.5

Compare Source

Bug Fixes
  • delegate to winebrowser under Wine
    When running a Windows-targeted binary under Wine, open requests previously fell back to Wine's bundled explorer.exe, which lacks proper host desktop integration.

    This change detects the Wine environment at runtime (via WINEPREFIX, WINELOADER, or WINEDEBUG) and prepends a winebrowser command to the launcher list. winebrowser is Wine's official utility for forwarding file/URL requests to the host OS's default handler (e.g., xdg-open on Linux, open on macOS).

    If winebrowser is unavailable or fails, the existing cmd /c start fallback is used automatically, preserving backward compatibility. No public API changes or compile-time flags are introduced.

Commit Statistics
  • 4 commits contributed to the release.
  • 23 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages
Commit Details
view details

v5.3.4

Compare Source

Bug Fixes
  • align with_detached() implementation with with()
    On macOS, /usr/bin/open is natively detached. This commit changes
    with_detached to use the same logic as with() .avoid double detachment to prevent silent failure
Commit Statistics
  • 7 commits contributed to the release.
  • 153 days passed between releases.
  • 1 commit was understood as conventional.
  • 0 issues like '(#ID)' were seen in commit messages
Thanks Clippy

Clippy helped 1 time to make code idiomatic.

Commit Details
view details
  • Uncategorized
    • Release open v5.3.4 (7bd519c)
    • Merge pull request #​119 from benzeneringlq/fix-macos-detach-silent-failure (7db5738)
    • Align with_detached() implementation with with() (8e122d4)
    • Merge pull request #​117 from ChrisDenton/absolute (20ea175)
    • Thanks clippy (on Windows) (7faae87)
    • Enable clippy deny on CI, with all features, but allow incompatible MRSV there (1ab9c47)
    • Use absolute instead of canonicalize (5604cee)

Configuration

📅 Schedule: (in timezone Europe/Berlin)

  • Branch creation
    • At any time (no schedule defined)
  • Automerge
    • At any time (no schedule defined)

🚦 Automerge: Enabled.

♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

This PR has been generated by Mend Renovate.

This PR contains the following updates: | Package | Type | Update | Change | |---|---|---|---| | [open](https://github.com/Byron/open-rs) | workspace.dependencies | minor | `5.3.3` → `5.4.5` | --- > ⚠️ **Warning** > > Some dependencies could not be looked up. Check the [Dependency Dashboard](issues/190) for more information. --- ### Release Notes <details> <summary>Byron/open-rs (open)</summary> ### [`v5.4.5`](https://github.com/Byron/open-rs/blob/HEAD/changelog.md#545-2026-10-22) [Compare Source](https://github.com/Byron/open-rs/compare/v5.4.4...v5.4.5) ##### Bug Fixes - <csr-id-42a34b073caf7c4ec631ec0657b6ba5387b369f2/> check that\_detached launchers for immediate failures `that_detached()` returned as soon as a launcher spawned, so a launcher that failed right after starting was reported as success and no fallback ran. Observe each launcher for 250 ms by delegating to `that_detached_with_timeout()`. A launcher that exits unsuccessfully within that window falls through to the next candidate; one still running is treated as handed off. The macOS and `shellexecute-on-windows` paths are unchanged. Extend the fixture tests to call `that_detached()` directly. - <csr-id-279c1b24e34a482f893a09a483294e20f344350b/> restore launcher fallback and support Plasma 6 <!-- agent --> When `xdg-open` starts but exits unsuccessfully, `that()` and the CLI previously stopped before trying another installed opener. On Plasma 6, the fallback list also omitted the versioned KDE launchers. ##### Launcher behavior - Retry reported failures from UNIX desktop launchers and retain the first unsuccessful exit when later candidates are missing. - Add `kde-open6` and `kde-open5` before the existing `kde-open` fallback. - Keep launcher ordering, argument boundaries, and exit-status policy together so compatibility decisions are explicit. - Preserve Windows' stop-on-failure policy and the existing protections for option-shaped and non-UTF-8 paths. ##### Bounded detached checks Add `that_detached_with_timeout(path, timeout)` to opt into checking the actual launcher status for a configurable interval per candidate. Retry confirmed UNIX launcher failures; consider successful exits or launchers still running at the deadline handed off. A zero timeout polls once. On UNIX, use `setsid()` while retaining the launcher as a child. Reserve a background waiter before spawning and transfer ownership after a timeout so the launcher can outlive its caller and is eventually reaped. Stop fallback if observing an already-started launcher fails, avoiding a second launch based only on a wait error. Existing detached calls retain their timing behavior. The new API uses command-based launchers on Windows, including when `shellexecute-on-windows` is enabled. ##### Historical constraints `55dc10d` relaxed exit checks for argumentless availability probes, where usage errors are expected. It did not establish that failed real opening operations should stop fallback. `245c95e` introduced that behavior; the earlier implementation retried unsuccessful operations. Keep stderr redirected to null: `30a144a` and `0bdc6d6` document previous pipe deadlocks and hangs. Do not interpret the successful double-fork intermediate child's exit as launcher success (`a78c0ca`, `43e601d`). Document these constraints and upstream launcher behavior in `docs/launchers.md`. Exclude `kioclient exec`, which enables execution beyond `kde-open`'s behavior, and arbitrary file-manager or AppImage environment fallbacks that could override configured handlers. ##### Validation and limits - Default and all-feature Linux tests pass, covering fallback, error selection, Plasma 6 reachability, timeouts, child reaping, survival after caller exit, large stderr output, argument protection, and CLI behavior. - Formatting, `git diff --check`, and all-target, all-feature Linux clippy pass. Windows and macOS compile checks and clippy also pass. - Actual desktop and AppImage behavior still needs testing. A handler that opens a target before reporting failure can cause a duplicate open when retried. Failures after the timeout cannot trigger fallback. ##### Commit Statistics <csr-read-only-do-not-edit/> - 4 commits contributed to the release. - 42 days passed between releases. - 2 commits were understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages ##### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> - **Uncategorized** - Merge pull request [#&#8203;135](https://github.com/Byron/open-rs/issues/135) from Byron/fix-linux-launchers ([`4e64f6b`](https://github.com/Byron/open-rs/commit/4e64f6b1ad83b6839e6f2babe657e3897b201daf)) - Auto-review ([`c88759b`](https://github.com/Byron/open-rs/commit/c88759b37476816b89365b2ca9cf614fff999b63)) - Check that\_detached launchers for immediate failures ([`42a34b0`](https://github.com/Byron/open-rs/commit/42a34b073caf7c4ec631ec0657b6ba5387b369f2)) - Restore launcher fallback and support Plasma 6 ([`279c1b2`](https://github.com/Byron/open-rs/commit/279c1b24e34a482f893a09a483294e20f344350b)) </details> ### [`v5.4.4`](https://github.com/Byron/open-rs/blob/HEAD/changelog.md#544-2026-09-10) [Compare Source](https://github.com/Byron/open-rs/compare/v5.4.3...v5.4.4) ##### Bug Fixes - <csr-id-ad95c40f98144b368ec759492edecd0b8b20b672/> open Windows paths without wildcard expansion <!-- agent --> Opening a child of a bracket-named directory fails because Start-Process resolves parent directories as PowerShell wildcard patterns. The isolated Windows regression test reproduced WildcardPatternException for a copied executable under "【Tiny Asa】 \[77P7V-712MB]\child" before this change. Use Test-Path and Invoke-Item with LiteralPath for existing items, retaining Start-Process for URLs and application names. These cmdlets also work under PowerShell Constrained Language Mode. Share the embedded script between Windows and WSL, keep targets in environment data, and stop on launch errors to report a nonzero exit status. Preserve the security boundary established in [`fd29861`](https://github.com/Byron/open-rs/commit/fd29861): cmd /c start remains opt-in through the insecure feature. No previously removed launcher options are restored. The integration test launches only a copy of its own test binary, which records its executable path and exits. It checks absolute and relative paths with invalid and valid bracket patterns, Unicode, backticks, quotes, shell metacharacters, and leading dashes in normal and constrained PowerShell sessions, plus failure for a missing executable. It requires neither Explorer nor registered document or URL handlers. Adjust the existing fallback assertion to also allow the opt-in cmd launcher after Explorer with all features enabled. Validated locally on Windows with PowerShell 5.1.26100.33438 and rustc 1.97.1: cargo test and cargo test --all-features each passed all 19 tests, including the behavioral regression. git diff --check passed, and cargo package --list includes the embedded script. Test-Path returned false without errors for representative https, mailto, and file URLs. Actual GUI folder, document, URL handling and WSL interop were not exercised locally. ##### Commit Statistics <csr-read-only-do-not-edit/> - 3 commits contributed to the release. - 8 days passed between releases. - 1 commit was understood as [conventional](https://www.conventionalcommits.org). - 1 unique issue was worked on: [#&#8203;132](https://github.com/Byron/open-rs/issues/132) ##### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> - **[#&#8203;132](https://github.com/Byron/open-rs/issues/132)** - Open Windows paths without wildcard expansion ([`ad95c40`](https://github.com/Byron/open-rs/commit/ad95c40f98144b368ec759492edecd0b8b20b672)) - **Uncategorized** - Release open v5.4.4 ([`ba35e00`](https://github.com/Byron/open-rs/commit/ba35e001028f03290eaae2cc1cad8411322507b2)) - Merge pull request [#&#8203;133](https://github.com/Byron/open-rs/issues/133) from Byron/fix-open-on-windows ([`45317f8`](https://github.com/Byron/open-rs/commit/45317f8a4fdc43218dcc3418156e677e35662dff)) </details> ### [`v5.4.3`](https://github.com/Byron/open-rs/blob/HEAD/changelog.md#543-2026-09-02) [Compare Source](https://github.com/Byron/open-rs/compare/v5.4.2...v5.4.3) ##### Bug Fixes - <csr-id-a78c0caa9608b7487925df9838a1ccee216e4384/> wait for intermediate child to terminate when double-forking ##### Commit Statistics <csr-read-only-do-not-edit/> - 4 commits contributed to the release. - 9 days passed between releases. - 1 commit was understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages ##### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> - **Uncategorized** - Release open v5.4.3 ([`9551952`](https://github.com/Byron/open-rs/commit/9551952253676494bb0bc5ccb9e79baf6998bd23)) - Merge pull request [#&#8203;131](https://github.com/Byron/open-rs/issues/131) from ncfavier/reap ([`136d4d0`](https://github.com/Byron/open-rs/commit/136d4d0aebb566449ee5b07151ae90ee3db305cf)) - Review ([`43e601d`](https://github.com/Byron/open-rs/commit/43e601dfdec770237fc13d31f8d2469439234caf)) - Wait for intermediate child to terminate when double-forking ([`a78c0ca`](https://github.com/Byron/open-rs/commit/a78c0caa9608b7487925df9838a1ccee216e4384)) </details> ### [`v5.4.2`](https://github.com/Byron/open-rs/blob/HEAD/changelog.md#542-2026-08-24) [Compare Source](https://github.com/Byron/open-rs/compare/v5.4.1...v5.4.2) ##### Bug Fixes - <csr-id-c4369c5af39633a17a79c471605ef1a7f9143243/> wait in that\_detached instead of double-fork On macOS /usr/bin/open already detaches via LaunchServices. spawn\_detached() adds another fork and leaves zombie children. Align that\_detached with with\_detached (PR [#&#8203;119](https://github.com/Byron/open-rs/issues/119)). ##### Commit Statistics <csr-read-only-do-not-edit/> - 5 commits contributed to the release over the course of 18 calendar days. - 19 days passed between releases. - 1 commit was understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages ##### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> - **Uncategorized** - Release open v5.4.2 ([`1a3ef5d`](https://github.com/Byron/open-rs/commit/1a3ef5d5f981ed344fc3f08ca52b35efbb0b890a)) - Merge pull request [#&#8203;130](https://github.com/Byron/open-rs/issues/130) from s00d/fix/macos-that-detached-zombies ([`7468760`](https://github.com/Byron/open-rs/commit/7468760c0b149db984ca3ab35624ff028a9830dd)) - Review ([`351bb54`](https://github.com/Byron/open-rs/commit/351bb54bcdbdd61ff8509fcb3bdb6712ed69ad4e)) - Wait in that\_detached instead of double-fork ([`c4369c5`](https://github.com/Byron/open-rs/commit/c4369c5af39633a17a79c471605ef1a7f9143243)) - Merge pull request [#&#8203;129](https://github.com/Byron/open-rs/issues/129) from Byron/fix-wsl ([`beb6a3f`](https://github.com/Byron/open-rs/commit/beb6a3f3fe16d0c9054230cb8b8b57031727fdfb)) </details> ### [`v5.4.1`](https://github.com/Byron/open-rs/blob/HEAD/changelog.md#541-2026-08-05) [Compare Source](https://github.com/Byron/open-rs/compare/v5.4.0...v5.4.1) ##### Bug Fixes - <csr-id-96fa673a6a152d193c210ff77766270192b42d16/> Forward WSL targets to PowerShell to make `open` actually work there <!-- agent --> Opening a URL from WSL failed because the Windows process did not receive OPEN\_RS\_TARGET, even though it was present in the Linux command environment. The failure reproduces with cargo run -- <https://google.com> on Ubuntu under WSL, where Start-Process receives a null FilePath and exits unsuccessfully. Add OPEN\_RS\_TARGET to WSLENV so WSL interop forwards the target into the PowerShell environment. Preserve existing WSLENV entries and their flags, while keeping the PowerShell command fixed so targets remain data rather than shell code. Validated with focused WSL tests, the all-features test suite, rustfmt, Clippy with warnings denied, and an end-to-end cargo run from WSL. ##### Commit Statistics <csr-read-only-do-not-edit/> - 2 commits contributed to the release. - 24 days passed between releases. - 1 commit was understood as [conventional](https://www.conventionalcommits.org). - 1 unique issue was worked on: [#&#8203;128](https://github.com/Byron/open-rs/issues/128) ##### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> - **[#&#8203;128](https://github.com/Byron/open-rs/issues/128)** - Forward WSL targets to PowerShell to make `open` actually work there ([`96fa673`](https://github.com/Byron/open-rs/commit/96fa673a6a152d193c210ff77766270192b42d16)) - **Uncategorized** - Release open v5.4.1 ([`e548a4e`](https://github.com/Byron/open-rs/commit/e548a4e9180ef8ca7e6b605f3f248fee534a03d1)) </details> ### [`v5.4.0`](https://github.com/Byron/open-rs/blob/HEAD/changelog.md#540-2026-07-12) [Compare Source](https://github.com/Byron/open-rs/compare/v5.3.6...v5.4.0) ##### New Features - <csr-id-7c19c0a1a810326b9a9e7542a0992d80adf0a365/> `cargo run` now shows the exact commands that were tried when opening. This is useful for debugging, mainly. ##### Bug Fixes - <csr-id-7265cae8c19180c1022d8b1a7fbec815d0264909/> Align WSL PowerShell invocation with Windows Pass the WSL open target to PowerShell through the OPEN\_RS\_TARGET environment variable instead of embedding it in the command string and escaping it as a single-quoted PowerShell value. This matches the safer invocation already used by the native Windows backend. Keeping the PowerShell program fixed ensures that paths and URLs are treated purely as data, even when they contain quotes, semicolons, or other PowerShell metacharacters. It also removes the need for custom PowerShell quoting and avoids converting the target through to\_string\_lossy() during command construction. Add -NonInteractive for consistency with the Windows launcher and update the WSL tests to verify both the fixed command and the unchanged environment-variable value. - <csr-id-fd29861355bfb981aecdb94d0915f4e41c2686ee/> prevent launcher option and shell injection Opening an attacker-controlled dash-leading path could be interpreted as launcher options. On Windows, cmd /c start also parsed embedded quotes and metacharacters as command language, while the legacy gnome-open fallback could load a module even after a double-dash separator. Add command-construction regressions for malicious option-shaped paths and Windows shell metacharacters. Use supported separators on macOS and KDE, and rewrite dash-leading relative paths for launchers without separator support. Keep Windows values out of shell syntax by passing the default target through the environment and invoking custom applications directly, with explorer.exe as a PowerShell-free fallback. Exclude cmd-based opening by default, while providing an explicit insecure Cargo feature for users who need compatibility it and accept their unsafe handling of untrusted input. Validated with default and all-feature cargo tests, clippy, and cross-target cargo check --tests for aarch64 Linux and Windows. ##### Commit Statistics <csr-read-only-do-not-edit/> - 6 commits contributed to the release. - 13 days passed between releases. - 3 commits were understood as [conventional](https://www.conventionalcommits.org). - 1 unique issue was worked on: [#&#8203;124](https://github.com/Byron/open-rs/issues/124) ##### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> - **[#&#8203;124](https://github.com/Byron/open-rs/issues/124)** - Prevent launcher option and shell injection ([`fd29861`](https://github.com/Byron/open-rs/commit/fd29861355bfb981aecdb94d0915f4e41c2686ee)) - **Uncategorized** - Release open v5.4.0 ([`b5c12bd`](https://github.com/Byron/open-rs/commit/b5c12bd9207a02272570252071d601a5dc44a3c6)) - Merge pull request [#&#8203;126](https://github.com/Byron/open-rs/issues/126) from Byron/fix-wsl ([`bdc3397`](https://github.com/Byron/open-rs/commit/bdc33978cdbfa1defef31e23659af4ba4a8913b0)) - Align WSL PowerShell invocation with Windows ([`7265cae`](https://github.com/Byron/open-rs/commit/7265cae8c19180c1022d8b1a7fbec815d0264909)) - Merge pull request [#&#8203;125](https://github.com/Byron/open-rs/issues/125) from Byron/open-with-dash-dash ([`407b058`](https://github.com/Byron/open-rs/commit/407b05879efb2b33c4e51fa15d77b49fa748a241)) - `cargo run` now shows the exact commands that were tried when opening. ([`7c19c0a`](https://github.com/Byron/open-rs/commit/7c19c0a1a810326b9a9e7542a0992d80adf0a365)) </details> ### [`v5.3.6`](https://github.com/Byron/open-rs/blob/HEAD/changelog.md#536-2026-06-29) [Compare Source](https://github.com/Byron/open-rs/compare/v5.3.5...v5.3.6) ##### Bug Fixes - <csr-id-44d1d41349fdfd23e5e74e3c0ac4c9aca2ed7282/> use PowerShell instead of wslview on WSL WSL users reported that wslu's wslview is discontinued and unavailable in some package managers. The regression tests cover the WSL command builder and initially failed because the first generated command was still `wslview`. Build the WSL opener as a PowerShell `Start-Process -FilePath` script argument with the target quoted as data, then retain the xdg-open, gio, gnome-open, and kde-open fallbacks. Update the user-facing docs and keep the WSL command builder testable from host builds without adding dev-dependencies. ##### Commit Statistics <csr-read-only-do-not-edit/> - 3 commits contributed to the release. - 48 days passed between releases. - 1 commit was understood as [conventional](https://www.conventionalcommits.org). - 1 unique issue was worked on: [#&#8203;122](https://github.com/Byron/open-rs/issues/122) ##### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> - **[#&#8203;122](https://github.com/Byron/open-rs/issues/122)** - Use PowerShell instead of wslview on WSL ([`44d1d41`](https://github.com/Byron/open-rs/commit/44d1d41349fdfd23e5e74e3c0ac4c9aca2ed7282)) - **Uncategorized** - Release open v5.3.6 ([`cfb39d8`](https://github.com/Byron/open-rs/commit/cfb39d8c323bc147096ae00b1360cb6633ce4c35)) - Merge pull request [#&#8203;123](https://github.com/Byron/open-rs/issues/123) from Byron/avoid-wslview ([`41c4cf0`](https://github.com/Byron/open-rs/commit/41c4cf09cab155460c29ac6a8b36ad6ec70b3d81)) </details> ### [`v5.3.5`](https://github.com/Byron/open-rs/blob/HEAD/changelog.md#535-2026-05-12) [Compare Source](https://github.com/Byron/open-rs/compare/v5.3.4...v5.3.5) ##### Bug Fixes - <csr-id-db813693f3f186dac0bcf67fd939f93ca48a0300/> delegate to winebrowser under Wine When running a Windows-targeted binary under Wine, open requests previously fell back to Wine's bundled `explorer.exe`, which lacks proper host desktop integration. This change detects the Wine environment at runtime (via `WINEPREFIX`, `WINELOADER`, or `WINEDEBUG`) and prepends a winebrowser command to the launcher list. `winebrowser` is Wine's official utility for forwarding file/URL requests to the host OS's default handler (e.g., `xdg-open` on Linux, `open` on macOS). If winebrowser is unavailable or fails, the existing `cmd /c start` fallback is used automatically, preserving backward compatibility. No public API changes or compile-time flags are introduced. ##### Commit Statistics <csr-read-only-do-not-edit/> - 4 commits contributed to the release. - 23 days passed between releases. - 1 commit was understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages ##### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> - **Uncategorized** - Release open v5.3.5 ([`b98fc01`](https://github.com/Byron/open-rs/commit/b98fc01d0a9da985c892f8fdb14b618d036ab12d)) - Merge pull request [#&#8203;121](https://github.com/Byron/open-rs/issues/121) from gsurrel/wine-awareness ([`bb28d04`](https://github.com/Byron/open-rs/commit/bb28d04bef96a59ff60215c349d048c8c4dfab9f)) - Review ([`f72e644`](https://github.com/Byron/open-rs/commit/f72e64456bc3d46b0d3f910597ebc638b96ae75d)) - Delegate to winebrowser under Wine ([`db81369`](https://github.com/Byron/open-rs/commit/db813693f3f186dac0bcf67fd939f93ca48a0300)) </details> ### [`v5.3.4`](https://github.com/Byron/open-rs/blob/HEAD/changelog.md#534-2026-04-19) [Compare Source](https://github.com/Byron/open-rs/compare/v5.3.3...v5.3.4) ##### Bug Fixes - <csr-id-8e122d41929be6d9780679d6a40971de36247af3/> align with\_detached() implementation with with() On macOS, /usr/bin/open is natively detached. This commit changes with\_detached to use the same logic as with() .avoid double detachment to prevent silent failure ##### Commit Statistics <csr-read-only-do-not-edit/> - 7 commits contributed to the release. - 153 days passed between releases. - 1 commit was understood as [conventional](https://www.conventionalcommits.org). - 0 issues like '(#ID)' were seen in commit messages ##### Thanks Clippy <csr-read-only-do-not-edit/> [Clippy](https://github.com/rust-lang/rust-clippy) helped 1 time to make code idiomatic. ##### Commit Details <csr-read-only-do-not-edit/> <details><summary>view details</summary> - **Uncategorized** - Release open v5.3.4 ([`7bd519c`](https://github.com/Byron/open-rs/commit/7bd519c778eda8efe84137e61c35eaff95102d41)) - Merge pull request [#&#8203;119](https://github.com/Byron/open-rs/issues/119) from benzeneringlq/fix-macos-detach-silent-failure ([`7db5738`](https://github.com/Byron/open-rs/commit/7db5738d0d7a43da8b3f29ad5a5c26c73c687a26)) - Align with\_detached() implementation with with() ([`8e122d4`](https://github.com/Byron/open-rs/commit/8e122d41929be6d9780679d6a40971de36247af3)) - Merge pull request [#&#8203;117](https://github.com/Byron/open-rs/issues/117) from ChrisDenton/absolute ([`20ea175`](https://github.com/Byron/open-rs/commit/20ea1758c597d50a58b67854f063a9a9cd99ecb8)) - Thanks clippy (on Windows) ([`7faae87`](https://github.com/Byron/open-rs/commit/7faae875e76ddc05feb24f2bc935532ebfe7fefc)) - Enable clippy deny on CI, with all features, but allow incompatible MRSV there ([`1ab9c47`](https://github.com/Byron/open-rs/commit/1ab9c4738eadacdb83e770ad4ca3133b3fac6c91)) - Use absolute instead of canonicalize ([`5604cee`](https://github.com/Byron/open-rs/commit/5604cee4aae32689e3e648a520f76797b49988e4)) </details> </details> --- ### Configuration 📅 **Schedule**: (in timezone Europe/Berlin) - Branch creation - At any time (no schedule defined) - Automerge - At any time (no schedule defined) 🚦 **Automerge**: Enabled. ♻ **Rebasing**: Whenever PR is behind base branch, or you tick the rebase/retry checkbox. 🔕 **Ignore**: Close this PR and you won't be reminded about this update again. --- - [ ] <!-- rebase-check -->If you want to rebase/retry this PR, check this box --- This PR has been generated by [Mend Renovate](https://github.com/renovatebot/renovate). <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiI0My4xOTUuMCIsInVwZGF0ZWRJblZlciI6IjQzLjE5NS4wIiwidGFyZ2V0QnJhbmNoIjoibWFzdGVyIiwibGFiZWxzIjpbXX0=-->
renovate-bot bot scheduled this pull request to auto merge when all checks succeed 2026-05-28 16:00:54 +02:00
renovate-bot bot force-pushed renovate/master-open-5.x-lockfile from 4cbcc6fb67
Some checks failed
/ clippy (pull_request) Failing after 2m3s
to 1fb4a3c7ef
Some checks failed
/ clippy (pull_request) Failing after 1m58s
2026-06-29 12:00:48 +02:00
Compare
renovate-bot bot changed title from chore(deps): update rust crate open to v5.3.5 (master) to chore(deps): update rust crate open to v5.3.6 (master) 2026-06-29 12:00:49 +02:00
renovate-bot bot force-pushed renovate/master-open-5.x-lockfile from 1fb4a3c7ef
Some checks failed
/ clippy (pull_request) Failing after 1m58s
to 7869bd6af3
Some checks failed
/ clippy (pull_request) Failing after 2m4s
2026-07-12 11:00:56 +02:00
Compare
renovate-bot bot changed title from chore(deps): update rust crate open to v5.3.6 (master) to chore(deps): update rust crate open to v5.4.0 (master) 2026-07-12 11:00:56 +02:00
renovate-bot bot force-pushed renovate/master-open-5.x-lockfile from 7869bd6af3
Some checks failed
/ clippy (pull_request) Failing after 2m4s
to 1f0593925a
Some checks failed
/ clippy (pull_request) Failing after 2m8s
2026-08-05 18:00:55 +02:00
Compare
renovate-bot bot changed title from chore(deps): update rust crate open to v5.4.0 (master) to chore(deps): update rust crate open to v5.4.1 (master) 2026-08-05 18:00:56 +02:00
renovate-bot bot force-pushed renovate/master-open-5.x-lockfile from 1f0593925a
Some checks failed
/ clippy (pull_request) Failing after 2m8s
to 94f2c22676
Some checks failed
/ clippy (pull_request) Failing after 2m8s
2026-08-24 12:00:53 +02:00
Compare
renovate-bot bot changed title from chore(deps): update rust crate open to v5.4.1 (master) to chore(deps): update rust crate open to v5.4.2 (master) 2026-08-24 12:00:55 +02:00
renovate-bot bot force-pushed renovate/master-open-5.x-lockfile from 94f2c22676
Some checks failed
/ clippy (pull_request) Failing after 2m8s
to 8ab3578075
Some checks failed
/ clippy (pull_request) Failing after 2m11s
2026-09-02 06:00:55 +02:00
Compare
renovate-bot bot changed title from chore(deps): update rust crate open to v5.4.2 (master) to chore(deps): update rust crate open to v5.4.3 (master) 2026-09-02 06:00:56 +02:00
renovate-bot bot force-pushed renovate/master-open-5.x-lockfile from 8ab3578075
Some checks failed
/ clippy (pull_request) Failing after 2m11s
to 372279449b
Some checks failed
/ clippy (pull_request) Failing after 2m15s
2026-09-10 07:00:52 +02:00
Compare
renovate-bot bot changed title from chore(deps): update rust crate open to v5.4.3 (master) to chore(deps): update rust crate open to v5.4.4 (master) 2026-09-10 07:00:54 +02:00
renovate-bot bot force-pushed renovate/master-open-5.x-lockfile from 372279449b
Some checks failed
/ clippy (pull_request) Failing after 2m15s
to 46b39e5b30
Some checks failed
/ clippy (pull_request) Failing after 2m17s
2026-10-22 06:01:02 +02:00
Compare
renovate-bot bot changed title from chore(deps): update rust crate open to v5.4.4 (master) to chore(deps): update rust crate open to v5.4.5 (master) 2026-10-22 06:01:02 +02:00
Some checks failed
/ clippy (pull_request) Failing after 2m17s
Required
Details
Some required checks were not successful.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin renovate/master-open-5.x-lockfile:renovate/master-open-5.x-lockfile
git switch renovate/master-open-5.x-lockfile
Sign in to join this conversation.
No reviewers
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
bitsquid_dt/dtmt!342
No description provided.