Skip to content

Preview 1.84.2#875

Merged
neon-nyan merged 44 commits intopreviewfrom
main
May 5, 2026
Merged

Preview 1.84.2#875
neon-nyan merged 44 commits intopreviewfrom
main

Conversation

@neon-nyan
Copy link
Copy Markdown
Member

UpdateIsAvailable-Campaign-Columbina

Preview 1.84.2 (Codename: Columbina)

What's changed?

Full Changelog: CL-v1.84.1-pre...CL-v1.84.2-pre

Code Signing Policy

Free code signing provided by SignPath.io, certificate by SignPath Foundation

  • This program will not transfer any information to other networked systems.
  • Read our full Privacy Policy
  • Also read our Third Party Notices for license used by third party libraries that we use.

neon-nyan and others added 30 commits April 12, 2026 02:29
100% reviewed source file: 'en_US.json'
on 'ja_JP'.
This to fix an issue where PublishAot property is getting ignored and thus causing compilation error on AOT build
We have 4 options here:
- Automatic
- Automatic with System Decoder
- Force System Decoder
- Force FFmpeg Software Decoder
neon-nyan and others added 13 commits April 26, 2026 20:40
As per this release, we are going to set target build to x86-64-v4 or native. This means, the ILC could possibly support latest intrinsics like AVX2 and AVX512, allowing some code to run better due to wide vectorization.

Some static libraries which utilizes BMI and AVX intrinsics (like ZStandard library) might not run properly on an old machine without AVX or BMI intrinsics support.
+ Merge Waifu2X PInvoke to a single PInvoke Resolver
+ Add small util to check available codecs on FFmpeg lib
100% reviewed source file: 'en_US.json'
on 'zh_CN'.
We now check standard language codes in addition to to `mini-xx-xx` formats introduced recently by HoYoVerse in 2.8.0 preload.
Will now display "Downloading" or "Verifying" depending on what's being done.
100% reviewed source file: 'en_US.json'
on 'ja_JP'.
Comment on lines +632 to +634
public void SwapAsbPersistentUrl() =>
(AsbBlock, AsbBlockPersistent, Video, VideoPersistent, Audio, AudioPersistent) =
(AsbBlockPersistent, AsbBlock, VideoPersistent, Video, AudioPersistent, Audio);

This comment was marked as outdated.

@neon-nyan neon-nyan merged commit 7bdcefe into preview May 5, 2026
5 of 8 checks passed
continue;
}
restArgs[i < indexOfArg ? i : i - 1] = currentArg;
}
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Bug: The application crashes with an IndexOutOfRangeException when launched with any command-line arguments, due to an incorrect index calculation when parsing arguments.
Severity: CRITICAL

Suggested Fix

The logic for populating the restArgs array is flawed. The index calculation i < indexOfArg ? i : i - 1 results in -1 when i is 0 and indexOfArg is -1. The loop and array population logic should be rewritten to correctly handle cases where the restartedFromPid argument is not present, ensuring no negative indices are accessed.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.

Location: CollapseLauncher/Program.cs#L715

Potential issue: When the application is launched with command-line arguments like
`tray` or `open`, the argument parsing logic incorrectly calculates an array index.
Specifically, on the first iteration of the argument-parsing loop, the code attempts to
access `restArgs[-1]`, which immediately throws an `IndexOutOfRangeException` and
crashes the application. This bug affects all launch modes that use command-line
arguments, except for the specific case where the `restartedFromPid` argument is
present.

Arguments = $"update --input \"{m_arguments.Updater.AppPath}\" --channel {m_arguments.Updater.UpdateChannel}",
UseShellExecute = true,
Verb = "runas"
});
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Bug: The RunElevateUpdate method incorrectly calls .Start() on a Process object that has already been started by the static Process.Start() method, causing an InvalidOperationException.
Severity: HIGH

Suggested Fix

Remove the redundant elevatedProc?.Start(); call. The static Process.Start() method already starts the process, so the subsequent call is unnecessary and incorrect.

Prompt for AI Agent
Review the code at the location below. A potential bug has been identified by an AI
agent. Verify if this is a real issue. If it is, propose a fix; if not, explain why it's
not valid.

Location: CollapseLauncher/Program.cs#L656

Potential issue: In the `RunElevateUpdate` method, the static `Process.Start()` is
called, which immediately creates and starts the elevated updater process. The next line
of code then attempts to call `.Start()` again on the returned `Process` object. If the
initial `Process.Start()` call successfully returns a non-null `Process` object
(representing the already-running process), the second `.Start()` call will throw an
`InvalidOperationException`, causing the elevated update feature to fail. This is a
regression from the previous implementation which correctly instantiated a `Process`
object before starting it.

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