Skip to content

Match user extensions to their folder through the /home symlink - #14

Merged
Arkazzae merged 1 commit into
Arkazzae:masterfrom
CaptSilver:fix/extension-symlink-paths
Oct 16, 2026
Merged

Arkazzae merged 1 commit into
Arkazzae:masterfrom
CaptSilver:fix/extension-symlink-paths

Conversation

@CaptSilver

Copy link
Copy Markdown
Contributor

Ran into some issues with have a symlink home dir and case sensitivity during game validation, split the commits into their PRs just in case.

patches/0033-linux-symlinked-extension-paths.patch adds
src/renderer/src/util/extensionPaths.ts. Vortex records the plugins
folder from userData (/home/... on Fedora Atomic, where /home links to
/var/home), but Node reports module filenames and stack frames with the
symlink resolved (/var/home/...). The prefix checks in extensionRequire.ts
and in the unhandled-error handler in renderer.tsx never matched a
user-installed extension. Such an extension could not load modules
bundled with Vortex (Elden Ring: "Cannot find module 'turbowalk'"), ran
without the Linux fs wrapper, and an uncaught error in it closed Vortex
instead of showing the extension error notice. Both checks now also
compare against the folder's real path.

PKGBUILD and .SRCINFO list the new patch.
Arkazzae added a commit that referenced this pull request Oct 16, 2026
extensionInStack escaped only backslashes, so a real path with
parentheses, such as a folder named "Data (2TB)", reported the extension
as "unknown", and an unbalanced one would throw inside the error handler.
It now escapes the whole path. A root that doesn't exist yet, such as
plugins/ before the first extension is installed, takes the real path of
its nearest existing parent instead of caching the unresolved path for
the session.

matchExistingCaseSync returns early when the path already exists, like
resolveCaseInsensitiveSync.

CHANGELOG.md describes #14 and #15, and pkgrel moves to 4 to release
them.
@Arkazzae
Arkazzae merged commit 31c956d into Arkazzae:master Oct 16, 2026
@Arkazzae

Copy link
Copy Markdown
Owner

Thanks for tracking this down! Merged, with two small tweaks on top: the extension path is now fully escaped in the stack regex (a folder like Data (2TB) broke the match), and a plugins folder that doesn't exist yet still resolves through its parent. This should also help anyone who moved ~/.config/Vortex to another disk, not just Fedora Atomic.

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.

2 participants