【BUG】BUG After downloading latest version, web UI shows “存在本地修改,或当前版本由修改后的源码构建,请通过 Git 手动更新”
Open
Beginner friendly
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:
- Install via curl -fsSL https://raw.githubusercontent.com/OpenBMB/PilotDeck/main/install.sh | bash
- Start the PilotDeck server
- Open the Web UI, navigate to Settings → About
- 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: - Exclude known install script generated files (like the bin/ directory) in inspectWorkspace()
- 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 进行自动更新。
复现步骤:
- 通过 curl -fsSL https://raw.githubusercontent.com/OpenBMB/PilotDeck/main/install.sh | bash 安装
- 启动 PilotDeck 服务
- 打开 Web UI,进入「设置 → 关于」
- 点击「检查更新」或「更新」按钮
预期行为:
对于全新安装的最新版本,应显示"已是最新版本"或允许通过 Web UI 更新。
实际行为:
显示错误信息"存在本地修改",无法通过 Web UI 更新,只能通过 Git 手动更新。
建议修复: - 在 inspectWorkspace() 中排除已知的安装脚本生成文件(如 bin/ 目录)
- 或者在安装脚本中将 bin/ 目录添加到 .gitignore
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- 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