Repository navigation
Update Rust crate open to v5.4.5 - #101
Merged
Merged
Conversation
ntsk
approved these changes
Oct 25, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
5.4.4→5.4.5Release Notes
Byron/open-rs (open)
v5.4.5Compare Source
Bug Fixes
check that_detached launchers for immediate failures
that_detached()returned as soon as a launcher spawned, so a launcher thatfailed 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 withinthat window falls through to the next candidate; one still running is treated
as handed off. The macOS and
shellexecute-on-windowspaths are unchanged.Extend the fixture tests to call
that_detached()directly.restore launcher fallback and support Plasma 6
When
xdg-openstarts but exits unsuccessfully,that()and the CLIpreviously stopped before trying another installed opener. On Plasma 6,
the fallback list also omitted the versioned KDE launchers.
Launcher behavior
unsuccessful exit when later candidates are missing.
kde-open6andkde-open5before the existingkde-openfallback.together so compatibility decisions are explicit.
for option-shaped and non-UTF-8 paths.
Bounded detached checks
Add
that_detached_with_timeout(path, timeout)to opt into checking theactual 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 abackground 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-windowsis enabled.Historical constraints
55dc10drelaxed exit checks for argumentless availability probes, whereusage errors are expected. It did not establish that failed real opening
operations should stop fallback.
245c95eintroduced that behavior;the earlier implementation retried unsuccessful operations.
Keep stderr redirected to null:
30a144aand0bdc6d6document previouspipe 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. Excludekioclient exec, which enables executionbeyond
kde-open's behavior, and arbitrary file-manager or AppImageenvironment fallbacks that could override configured handlers.
Validation and limits
selection, Plasma 6 reachability, timeouts, child reaping, survival after
caller exit, large stderr output, argument protection, and CLI behavior.
git diff --check, and all-target, all-feature Linux clippypass. Windows and macOS compile checks and clippy also pass.
that opens a target before reporting failure can cause a duplicate open
when retried. Failures after the timeout cannot trigger fallback.
Commit Statistics
Commit Details
view details
4e64f6b)c88759b)42a34b0)279c1b2)Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.