Open Settings Folder crashes without the process environment variable and uses the wrong portable path
メンテナーはふだん 3 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- visualbasic
- 領域
- desktop
調査の方向性
SettingsPage.xaml.vbを読み、SettingsServiceがSettingsService.vbでDataFolderをどのように選択するかを、Application.xaml.vbのポータブルモードも含めて追ってください。まず、ボタンハンドラーのパスとサービスのアクティブなデータフォルダーを比較し、次にフォルダーを開けない場合の処理を確認してください。完了条件は、報告された両方のケースでボタンがアクティブな設定ディレクトリを開き、開けない場合は処理されたエラーを表示することです。
索引モデルが issue の本文から書いたものです。
説明
Tested on official v4.0.0-beta.12, Windows 11 25H2 (26200.9711), ASUS Vivobook S 15 / Snapdragon X Elite X1E-78-100 / 16 GB RAM, .NET 10.0.13. Both the native ARM64 application and the official x64 application were tested directly on this ARM laptop. Additional component checks used unchanged libraries extracted from the x64 release, with the release's embedded manifest. No Intel/AMD PC was tested. Only disposable files were used. Most testing was automated with Codex, with human assistance identified where applicable. Related build request: #556.
The same button has two related problems.
A. Crash when the process has no IridiumIO environment variable
- Launch the application from a parent process that lacks IridiumIO.
- Open Settings and click Open Settings Folder.
The app exits with:
System.ArgumentNullException: Value cannot be null. (Parameter 'path1')
at System.IO.Path.Combine(String path1, String path2)
at CompactGUI.SettingsPage.Button_Click(Object sender, RoutedEventArgs e)
This happened at 01:48:53 and 01:50:27 BST on 21 October 2026. The second reproduction deliberately omitted the variable only from the launched child's environment; no global variable was removed. Application logs and Windows .NET Runtime 1026/Application Error 1000 records corroborate both crashes.
A fresh child given the existing user-scoped value did not crash.
B. Wrong folder in portable mode
With IridiumIO present and the executable in a directory named CompactGUI, active settings are in the adjacent .CompactGUIData directory. The button instead constructs %LOCALAPPDATA%\IridiumIO\CompactGUI. That path did not exist in this setup; Explorer opened Documents instead of the active data folder.
Expected in both cases: open the actual settings directory, with a handled error if opening fails.
Source explanation
- SettingsPage.xaml.vb passes the process environment value directly to Path.Combine.
- SettingsViewModel.vb sets the user-scoped value, which does not update the already-running process environment.
- Application portable-mode selection and SettingsService data-folder selection select the real data location.
Opening ISettingsService.DataFolder.FullName with error handling should address both failures.
x64 component comparison (21 October 2026)
Invoking the actual x64 release's SettingsPage.Button_Click handler with IridiumIO missing only from the test process reproduced the same exception:
System.ArgumentNullException: Value cannot be null. (Parameter 'path1')
at System.IO.Path.Combine(String path1, String path2)
at CompactGUI.SettingsPage.Button_Click(Object sender, RoutedEventArgs e)
The harness caught that exception. A subsequent direct GUI test independently confirmed the x64 app crash:
Direct x64 GUI follow-up (21 October 2026, BST)
A fresh official x64 application was launched with IridiumIO omitted only from that child's environment. Clicking Settings -> Open Settings Folder terminated the process at 18:22:52. Windows recorded:
.NET Runtime, event 1026: process terminated due to an unhandled exception
System.ArgumentNullException: Value cannot be null. (Parameter 'path1')
at System.IO.Path.Combine(String path1, String path2)
at CompactGUI.SettingsPage.Button_Click(Object sender, RoutedEventArgs e)
Application Error, event 1000: CompactGUI.exe; exception 0xe0434352
The event's executable path matched the isolated official x64 copy, and the process was confirmed exited. This was an actual button click and unhandled application crash, separate from the caught component test.
With the existing environment value present, the portable x64 button opened a new Explorer window titled Documents at about 18:11:38. Its active data directory was the adjacent .CompactGUIData folder, not Documents. Explorer's full address could not be independently read because access to that window was unavailable; the window title, active data directory and handler's constructed path were recorded. The portable misdirection was also directly observed in the earlier ARM64 test.
The existing user-scoped environment variable was left unchanged.
- 主要言語
- Visual Basic .NET
- スター
- 8.9k
- フォーク
- 343
- 平均マージ
- 3日 18時間
- マージ済み PR(30日)
- 7
環境構築
このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
IridiumIO/CompactGUI のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
IridiumIO/CompactGUI#699 ·
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
IridiumIO/CompactGUI#697 ·
メンテナーはふだん 3 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
IridiumIO/CompactGUI#680 ·
メンテナーはふだん 3 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 48/100
IridiumIO/CompactGUI#700 ·
メンテナーはふだん 3 日以内に返信
-
難易度 3/5 1〜2日 初心者へのやさしさ 58/100
IridiumIO/CompactGUI#698 ·
メンテナーはふだん 3 日以内に返信
IridiumIO/CompactGUI の issue をすべて見る
似ている issue
-
2026 Error Report
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
triplea-game/triplea#15096 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
WINBIGFOX/TimeScribe#143 ·
-
bug
難易度 2/5 1〜3時間 初心者へのやさしさ 64/100
メンテナーはふだん 1 日以内に返信
-
[Bug]: Desktop turn-end chime fires for another session while the chat on screen is still workingオープンarea/streaming comp/desktop P2 type/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
NousResearch/hermes-agent#143320 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 76/100
メンテナーはふだん 1 日以内に返信