d3b090a397
The linux relaunch gate compares the running desktop's exe path (relaunch target, read from /proc/<pid>/exe — kernel-canonicalised) against the checkout's unpacked-app prefix with a raw case-pattern. On hosts where /home is a symlink to /var/home (e.g. Fedora), the two sides spell the same tree differently (/home/... vs /var/home/...) and the gate false-positives "skew", telling the user to reinstall the desktop app after every successful self-update. Canonicalise both sides with readlink -m (which resolves existing leading components without requiring the full path to exist, unlike -f) before the prefix compare. No-op when both sides already agree.