Repository navigation
Conversation
elrrrrrrr
marked this pull request as ready for review
November 15, 2026 14:29
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What prompted this
With game apps on a Synology SMB share (including apps reached through local symlinks), NX Library 0.1.4.3 started but the Collection window did not appear. A sample of the main thread showed
SwitchBoxArtCover.composed → GameIconProvider.icon(for:) → NSWorkspace.icon(forFile:) → IconServiceswaiting for a synchronous XPC reply. A separate scanner thread was waiting for file attributes. A newly mounted SMB session restored direct reads of the affected bundle, while another sample still showed the synchronous icon lookup in the UI.Change
Collection, Spotlight, Details, the build review and the theme preview read in-memory icons and render a placeholder on a miss. Up to two background operations read embedded or extracted icons. A separate local queue reads and writes atomic thumbnail records (up to 512 px) in the user's Caches directory. Warm hits do not need a bundle lookup and do not queue behind blocked SMB reads. Records track the stored app URL, modification date, workspace and title ID. The existing icon-change hook invalidates a record; late results for an earlier request are discarded.
This only changes icon loading. Directory scanning and game launching still need the configured share. Apps with no readable embedded or extracted icon use a controller symbol as their fallback. No mount paths or credentials are configured by the patch.
Validation
Ready for maintainer review. The interactive NAS checks above remain open.