Repository navigation
fix: recover OMP executable after installation path changes - #6
Merged
Merged
Conversation
Compare stable executable entries before probing a PATH replacement. Keep legacy database diagnostics read-only without false lease errors, and rely on the existing configuration fingerprint for service refresh.
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.
Problem
Switching OMP installation channels, such as Homebrew to the official curl installer, leaves PinkCollab pointing to a stale absolute executable path even when a working installation is available on PATH.
Root cause
Setup validates the persisted executable without a controlled rediscovery mechanism. Explicit-path resolution intentionally does not fall back to PATH, and doctor does not identify a replacement.
Solution
omp --versionprobe and require authorization before migration. Interactive confirmation defaults to No; explicitsetup --omp <path|omp>also authorizes non-interactive recovery.Compatibility
No changes to executable resolver fallback semantics, Runtime launch behavior, Windows PATHEXT handling, runtime protocol, Android, networking, dependencies, lockfiles, or database schema.
Tests
Final verification on macOS using an isolated Rust 1.89.0 toolchain matching upstream CI (the user's default toolchain was not changed):
cargo fmt --check: passed.cargo clippy --all-targets --all-features --locked -- -D warnings: passed.cargo test --all-features --locked: 234 passed, 2 ignored across 24 suites.git diff --check: passed.The previously observed strict Clippy failure on Rust 1.98.1 is an existing
chunks_exact_to_as_chunkswarning at unchanged upstreamsrc/service/windows_ux.rs:148. It was not fixed or suppressed in this PR; CI's Rust 1.89.0 strict check passes.Native Ubuntu, macOS, and Windows Gateway CI checks passed on commit
2d58c4659ce3e41f6364277cf9a0db056f6fc7b3, including formatting, strict Clippy, the full test suite, and the Gateway build. npm checks on all three platforms, website, andci-requiredalso passed: CI run 38237443478. Android and release-cache were conditionally skipped.CLI/service regressions use temporary homes, fake executables and service managers; these CI tests are not end-to-end acceptance of production systemd, launchd, or Windows services. Real service changes and a real OMP smoke test were not performed. Existing symlink-upgrade regressions pass. One initial local targeted run hit the existing health fixture socket-read timeout; the rerun and full suite passed without relaxing the fixture or assertions.
Notes
A required Gateway restart terminates active OMP runtimes but preserves pairings and saved sessions. If restart fails, setup reports failure and retains the authorized configuration; resolve the service error before restarting. No runtime protocol, network, or Android changes are included.