Skip to content

chore: sync upstream v2.7.2 into master - #12

Draft
github-actions[bot] wants to merge 12 commits into
masterfrom
sync/upstream-v2.7.2
Draft

github-actions[bot] wants to merge 12 commits into
masterfrom
sync/upstream-v2.7.2

Conversation

@github-actions

Copy link
Copy Markdown

Sync upstream v2.7.2 into master

Upstream tag: v2.7.2
Upstream release: https://github.com/Nexus-Mods/Vortex/releases/tag/v2.7.2
Conflict status: Clean merge
Linux smoke gate: pass
✓ Linux smoke: 32/32 probes passed — sync clean
Commits from fork base to upstream tag: 11

Upstream commits

41be6d455 Merge pull request #24322 from Nexus-Mods/task/laz-1011
1af67f4cb Give the Witcher 3 load order rows a uniform height
4974ff39d Keep the Witcher 3 load order through a purge
7020805bc Remove the unused load order priority machinery
38bb08005 Build the Witcher 3 test paths with the host's separators
3100d4e2a Install the newest script merger by release tag
cad31267f Fix the load order page crashing on mod changes
8285ab2a4 Fix load order and merge state being lost or reordered
9bf961829 Keep the script merger pointed at the discovered install
0f5cdadc8 Support the Witcher 3 Remastered edition
7f0219278 Add a unit test harness to the Witcher 3 extension

Fork: https://github.com/atabisz/Vortex

IDCs added 11 commits September 28, 2026 14:21
Wires up vitest with the extension test mocks, so the logic added alongside
can be covered without a running Vortex.

part of LAZ-1011
The remaster ships no bin/x64 and no graphicsdx11.xml, and adds in-game
switches that silently stop deployed mods loading.

- Detect the edition from the install, failing towards the older behaviour
  so nothing changes for Classic and Next-Gen.
- Widen requiredFiles to a script present in every edition. The stored list
  is re-checked on startup, so the old value un-discovered the game for
  anyone who updated in place.
- Repair the stored executable when it no longer exists, which is what the
  in-place update leaves behind.
- Narrow the config matrix on the remaster, which has no graphicsdx11.xml to
  merge against.
- Add health checks for the in-game mod switches and for mod folder names
  over the length the remaster accepts, and surface failures as
  notifications, since the health check page lists only mod requirements.
- Preserve the mod switches when regenerating the menu mod settings file,
  which is otherwise rebuilt from a backup that predates them.
- Show a one-time notice covering what the upgrade changes.
- Gate the mod limit patcher, whose offsets do not apply to the remaster.
- Query the registry under the key both executables actually use.

part of LAZ-1011
Every edition is managed under one game entry, so the merger tool and its
configuration survive a switch between installs. The stored path was accepted
on existence alone, so a merger belonging to another install passed and would
have merged the wrong vanilla scripts into the wrong Mods folder.

- Reject a tool path outside the discovered game root, re-point it when a
  merger is present there, and clear it when one is not.
- Re-run the merger configuration on activation so its recorded directories
  match the install.
- Record how each mod changes scripts as an attribute at install time, and
  suggest the merger only once two enabled mods ship whole-file scripts.
  Mods using scope annotations never claim the same file.

part of LAZ-1011
- Stop sorting collection load orders by data.prefix, which is only refreshed
  on deploy, so a reorder exported without deploying came out wrong. The
  field is still written, so the payload is unchanged for older clients.
- Give every mod a distinct priority in mods.settings. Mods absent from the
  load order all received the same number, and a purge made every mod absent,
  so the following deploy produced an arbitrary order.
- Fall back to the profile's stored load order when mods.settings is missing,
  rather than replacing it with an empty one.
- Restore MergeInventory.xml only alongside the merged scripts it describes.
- Sort the load order alphabetically by folder name, which is the order the
  game falls back to, and persist it before refreshing.

part of LAZ-1011
The row helpers were plain functions called from JSX, so their hooks belonged
to ItemRenderer and ran behind conditionals. A row that gained or lost an
entry changed the hook count and React threw, taking the page down.

Making them components keeps their hooks out of ItemRenderer's list.
Merger releases are no longer named as versions, so builds that read the
name stay on 0.6.5 instead of offering a release they cannot verify. The
version now comes from the tag, and the archive is picked by name.

Drops the MD5 check and MD5Cache.json, so a new merger release reaches
users without a Vortex release. A download that is incomplete, fails to
extract or has no executable points the user at the manual install.

part of LAZ-1011
CI also runs the suite on Linux, where a backslash is not a path
separator, so fixtures written with hardcoded backslashes fail there.

part of LAZ-1011
PriorityManager, its priority type setting and the per-entry prefix fed
nothing: mods.settings priorities come from each entry's position in the
load order.

Entries still carry their position as data.prefix, because older versions
of the extension share the same state and sort by it without a guard.

part of LAZ-1011
A purge deletes mods.settings, or rewrites it with only manually added
mods, and a missing file reads as empty rather than failing. The load
order page keeps the stored order in both cases, and the next deploy
writes it back.

mods.settings is built beside the real file and moved over it, so a
concurrent read never sees it empty or half written.

part of LAZ-1011
Rows use the default renderer's fixed-height styling and the view mod
button is an embedded icon, so every row is the same height and the list
can be virtualized.

part of LAZ-1011
support the Witcher 3 Remastered edition (LAZ-1011)
@github-actions
github-actions Bot force-pushed the sync/upstream-v2.7.2 branch 5 times, most recently from 371a32c to 41dacc7 Compare October 4, 2026 12:12
@github-actions
github-actions Bot force-pushed the sync/upstream-v2.7.2 branch from 41dacc7 to d614e3b Compare October 5, 2026 14:23
@github-actions

Copy link
Copy Markdown
Author

This PR has been marked as stale due to inactivity.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant