Skip to content

Resilience improvements and code quality (V1.6.7.3) - #29

Open
mralanbourne wants to merge 1 commit into
dpadGuy:masterfrom
mralanbourne:hardening/multi-mirror-dynamic-detection
Open

Resilience improvements and code quality (V1.6.7.3)#29
mralanbourne wants to merge 1 commit into
dpadGuy:masterfrom
mralanbourne:hardening/multi-mirror-dynamic-detection

Conversation

@mralanbourne

@mralanbourne mralanbourne commented Aug 14, 2026

Copy link
Copy Markdown
Contributor

hey dpad,

made some changes to make things more stable. nothing big touched, just a few fixes and additions.

new stuff:

SalsaMirror.cs - right now everything goes through one domain. if that goes down nothing works. this fetches a mirrors.txt from your server at startup that lists all your mirror urls (one per line). cycles through them if one fails.

important: the bootstrap domain in source is just a placeholder. change it locally before building and dont push your real domain. keep your domains in mirrors.txt on the server or just change the BOOTSTRAP line locally, build, and ship. what ends up on github doesnt have to be what ends up in the exe EVERY TIME lol.

without a mirrors.txt file it just works like before with the single domain.

SteamChunkDetector.cs - the chunk hash changes on steam updates and when it does the hardcoded name breaks. this finds the chunk dynamically instead (largest .js in the steamui folder).

GfnShellDetector.cs - CustomExplorer is hardcoded in a few places. if NVIDIA renames it those break. this finds the shell window by window class instead.

changed stuff:

  • appcache gets deleted BEFORE the chunk swap now, not after. this was causing an "invalid platform" error for me when developing on linux, could just be me though lol. this fixed it.
  • NvidiaManager has a try/catch now so it doesnt crash hard if NVAPI isnt there or gets changed by NVIDIA
  • SalsaLogger got a lock around file writes. noticed that the logger got hit from multiple threads at once (background tasks, crash reporter, etc) and without a lock they can step on each other and corrupt the log.
  • process handles get disposed now so they dont leak in loops
  • EAC loop does continue instead of break so one missing process doesnt kill the whole thing
  • RecoveryMode checks the path before calling Directory.Delete so we dont accidentally nuke C:\

bumped version to 1.6.7.3

tested in GFN sessions, works.

@mralanbourne

Copy link
Copy Markdown
Contributor Author

@dpadGuy could you take a look when you get a chance?

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.

1 participant