Commit Graph
535 Commits
Author SHA1 Message Date
lucannez64 9ce1d0c7f2 Merge remote-tracking branch 'origin/main' into pr-fix-132 2026-10-25 19:30:57 +01:00
Kalah 36ca767670 Merge pull request #129 from 3AvisD/docs/vulkan-icd-selection
docs: document Vulkan ICD selection for multiple GPUs
2026-10-25 19:30:29 +01:00
lucannez64 058479a053 fix(recovery): fail closed on inspection errors and report leftovers accurately
Signed-off-by: lucannez64 <[email protected]>
2026-10-25 19:30:16 +01:00
lucannez64 30a178b348 docs: scope GPU diagnostics to one logged reproduction
Signed-off-by: lucannez64 <[email protected]>
2026-10-25 19:29:21 +01:00
lucannez64 82bc150d30 Merge remote-tracking branch 'origin/main' into pr-fix-129 2026-10-25 19:28:43 +01:00
Kalah ea74dfff65 Merge pull request #60 from lucannez64/fix/proc-fdinfo-permissions
fix(launcher): prevent inherited MangoHud fdinfo aborts
2026-10-25 19:28:41 +01:00
lucannez64 9d247575f2 Merge remote-tracking branch 'origin/main' into pr-fix-60 2026-10-25 19:27:59 +01:00
Kalah 51ded1c6a6 Merge pull request #121 from Lowell137/fix/consistent-mac-gpu-report
Report the profile GPU consistently in system_profiler
2026-10-25 19:27:01 +01:00
lucannez64 2cc0c68149 Merge remote-tracking branch 'origin/main' into pr-fix-132 2026-10-25 19:14:54 +01:00
lucannez64 dec3699332 Merge remote-tracking branch 'origin/main' into pr-fix-129 2026-10-25 19:14:54 +01:00
lucannez64 860718cb28 Merge remote-tracking branch 'origin/main' into pr-fix-60 2026-10-25 19:14:54 +01:00
lucannez64 75fd6830b9 Merge remote-tracking branch 'origin/main' into pr-fix-121 2026-10-25 19:14:54 +01:00
Kalah 33c5a66f70 Merge pull request #136 from Lowell137/fix/appkit-unimplemented-methods
Implement AppKit methods the League client calls as unimplemented
2026-10-25 19:14:46 +01:00
lucannez64 c38f5c29e0 fix(launchd): preserve tracked children in nested job managers
Signed-off-by: lucannez64 <[email protected]>
2026-10-25 19:13:45 +01:00
lucannez64 4c6e233928 Merge remote-tracking branch 'origin/main' into pr-fix-136 2026-10-25 19:13:12 +01:00
Kalah 00786aa404 Merge pull request #90 from lucannez64/fix/post-match-cpu
Extend idle select() backoff to LeagueClientUx (refs #82, #84)
2026-10-25 19:12:30 +01:00
lucannez64 65d4354667 Merge remote-tracking branch 'origin/main' into pr-fix-121
# Conflicts:
#	.github/workflows/source-check.yml
#	NOTICE.md
#	README.md
#	docs/COMPLIANCE.md
#	docs/PLATFORM_IDENTITY.md
#	docs/SETUP.md
#	docs/TROUBLESHOOTING.md
#	patches/cocotron.patch
#	patches/metal--deps--indium.patch
#	tools/exec-guest.py
#	tools/run-riot-client.sh
2026-10-25 19:11:54 +01:00
lucannez64 097604533f Merge remote-tracking branch 'origin/main' into pr-fix-129
# Conflicts:
#	NOTICE.md
#	README.md
#	docs/COMPLIANCE.md
#	docs/PLATFORM_IDENTITY.md
#	docs/TROUBLESHOOTING.md
2026-10-25 19:11:02 +01:00
lucannez64 a31753c548 Merge remote-tracking branch 'origin/main' into pr-fix-60
# Conflicts:
#	docs/TROUBLESHOOTING.md
#	tools/riot-launcher-offline-check.py
2026-10-25 19:11:01 +01:00
lucannez64 4476761f02 Merge remote-tracking branch 'origin/main' into pr-fix-132 2026-10-25 19:10:40 +01:00
lucannez64 ae97f5f83b Merge remote-tracking branch 'origin/main' into pr-fix-136 2026-10-25 19:10:17 +01:00
lucannez64 76073e6a45 Merge remote-tracking branch 'origin/main' into pr-fix-90 2026-10-25 19:09:59 +01:00
Kalah 501fae30b0 Merge pull request #130 from 3AvisD/docs/interoperability-wording
docs: clarify interoperability and compliance wording
2026-10-25 19:09:37 +01:00
MintMachineHQ 631a8afe37 recover-stale-client: do not report a reused PID as a leftover
wait_for_exit counted any live PID with the same number as a leftover, so a
reused PID produced a misleading "still present after SIGKILL" message. Compare
the original start time and use the process state only to include the original
process while it is an unreaped zombie.
2026-10-25 11:06:55 -06:00
lowellandClaude Opus 5.5 bddd12dc7d Implement AppKit methods the League client calls as unimplemented
Each of these hit NSUnimplementedMethod and either dropped the value
or returned zero.

- NSWindow: store and return collectionBehavior; setContentMinSize and
  setShowsResizeIndicator keep their value without the warning;
  isOnActiveSpace and keyViewSelectionDirection answer.
- NSApplication activateIgnoringOtherApps: activates through the
  display backend, as NSRunningApplication activateWithOptions: does.
  With NO it does nothing, since the window server cannot tell whether
  another app is active and NO must not take focus from one.
- NSSpellChecker dismissCorrectionIndicatorForView is a no-op, as there
  is no correction indicator to dismiss.

The X11 backend's activateProcessIdentifier: now looks the process up
in the root's _NET_CLIENT_LIST before falling back to the root's
children: under a reparenting window manager those children are frames
without _NET_WM_PID, so activation found no window.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-25 12:28:35 +03:00
MintMachineHQ 9291d6accd fix(launchd): reap orphaned guest zombies and harden stale-client recovery
Children whose parent dies are reparented to the guest launchd, and its job
manager only reaps PIDs it has a job record for, so every leftover mldr/CEF
process from a killed client tree stayed a zombie until shutdown. Reap zombies
that launchd owns but does not track on a 5 second timer; tracked jobs keep
their exit status for job_reap(). proc_listpids() is not implemented in Darling
yet, so the scan enumerates the guest PID namespace through /proc.

recover-stale-client now signals the stale tree deepest-first so a live parent
can still reap its own children, and prepare.py repairs interrupted checkouts
and missing Git LFS objects instead of publishing pointer text as a library.
2026-10-23 23:36:20 -06:00
3AvisD adae1b8bed docs: clarify the source-audit scope
State that scripts/validate.py checks revision format, patch existence and
patch parsing but does not verify applicability to pinned revisions. Point
patch changes at the separate prepare.py --check-only workflow.

Signed-off-by: 3AvisD <[email protected]>
2026-10-23 14:13:18 -06:00
3AvisD 2fcf44eaaf docs: apply review wording corrections
Distinguish the opt-in hide helper (local window management) from the
opt-in close helper (terminates eligible League client UI processes), and
list the tracked project artwork in the distribution scope.

Scope the platform-identity statement to repository-owned code: the
repository does not pass the identifiers as Riot authentication data, but
the values are guest-visible through IOKit and the official client's later
handling is outside the repository's scope. Use US spelling for licence
consistently.

Signed-off-by: 3AvisD <[email protected]>
2026-10-23 14:03:59 -06:00
3AvisD 56285686e8 docs: add the project repository URL
Link the project repository in the interoperability scope so readers can
distinguish it from the upstream Darling repository.

Signed-off-by: 3AvisD <[email protected]>
2026-10-23 14:03:59 -06:00
3AvisD c48272aa8f docs: clarify interoperability and compliance wording
Add docs/INTEROPERABILITY.md, an English scope document that describes
the project's interoperability and responsible-use practices: what it
distributes, how it handles local platform metadata and the MAC/AMFI
probe, how it keeps copyright and licence notices, how it avoids
access/authentication/integrity shortcuts, how it presents trademarks
and handles notices, and the user's responsibility for Riot's terms.

Update README, NOTICE, COMPLIANCE and PLATFORM_IDENTITY to link the
document and to state the opt-in window-helper and synthetic-identity
behaviour accurately. Add CONTRIBUTING with DCO sign-off and a scope
checklist.

Documentation-only change: no launcher, patch, build or test behaviour
changes.

Signed-off-by: 3AvisD <[email protected]>
2026-10-23 14:03:59 -06:00
3AvisD a53dd00ff9 docs: document Vulkan ICD selection for multiple GPUs 2026-10-23 11:24:24 -06:00
Kalah 24276b91c6 Merge pull request #123 from 3AvisD/fix/recover-stale-client
fix(launcher): recover a stale client tree without restarting Darling
2026-10-23 14:19:34 +02:00
Kalah 92484938b8 Merge pull request #123 from 3AvisD/fix/recover-stale-client
fix(launcher): recover a stale client tree without restarting Darling
2026-10-23 14:19:34 +02:00
lucannez64andClaude Opus 5.5 a11a144767 Merge main into fix/recover-stale-client
Resolve conflicts with #122: keep both feature docs and CI steps, and drop
this branch's copy of the close-helper block, which main now starts after
the installed-client check.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 14:18:33 +02:00
lucannez64andClaude Opus 5.5 143f0228d4 Merge main into fix/recover-stale-client
Resolve conflicts with #122: keep both feature docs and CI steps, and drop
this branch's copy of the close-helper block, which main now starts after
the installed-client check.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-23 14:18:33 +02:00
Kalah 4889b99533 Merge pull request #122 from 3AvisD/feat/hide-client-in-game
feat(launcher): select close/hide client handling from League preferences
2026-10-23 14:17:39 +02:00
Kalah 560872b796 Merge pull request #122 from 3AvisD/feat/hide-client-in-game
feat(launcher): select close/hide client handling from League preferences
2026-10-23 14:17:39 +02:00
Kalah 6bf8d63f55 Merge branch 'main' into feat/hide-client-in-game 2026-10-23 14:16:58 +02:00
Kalah 19b7a708c6 Merge branch 'main' into feat/hide-client-in-game 2026-10-23 14:16:58 +02:00
3AvisD 9194beef2f fix(launcher): harden stale-client recovery
- fail closed when X11 omits _NET_CLIENT_LIST or WM_CLASS, and recognize the
  RiotClientServices window class;
- require stale client processes to be at least 60 seconds old;
- recheck process identity before SIGTERM and SIGKILL and recheck the window
  before signalling;
- document the age and window-detection guards.
2026-10-23 06:08:45 -06:00
3AvisD 308fb3f3ce fix(launcher): harden stale-client recovery
- fail closed when X11 omits _NET_CLIENT_LIST or WM_CLASS, and recognize the
  RiotClientServices window class;
- require stale client processes to be at least 60 seconds old;
- recheck process identity before SIGTERM and SIGKILL and recheck the window
  before signalling;
- document the age and window-detection guards.
2026-10-23 06:08:45 -06:00
3AvisD f8bb14624e fix(launcher): address in-game helper review
- restore hidden windows even when the launcher output pipe is closed;
- exit the hide watcher after ten idle minutes and start it only after the
  installed-client check;
- reject missing, malformed or invalid close-during-game preferences instead
  of silently selecting hide;
- document the preference contract and idle behavior.
2026-10-23 06:08:45 -06:00
3AvisD 604073448c fix(launcher): address in-game helper review
- restore hidden windows even when the launcher output pipe is closed;
- exit the hide watcher after ten idle minutes and start it only after the
  installed-client check;
- reject missing, malformed or invalid close-during-game preferences instead
  of silently selecting hide;
- document the preference contract and idle behavior.
2026-10-23 06:08:45 -06:00
Kalah 97fcdce089 Merge pull request #115 from ekisu/perf/indium-cpu-shadow
perf(indium): cache buffer address-table keys in CPU memory
2026-10-23 13:42:26 +02:00
Kalah 9a7c1d9933 Merge pull request #115 from ekisu/perf/indium-cpu-shadow
perf(indium): cache buffer address-table keys in CPU memory
2026-10-23 13:42:26 +02:00
Kalah a0b152f53c Merge branch 'main' into perf/indium-cpu-shadow 2026-10-23 13:35:33 +02:00
Kalah 036b4604ee Merge branch 'main' into perf/indium-cpu-shadow 2026-10-23 13:35:33 +02:00
3AvisD 0a04d4e16c fix(launcher): remove orphaned client-in-game helpers
A launcher can exit while its long-lived close/hide helper remains. The next
run then starts another watcher, so several copies watch the same prefix.

Add an opt-in RCLOL_CLEAN_STALE_HELPERS=1 preflight that removes only helper
processes of this prefix reparented to init/systemd. Helpers of a live
launcher, other prefixes, the game, Riot/League/CEF, darlingserver and the
runtime are preserved. Unreadable or relative process data leaves a process
alone.

Validated across repeated launcher starts: the cleanup removed four, then one,
then one orphaned watcher; a subsequent dry run reported no orphaned helpers.
Zombie reaping after partial recovery is tracked separately in #124.
2026-10-22 15:50:38 -06:00
3AvisD c12ab84559 fix(launcher): remove orphaned client-in-game helpers
A launcher can exit while its long-lived close/hide helper remains. The next
run then starts another watcher, so several copies watch the same prefix.

Add an opt-in RCLOL_CLEAN_STALE_HELPERS=1 preflight that removes only helper
processes of this prefix reparented to init/systemd. Helpers of a live
launcher, other prefixes, the game, Riot/League/CEF, darlingserver and the
runtime are preserved. Unreadable or relative process data leaves a process
alone.

Validated across repeated launcher starts: the cleanup removed four, then one,
then one orphaned watcher; a subsequent dry run reported no orphaned helpers.
Zombie reaping after partial recovery is tracked separately in #124.
2026-10-22 15:50:38 -06:00
3AvisD 732e9c8881 fix(launcher): handle YAML comments and log failures
- strip inline YAML comments from preference values, including quoted values;
- keep a successfully unmapped window tracked when the success log raises
  BrokenPipeError, while still discarding a window whose unmap failed;
- cover both cases with tests.
2026-10-22 15:30:45 -06:00