[Bug]: A improvement in 0.1.61 causes fails to start the GUI

オープン
#166 コメント 0 件 リアクション 0 件 担当者 0 名 GitHub で見る

まだ誰も着手していません。

評価

難易度
3/5
見積もり時間
1〜2日
初心者へのやさしさ
56/100
issue の種類
バグ
明瞭さ
おおむね明確
活発さ
活発
技術スタック
electron, javascript
領域
backend, desktop

調査の方向性

The report points to the preload sequence and process.getSystemMemoryInfo() in the desktop app. Read the code that sets residentChatLimit and check how it handles sandboxed Linux startup when retrieving system memory throws. Reproduce with the 0.1.61 AppImage in a sandboxed environment; done means the preload completes and the GUI loads without the renderer errors.

索引モデルが issue の本文から書いたものです。

説明

bug
GUI version

0.1.61

Operating system

Linux (Debian/Ubuntu)

Reproduction steps
  1. Launch CommandCode-0.1.61-x86_64.AppImage on Linux (in our case upgraded from 0.1.60 via the in-app updater).
  2. Wait for startup to finish. The main-process log reaches window-created / ready-to-show normally.
  3. Observe the window: it shows the error page "An unexpected error occurred. Reloading usually fixes this..." (in some runs under Wayland the window never appears at all, while the process keeps running).
  4. Click Reload → the error page comes back every time; the app never becomes usable.
Expected behavior

The app loads its UI normally and the preload script installs without errors.

Actual behavior

Timeline captured with --enable-logging, in order of occurrence:

  1. First exception — start of the failure chain: the preload script fails to load:
Unable to load preload script: <AppDir>/resources/app/out/preload/index.js
Error: Unable to retrieve system memory information
  1. Because the preload never finishes, the IPC bridge is never installed; the renderer then crashes with:
TypeError: Cannot read properties of undefined (reading 'authStatus')
TypeError: Cannot read properties of undefined (reading 'onMenuAction')
  1. The renderer shows the generic error page. Every reload fails identically, so press the "reload" button never recovers.
Screenshots, recordings, or sanitized logs

An improvement introduced in 0.1.61—"The app stays responsive on 8 GB machines and while long replies stream"—involves setting a memory threshold in preload sequence:

const threshold = 8 * 2**30;  // 8 GiB, in bytes

function chooseLimit(totalBytes) {
  return totalBytes <= threshold ? 3 : 8;
}

residentChatLimit: chooseLimit(
  process.getSystemMemoryInfo().total * 1024 // Convert KiB to bytes
)

(Comments added by the issue author)

This approach first checks the machine’s available memory and then selects a memory limit based on that amount. However, in a sandboxed environment, calling getSystemMemoryInfo() will throw an error, resulting in the message "Error: Unable to retrieve system memory information" during debugging, and the GUI will redirect to a generic error page. Starting the application with the --no-sandbox parameter may resolves this issue.

Safety check
  • I removed credentials and private project information from this report.
主要言語
Shell
スター
110
フォーク
9
平均マージ
12分
マージ済み PR(30日)
1

環境構築

このプロジェクトには開発コンテナ、Dockerfile、コントリビューションガイドがありません。まず README を読み、一般的な手順ははじめてのコントリビューションガイドを参照してください。

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

CommandCodeAI/desktop のほかの issue

CommandCodeAI/desktop の issue をすべて見る

似ている issue

Shell/Bash の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。