Skip to content

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

Description

@generspooler

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

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions