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

未關閉
#166 0 則留言 0 個 reaction 已指派 0 人 在 GitHub 檢視

還沒有人認領這個 Issue。

評估

難度
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 分鐘
30 天內合併 PR
1

環境準備

這個專案沒有提供開發容器、Dockerfile 或貢獻指南,環境需要你自己搭建:先看它的 README,通用步驟見我們的新手貢獻指南。

從這裡開始

  1. 先讀完整個 Issue,再讀專案的貢獻指南。
  2. 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
  3. Fork 儲存庫,在一個分支上完成修改。
  4. 送出 Pull Request,並在描述裡引用這個 Issue 編號。

CommandCodeAI/desktop 的其他 Issue

查看 CommandCodeAI/desktop 的全部 Issue

相似的 Issue

更多 Shell/Bash Issue

把新 issue 寄到你的電子郵件信箱

精選適合新手參與的 GitHub issue 摘要。