OpenBMB / OpenBMB/PilotDeck

【BUG】BUG After downloading latest version, web UI shows “存在本地修改,或当前版本由修改后的源码构建,请通过 Git 手动更新”

Open Beginner friendly
#566 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Dominant language
TypeScript
Stars
4k
Forks
453
Avg merge
12h 30m
Merged PRs (30d)
46

Description

English Version
Environment:

  • PilotDeck version: v2026.09.09 (commit: d9ed2cd)
  • Installation method: install.sh one-line install
  • OS: macOS (darwin-arm64)
  • Node.js version: v26.7.0
  • Git status: Untracked bin/pilotdeck file in working directory
    Bug Description:
    After installing the latest version via the one-line install script, when clicking "Check for Updates" in the Web UI Settings → About page, it displays an error message:
    Local changes exist, or this build includes modified source. Update manually with Git.
    In reality, no source code has been modified. The issue is caused by the bin/pilotdeck file generated by the install script, which marks the Git working directory as "dirty".
    Root Cause Analysis:
    The inspectWorkspace() function in ui/server/services/webUpdateService.js:75 executes:
    if (await git(['status', '--porcelain', '--untracked-files=all'])) throw updateError('localChanges');
    This check treats any untracked files (such as bin/pilotdeck generated by the install script) as "local changes", preventing Web UI auto-updates.
    Steps to Reproduce:
  1. Install via curl -fsSL https://raw.githubusercontent.com/OpenBMB/PilotDeck/main/install.sh | bash
  2. Start the PilotDeck server
  3. Open the Web UI, navigate to Settings → About
  4. Click "Check for Updates" or "Update" button
    Expected Behavior:
    For a fresh installation of the latest version, it should display "Up to date" or allow Web UI updates.
    Actual Behavior:
    Displays error message "Local changes exist" and cannot update via Web UI, only manual Git updates are possible.
    Suggested Fix:
  5. Exclude known install script generated files (like the bin/ directory) in inspectWorkspace()
  6. Or add bin/ to .gitignore in the install script

中文版
环境信息:

  • PilotDeck 版本:v2026.09.09 (commit: d9ed2cd)
  • 安装方式:install.sh 一键安装
  • 操作系统:macOS (darwin-arm64)
  • Node.js 版本:v26.7.0
  • Git 状态:工作目录存在 bin/pilotdeck 未跟踪文件
    Bug 描述:
    通过一键安装脚本安装最新版本后,在 Web UI 的「设置 → 关于」页面点击「检查更新」时,显示错误信息:
    存在本地修改,或当前版本由修改后的源码构建,请通过 Git 手动更新。
    实际上并没有修改过源代码,只是安装脚本生成的 bin/pilotdeck 文件导致 Git 工作目录被标记为"脏"状态。
    根因分析:
    ui/server/services/webUpdateService.js:75 中的 inspectWorkspace() 函数会执行:
    if (await git(['status', '--porcelain', '--untracked-files=all'])) throw updateError('localChanges');
    该检查会将任何未跟踪文件(如安装脚本生成的 bin/pilotdeck)也视为"本地修改",导致无法通过 Web UI 进行自动更新。
    复现步骤:
  1. 通过 curl -fsSL https://raw.githubusercontent.com/OpenBMB/PilotDeck/main/install.sh | bash 安装
  2. 启动 PilotDeck 服务
  3. 打开 Web UI,进入「设置 → 关于」
  4. 点击「检查更新」或「更新」按钮
    预期行为:
    对于全新安装的最新版本,应显示"已是最新版本"或允许通过 Web UI 更新。
    实际行为:
    显示错误信息"存在本地修改",无法通过 Web UI 更新,只能通过 Git 手动更新。
    建议修复:
  5. 在 inspectWorkspace() 中排除已知的安装脚本生成文件(如 bin/ 目录)
  6. 或者在安装脚本中将 bin/ 目录添加到 .gitignore

Contributor guide

No contributing guide indexed for this repository

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Start with inspectWorkspace() at ui/server/services/webUpdateService.js:75 and review how install.sh creates bin/pilotdeck. Reproduce the dirty-worktree check after a one-line install, then adjust the handling of that generated file or directory so a clean installation can update through the Web UI; verify that the About-page update check reports the expected state.

Written by the indexing model from the issue text.

Assessment

Tech stack
git, node.js, shell, typescript
Domain
backend, devops
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Mostly clear
Newbie friendliness
75/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.