Skip to content

[5/10] Harden the macOS loader and launcher - #368

Merged
netniV merged 2 commits into
refactor/04-features-settings-syncfrom
refactor/05-macos-launcher
Nov 14, 2026
Merged

netniV merged 2 commits into
refactor/04-features-settings-syncfrom
refactor/05-macos-launcher

Conversation

@friendly-ripper

Copy link
Copy Markdown
Collaborator

Part 5 of 10 · base refactor/04-features-settings-sync · 2 commits

The macOS loader could keep going with a bad path or a dangling string and then run the wrong thing, quietly. This PR makes both the loader and the launcher stop with a readable message instead.

What changes

  • The loader no longer keeps a pointer into an autoreleased string. A missing settings file or game path fails with a message on stderr instead of being ignored. Symlinks are resolved and the loader runs the resolved path, so launching through a link no longer injects a dylib path that does not exist.
  • The launcher uses the Xsolla updater directly and drops unused view state. Required entitlements are compared without redundant reapplication flags, and UI work stays on the main actor. The rsync bridge owns its patch handles and reports read, write, patch, and close failures instead of dropping them.

Behavior changes

  • A broken install stops with a message the player can read. It no longer launches with a missing settings file, a missing game path, or a dylib path that does not exist.

Testing

Built with xmake. Every commit was built on macOS arm64. Nothing was run in the game.

tashcan added 2 commits October 15, 2026 16:40
The loader kept a pointer into an autoreleased string, ignored
a missing settings file or game path, then executed a relative
path. Each case now fails with a message on stderr.

Symlinks are resolved, so launching through a link no longer
injects a dylib path that does not exist.
The launcher uses the Xsolla updater directly and drops unused
view state. Required entitlements are compared without
redundant reapplication flags, and UI work stays on the main
actor.

The rsync bridge owns its patch handles and reports read,
write, patch and close failures instead of dropping them.
@netniV
netniV added this pull request to the merge queue Nov 14, 2026
Merged via the queue into dev with commit 5adedde Nov 14, 2026
6 checks passed
@netniV
netniV deleted the refactor/05-macos-launcher branch November 14, 2026 00:06
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