Skip to content

Preview 1.83.3 #755

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 49 commits into from
Jun 7, 2025
Merged

Preview 1.83.3 #755

merged 49 commits into from
Jun 7, 2025

Conversation

Cryotechnic
Copy link
Collaborator

@Cryotechnic Cryotechnic commented Jun 6, 2025

What's changed?

  • [Fix] Update .NET to 9.0.5 to address CVE-2025-26646, by @bagusnl
  • [Imp] Update project dependencies, by @bagusnl
    • Microsoft.Windows.SDK.BuildTools (10.0.26100.3916 -> 10.0.26100.4188)
    • Velopack (0.0.1053 -> 0.0.1297)
    • Sentry (5.6.0 -> 5.10.0)
    • Protobuf (3.30.0 -> 3.31.1)
    • WindowsAppSDK (1.8.250410001-experimental1 -> 1.8.250515001-experimental2)
    • Webview (1.0.3240.44 -> 1.0.3296-prerelease)
    • Markdig.Signed (0.41.1 -> 0.41.2)
  • [Fix] Avoid initializing config.ini on initialization, by @neon-nyan
  • [Fix] Make Collapse aware of alternate game executable names, by @neon-nyan
  • [Fix] Remove unused string on delta patch repair mechanism, by @neon-nyan
  • [Fix] Fix wrong indicator if the game has both Sophon and Delta-patch file during update, by @neon-nyan
  • [Fix] Resolve an issue where the app would crash when the user creates a Steam shortcut for the game, by @neon-nyan
  • [Imp] Prevent repair from nuking the install for Genshin Impact, by @bagusnl
  • [Imp] Add image loading retry function, by @bagusnl
  • [Fix] Remove Velopack update error in console window due to the app not being installed (e.g., when ran as a nightly build or in Debug mode), by @bagusnl
  • [Fix]: Ignore 404 error when repairing files. The repair function will now simply skip the file and log the file that returns the 404 in the console window instead of interrupting the process altogether, by @bagusnl
  • [Fix]: Fix Sophon running while fallback ZIP mode is enabled, by @neon-nyan
  • [New]: Support game patching following ZZZ 2.0 update, by @neon-nyan
  • [New]: Adding "Ambient Noise Volume" on ZZZ Game Settings page, by @neon-nyan

neon-nyan and others added 30 commits May 13, 2025 02:26
100% reviewed source file: 'en_US.json'
on 'fr_FR'.
100% reviewed source file: 'en_US.json'
on 'ja_JP'.
https://nvd.nist.gov/vuln/detail/CVE-2025-26646

https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-26646

# Main Goal
Update .NET SDK to 9.0.5 (9.0.300) to fix CVE (Score of 8.0/10.0)

## PR Status :
- Overall Status : Done
- Commits : Done
- Synced to base (Collapse:main) : Yes
- Build status : OK
- Crashing : No
- Bug found caused by PR : 0

### Templates

<details>
  <summary>Changelog Prefixes</summary>
  
  ```
    **[New]**
    **[Imp]**
    **[Fix]**
    **[Loc]**
    **[Doc]**
  ```

</details>
100% reviewed source file: 'en_US.json'
on 'zh_CN'.
Now the default values assignment only happens if correction is needed
Contains velopack code update, please review them carefully
Usually happen on debug/self-built builds
As far as I know, we dont use ADS and it might break certain file ops, so we strip it
- WASDK
1.8.250410001-experimental1 -> 1.8.250515001-experimental2

- Webview
1.0.3240.44 -> 1.0.3296-prerelease
This will still give that shadow missing asset, but a whole lot better than just stopping the repair altogether
neon-nyan and others added 10 commits June 6, 2025 12:41
- Velopack (0.0.1251 -> 0.0.1297)
- Markdig.Signed (0.41.1 -> 0.41.2)
- Sentry (5.9.0 -> 5.10.0)
that's why you don't code when your stomach is empty, kids...
Uh, idk what to put on the description here. But glad it work now (yay! [actually tired])
# Main Goal
## Update outdated dependencies
- Microsoft.Windows.SDK.BuildTools (10.0.26100.3916 -> 10.0.26100.4188)
- Velopack (0.0.1053 -> 0.0.1297)
- Contains untested changes regarding Velopack API changes (cannot find
the documentation site)
  - Please test/review carefully
- Does tested pseudo-updating from generated build to preview 1.82.2 but
yknow)
- Sentry (5.6.0 -> 5.10.0)
- Protobuf (3.30.0 -> 3.31.1)
- WindowsAppSDK (1.8.250410001-experimental1 ->
1.8.250515001-experimental2)
- Webview (1.0.3240.44 -> 1.0.3296-prerelease)
- Markdig.Signed (0.41.1 -> 0.41.2)

## Version bump to 1.83.3

## Small bug fixes
- [Fix EnumFailedVersion in
SpawnRegionNotification](d381562)
d381562
  - Fix #748
- [[GI] [Repair] Prevent repair from nuking the
install](f616439)
- GI repair falsely put directory as asset and tried to do
FileInfo.Delete function that causes UnauthorizedAccessException, but
scary anyway, so measure against it is in place. Repair wont delete any
directory from now.
- [Add image loading retry
method](8d4a39c)
8d4a39c
  - Try fix #723

## PR Status :
- Overall Status : Done
- Commits : Done
- Synced to base (Collapse:main) : Yes
- Build status : OK
- Crashing : Yes
- Bug found caused by PR : 0
- ~~LibZSTD is not linked inside NativeAOT build and still require a
loose DLLs~~
    - Fixed. Cause: DebugCIAOT was missing `AOT` build constant

### Templates

<details>
  <summary>Changelog Prefixes</summary>
  
  ```
    **[New]**
    **[Imp]**
    **[Fix]**
    **[Loc]**
    **[Doc]**
  ```

</details>
@Cryotechnic Cryotechnic self-assigned this Jun 6, 2025
@Cryotechnic Cryotechnic requested a review from Copilot June 6, 2025 18:07
Copy link
Contributor

@Copilot Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull Request Overview

This PR updates core dependencies and .NET version, enhances Sophon download logic, and adds robust handling for alternate data streams and retry mechanisms.

  • Fixes and improvements in Sophon asset management, including conditional additional package downloads
  • Adds StripAlternateDataStream support across file operations
  • Introduces retry logic for image downloads and refactors Velopack logger/locator extensions

Reviewed Changes

Copilot reviewed 73 out of 73 changed files in this pull request and generated no comments.

Show a summary per file
File Description
InstallManagerBase.Sophon.cs Expanded IsUseSophon logic and moved progress initialization
InstallManagerBase.PkgVersion.cs Included "ldiff" path in game file categorization
LauncherUpdateHelper.cs Streamlined exception filter and updated Velopack adapter usage
StreamExtension.cs Added ADS-stripping methods and integrated them in file utilities
LauncherApiBase.cs Early return when Sophon and ZIP versions match
ImageLoaderHelper.cs Added retry-on-failure with exponential backoff for resource fetch
VersionCheck.cs Enhanced install detection with alternate executable name
GameVersionBase.IniConfig.cs Simplified INI initialization signatures
GameVersionBase.GameState.cs Refactored IsGameInstalled into inner method
Sleepy.cs Applied ADS stripping to file writes
VelopackLoggerExtension.cs & VelopackLocatorExtension.cs Introduced extension methods for seamless Velopack integration
UIElementExtensions.cs Added optional opacity parameter to text runs
DictionaryExtension.cs New helper for case-insensitive dictionary lookups
StarRail/Update.cs Integrated ADS stripping into cache updates
CollapseLauncher.slnx Reworked project path separators and removed GUIDs in solution file
.github/workflows/*.yml Bumped .NET installer version from 9.0.2xx to 9.0.3xx
Comments suppressed due to low confidence (4)

CollapseLauncher/Classes/Helper/Image/ImageLoaderHelper.cs:625

  • [nitpick] Private static fields typically use _camelCase (e.g., _urlRetryCount) to distinguish them from public members and improve readability.
private static ConcurrentDictionary<string, int> UrlRetryCount = new();

CollapseLauncher/Classes/Helper/StreamUtility/StreamExtension.cs:217

  • [nitpick] Using a large, complex regex in an attribute can hinder readability. Consider extracting the pattern into a well-named constant and referencing it here.
[GeneratedRegex("^(?<path>[a-zA-Z]:\\(?:[^\\/:*?\"<>|\r\n]+\\)*[^\\/:*?\"<>|\r\n]+)(:[^\\/:*?\"<>|\r\n]+)$", RegexOptions.Compiled, 10000)]

CollapseLauncher.slnx:8

  • The solution file no longer includes the project GUID and uses forward slashes, which may break project loading in Visual Studio. Restore the original GUID attributes and backslashes or ensure compatibility with the editor.
<Project Path="CollapseLauncher/CollapseLauncher.csproj">

CollapseLauncher/Classes/Extension/VelopackLoggerExtension.cs:7

  • Class declaration syntax is invalid; constructors cannot be declared in the class signature. Define a proper constructor inside the class body or switch to record syntax if using positional parameters.
public class VelopackLoggerAdaptor(ILogger logger) : IVelopackLogger

Copy link

github-actions bot commented Jun 6, 2025

Qodana for .NET

35 new problems were found

Inspection name Severity Problems
Auto-property accessor is never used (non-private accessibility) 🔶 Warning 12
Possibly mistaken use of a 'CancellationToken' 🔶 Warning 7
Variable can be declared as non-nullable 🔶 Warning 6
Conditional access qualifier expression is known to be null or not null 🔶 Warning 2
Unused local variable 🔶 Warning 2
Possible 'null' assignment to non-nullable entity 🔶 Warning 1
Dereference of a possibly null reference. 🔶 Warning 1
Expression is always 'true' or 'false' according to nullable reference types' annotations 🔶 Warning 1
Non-accessed positional property (non-private accessibility) 🔶 Warning 1
Redundant nullable warning suppression expression 🔶 Warning 1
Redundant using directive 🔶 Warning 1

☁️ View the detailed Qodana report

Detected 71 dependencies

Third-party software list

This page lists the third-party software dependencies used in CollapseLauncher

Dependency Version Licenses
CommunityToolkit.Common 8.4.0 MIT
CommunityToolkit.Mvvm 8.4.0 MIT
CommunityToolkit.WinUI.Animations 8.2.250402 MIT
CommunityToolkit.WinUI.Behaviors 8.2.250402 MIT
CommunityToolkit.WinUI.Controls.Primitives 8.2.250402 MIT
CommunityToolkit.WinUI.Controls.Sizers 8.2.250402 MIT
CommunityToolkit.WinUI.Converters 8.2.250402 MIT
CommunityToolkit.WinUI.Extensions 8.2.250402 MIT
CommunityToolkit.WinUI.Helpers 8.2.250402 MIT
CommunityToolkit.WinUI.Media 8.2.250402 MIT
CommunityToolkit.WinUI.Triggers 8.2.250402 MIT
Costura.Fody 6.0.0 MIT
DependencyPropertyGenerator 1.5.0 MIT
DotNet.ReproducibleBuilds 1.2.25 MIT
EventGenerator.Generator 0.13.1 MIT
Fody 6.9.2 MIT
GitInfo 3.5.0 MIT
Google.Protobuf.Tools 3.31.1 PROTOBUF
Google.Protobuf 3.31.1 BSD-3-Clause
Hi3Helper.ZstdNet 1.6.4 BSD-3-Clause
HtmlAgilityPack 1.12.1 MIT
Markdig.Signed 0.41.2 BSD-2-Clause
Microsoft.CSharp 4.7.0 MIT
Microsoft.Extensions.DependencyInjection.Abstractions 9.0.5 MIT
Microsoft.Extensions.DependencyInjection 9.0.5 MIT
Microsoft.Extensions.Logging.Abstractions 9.0.5 MIT
Microsoft.Extensions.Logging 9.0.5 MIT
Microsoft.Extensions.Options 9.0.5 MIT
Microsoft.Extensions.Primitives 9.0.5 MIT
Microsoft.NET.ILLink.Tasks 9.0.5 MIT
Microsoft.NETCore.Targets 6.0.0-preview.4.21253.7 MIT
Microsoft.Web.WebView2 1.0.3179.45 BSD-3-Clause
BSD-MYLEX
Microsoft.Web.WebView2 1.0.3344-prerelease BSD-3-Clause
BSD-MYLEX
Microsoft.Win32.SystemEvents 9.0.5 MIT
Microsoft.Windows.CsWin32 0.3.183 Apache-2.0
Microsoft.Windows.CsWinRT 2.2.0 MIT
Microsoft.Windows.SDK.BuildTools.MSIX 1.7.20250508.1 MIT
Microsoft.Windows.SDK.BuildTools 10.0.22621.3233 PROPRIETARY-LICENSE
Microsoft.Windows.SDK.BuildTools 10.0.26100.4188 PROPRIETARY-LICENSE
Microsoft.Windows.SDK.Win32Docs 0.1.42-alpha PROPRIETARY-LICENSE
Microsoft.Windows.SDK.Win32Metadata 61.0.15-preview MIT
Microsoft.Windows.WDK.Win32Metadata 0.12.8-experimental MIT
Microsoft.WindowsAppSDK.AI 1.8.135-experimental MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.Base 1.8.250509001-experimental MIT
MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.DWrite 1.8.25050910-experimental.2 MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.Foundation 1.8.250507001-experimental MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.InteractiveExperiences 1.8.250509002-experimental MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.Packages 1.8.250515001-experimental2 MIT
MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.Widgets 1.8.250505003-experimental MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK.WinUI 1.8.250507002-experimental MIT
MS-DXSDK-D3DX-9.29.952.3
Microsoft.WindowsAppSDK 1.8.250515001-experimental2 MIT
MS-DXSDK-D3DX-9.29.952.3
Microsoft.Xaml.Behaviors.WinUI.Managed 3.0.0 MIT
NuGet.Versioning 6.14.0 Apache-2.0
PhotoSauce.MagicScaler 0.15.0 MIT
PhotoSauce.NativeCodecs.Libwebp 1.4.0-preview1 MIT
Roman-Numerals 2.0.1 MIT
Sentry 5.10.0 MIT
SharpCompress 0.40.0 MIT
SharpHDiffPatch.Core 2.3.3 MIT
System.Buffers 4.6.0 MIT
System.Drawing.Common 9.0.5 MIT
System.IO.Hashing 9.0.5 MIT
System.Security.AccessControl 6.0.1 MIT
System.Security.Cryptography.ProtectedData 9.0.5 MIT
System.Text.Encoding.CodePages 9.0.5 MIT
System.Text.Json 9.0.5 MIT
System.Threading.Tasks.Extensions 4.5.4 MIT
TaskScheduler 2.12.1 MIT
ThisAssembly.Constants 2.0.6 MIT
Velopack 0.0.1297 MIT
ZstdSharp.Port 0.8.5 MIT
Contact Qodana team

Contact us at qodana-support@jetbrains.com

Copy link

sonarqubecloud bot commented Jun 7, 2025

Quality Gate Failed Quality Gate failed

Failed conditions
4.5% Duplication on New Code (required ≤ 3%)

See analysis details on SonarQube Cloud

100% reviewed source file: 'en_US.json'
on 'es_419'.
@Cryotechnic Cryotechnic merged commit 8bc50e3 into preview Jun 7, 2025
3 of 4 checks passed
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.

3 participants