docs(local-tool): progress.md 記錄 M7 Windows 一鍵 build + splash regression
- 新增 M7-A:Windows 一鍵 build 工具鏈踩坑紀錄(11 項修好) - 新增 M7-B:splash regression P0 修復(visiona-local/frontend 殘留 wizard → 改為 splash+redirect) - 補「M1 驗收流程漏看 Wails 視窗內容」到未解決問題,作為後續 M 任務驗收 checklist - 補 ffmpeg GPL release blocker 到未解決問題清單 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
parent
570e040a67
commit
83981e5b1b
@ -1,9 +1,9 @@
|
||||
# 專案進度 — visionA-local
|
||||
|
||||
## 目的:全新專案(從 edge-ai-platform 衍生的 local 版本)
|
||||
## 當前階段:第二階段 — M2-M6 全部完成 ✅
|
||||
## 當前狀態:使用者驗收中
|
||||
## 最後更新:2026-04-11
|
||||
## 當前階段:第二階段 — M7 Windows 實機 build + splash regression 修復
|
||||
## 當前狀態:Windows 端待驗證重 build 後 UI
|
||||
## 最後更新:2026-04-12
|
||||
|
||||
## 🎉 M1 達成總結
|
||||
- `dist/visiona-local.dmg` (70MB) 可雙擊安裝
|
||||
@ -71,6 +71,55 @@
|
||||
| L-3 | Wails /ipc/raise endpoint | ✅ 隨機 port + wails-ipc-port 檔案 |
|
||||
| L-4 | stale process 清理 | ✅ macOS/Linux lsof+ps;Windows 留 TODO |
|
||||
|
||||
## M7 — Windows 實機 build + splash regression 修復(2026-04-12)
|
||||
|
||||
### M7-A:Windows 一鍵 build 工具鏈(使用者在 Windows 機器上實機跑 bootstrap)
|
||||
|
||||
新增 `local-tool/scripts/bootstrap-linux.sh` + `bootstrap-windows.ps1`,目標是使用者 clone repo 後一行指令完成依賴安裝 + vendor 下載 + payload 打包 + wails build + installer 產出。
|
||||
|
||||
| # | 任務 | 狀態 |
|
||||
|---|------|------|
|
||||
| M7-A1 | 統一專案目錄名為 `local-tool`(連字號),清掉所有 `local_tool` 殘留 | ✅ |
|
||||
| M7-A2 | bootstrap-linux.sh(apt + go 1.22.5 + node 20 + pnpm + wails) | ✅ 未在 Ubuntu 實機驗證 |
|
||||
| M7-A3 | bootstrap-windows.ps1(winget 安裝 git/go/node/python/msys2/inno setup + build) | ✅ Windows 實機驗證通過 |
|
||||
|
||||
**Windows build 踩坑紀錄**(每個都修好並 push):
|
||||
|
||||
1. **PowerShell 5.1 不支援 `&&`** → 改用陣列 + `-join ' && '`
|
||||
2. **中文亂碼** → ps1 加 UTF-8 BOM
|
||||
3. **`pip3: command not found`** → Makefile 偵測 pip/pip3/`python -m pip` + bootstrap `MSYS2_PATH_TYPE=inherit` 讓 bash 繼承 Windows PATH
|
||||
4. **`unzip: command not found`** → Makefile 改用 Python zipfile 解壓,移除 unzip 依賴
|
||||
5. **`server.exe` 沒 build** → 新增 `build-server-windows` cross-build target
|
||||
6. **Microsoft Store `python3` stub** → Makefile 偵測時排除 `*WindowsApps*` 路徑,bootstrap 主動找真實 Python 並以 `VISIONA_PYTHON` 環境變數傳入
|
||||
7. **`/tmp/ffmpeg-win.zip` 路徑問題** → Windows 版 python.exe 不懂 MSYS2 的 `/tmp`,改用相對路徑 `vendor/ffmpeg/windows/ffmpeg-win.zip`
|
||||
8. **Inno Setup `ISCC.exe` 找不到** → winget 裝到 user-scope `%LOCALAPPDATA%\Programs\Inno Setup 6\`,非傳統 `Program Files (x86)`。Find-Iscc 多層偵測 + 新增 `ISCC` 環境變數 override + user-scope 固定路徑 + 登錄檔 fallback
|
||||
9. **`ChineseTraditional.isl` 不存在** → Inno Setup 6.3+ 官方移除繁體中文語系,改用 `#ifdef WITH_TRAD_CHINESE` 條件宏,預設只用英文 installer UI(不影響 app 本身 i18n)
|
||||
10. **`make exe` 成功但 dist 空** → PS → bash quoting 問題,改寫 tmp `.visiona-build.sh` 檔再執行;另外拆出 `exe-only` target 讓使用者刪掉 dist 能快速重跑 iscc 不重 build wails
|
||||
11. **Makefile `exe` recipe 診斷輸出** → 印 cwd / iscc exit code / dist 內容,避免靜默失敗
|
||||
|
||||
**成果**:`E:\visionA\local-tool\dist\visiona-local-0.1.0-windows-x64.exe` 成功產出,iscc 正常 compile 通過。
|
||||
|
||||
### M7-B:🔴 splash regression 修復(P0)
|
||||
|
||||
**根因**:`visiona-local/frontend/` 是 M1 階段從 edge-ai-platform 複製過來的 **installer wizard HTML/JS/CSS**,整組沒清理。`main.go` 的 `//go:embed all:frontend` 直接把這堆 wizard 當 Wails 主視窗內容,使用者開 app 看到的是 `Edge AI Platform Installer` 而不是 Next.js 主 UI。
|
||||
|
||||
**影響範圍**:macOS dmg 也有同樣 bug,只是 M1 驗收時是用瀏覽器連 `http://localhost:3721/` 驗證 server 回應,沒真的打開 Wails 視窗看 UI,所以 regression 一路混過 M1-M6 直到 Windows 實機驗證才被發現。
|
||||
|
||||
**修法**(commit `570e040`,刪 1248 行 / 新增 79 行):
|
||||
|
||||
- `visiona-local/frontend/index.html` → 極簡 splash(logo + spinner + status)
|
||||
- `visiona-local/frontend/app.js` → ES module,輪詢 `GetServerStatus()` binding,拿到 `running=true` + `url` 後 `window.location.replace(url + '/')` 跳到 Next.js 主 UI
|
||||
- `visiona-local/frontend/style.css` → 深色 splash 樣式
|
||||
|
||||
Next.js 主 UI 完全不使用 Wails JS binding(純 HTTP API),從 `wails://` 跳到 `http://127.0.0.1:<port>/` 後功能完整可用。
|
||||
|
||||
| # | 任務 | 狀態 |
|
||||
|---|------|------|
|
||||
| M7-B1 | 清掉 frontend/ 的 edge-ai-platform wizard 殘留 | ✅ |
|
||||
| M7-B2 | 改寫為 splash + redirect | ✅ |
|
||||
| M7-B3 | Windows 實機重 build + 測試 splash → Next.js UI 跳轉 | ⏳ 待使用者驗證 |
|
||||
| M7-B4 | macOS 重 build 驗證同樣修復有效 | ⏳ 待排程 |
|
||||
|
||||
## 專案概述
|
||||
|
||||
visionA-local 是 `/Users/jimchen/Innovedus/edge-ai-platform` 的 local 版本,目標是把原本要 deploy 到 EC2/staging Docker 環境的網頁工具,改造成可在本地單機執行的桌面應用,並打包成 GUI 安裝檔,支援 macOS / Windows / Ubuntu 三平台。
|
||||
@ -85,10 +134,10 @@ visionA-local 是 `/Users/jimchen/Innovedus/edge-ai-platform` 的 local 版本
|
||||
| PRD | ✅ 已完成 | 2026-04-11 | v1.2 定稿 |
|
||||
| 設計規格 | ✅ 已完成 | 2026-04-11 | 第四輪修訂定稿 |
|
||||
| 系統架構 / TDD | ✅ 已完成 | 2026-04-11 | 第四輪修訂 + Plan B 補件 |
|
||||
| 開發(增量式) | 🔄 進行中 | - | M1 啟動(2026-04-11) |
|
||||
| 開發(增量式) | 🔄 進行中 | - | M1-M6 macOS ✅;M7 Windows build 完成,splash 修復待 Windows 驗證 |
|
||||
| Review | ⏳ 待開始 | - | - |
|
||||
| 測試 | ⏳ 待開始 | - | - |
|
||||
| 打包 / 安裝檔 | ⏳ 待開始 | - | - |
|
||||
| 打包 / 安裝檔 | 🔄 進行中 | - | macOS dmg ✅;Windows exe 成功產出(UI 待驗證);Linux AppImage 待 Linux 機器驗證 |
|
||||
| 交付 | ⏳ 待開始 | - | - |
|
||||
|
||||
## 當前待辦
|
||||
@ -99,8 +148,15 @@ visionA-local 是 `/Users/jimchen/Innovedus/edge-ai-platform` 的 local 版本
|
||||
- [x] Architect Agent 產出正式 Design Doc + TDD(2026-04-11)
|
||||
- [x] 第三輪使用者決策(砍 tray、B4、C2、D2、E1/E2/E3)
|
||||
- [x] Design Agent 依第三輪決策修訂設計規格(2026-04-11)
|
||||
- [x] **PM Agent 依第三輪決策修訂 PRD**(2026-04-11 恢復完成)
|
||||
- [x] **Architect Agent 依第三輪決策修訂架構文件**(2026-04-11 恢復完成)
|
||||
- [x] PM Agent 依第三輪決策修訂 PRD(2026-04-11)
|
||||
- [x] Architect Agent 依第三輪決策修訂架構文件(2026-04-11)
|
||||
- [x] bootstrap-linux.sh + bootstrap-windows.ps1(2026-04-12)
|
||||
- [x] Windows 一鍵 build 踩坑全清:11 項修好 push(2026-04-12)
|
||||
- [x] Windows `dist/visiona-local-0.1.0-windows-x64.exe` 成功產出(2026-04-12)
|
||||
- [x] M7-B splash regression 修復(commit 570e040,2026-04-12)
|
||||
- [ ] **使用者 Windows 重 build + 驗證 splash → Next.js 主 UI 跳轉**
|
||||
- [ ] **macOS 重 build 驗證 splash 修復有效**(之前 M1 驗收漏的 UI 環節)
|
||||
- [ ] Ubuntu 端實機驗證 bootstrap-linux.sh
|
||||
- [ ] 三方互相審閱(PM↔Design↔Architect 交叉 review)
|
||||
- [ ] 使用者確認三份文件
|
||||
|
||||
@ -228,8 +284,10 @@ visionA-local 是 `/Users/jimchen/Innovedus/edge-ai-platform` 的 local 版本
|
||||
|
||||
## 未解決問題
|
||||
- **Kneron 預置模型 re-distribution 授權**(B4 決策):開發階段先假設可用,發佈前必須跟 Kneron 官方確認。若不允許需改為首次啟動線上下載,會破壞「完全離線」承諾。
|
||||
- **ffmpeg GPL 授權 release blocker**(M6):macOS 上的 ffmpeg static build 全是 GPL,暫定用 `VISIONA_ALLOW_GPL_FFMPEG=1` 放行,發佈前需法務 review 或改走自 build LGPL / 線上下載 / 砍 ffmpeg 三條路。
|
||||
- **內部 Gitea Releases / GitHub Releases 基礎設施**:發佈策略假設有此通路,待確認。
|
||||
- **CI runner 三平台是否齊備**:macOS / Windows / Linux runner 狀況待確認。
|
||||
- **M1 驗收流程漏看 Wails 視窗內容**:M1-13 當初是用瀏覽器連 `http://localhost:3721/` 驗證 server 回應,沒真的開 Wails window 看 UI,導致 edge-ai-platform installer wizard 殘留一路混過 M1-M6 到 Windows 實機驗證才發現。後續 M 任務的驗收 checklist 必須強制「開 app window 確認主 UI 是 Next.js 而非 splash / wizard / 白畫面」。
|
||||
|
||||
## 第一輪三方分析產出(已完成)
|
||||
- PM:`/Users/jimchen/visionA/local-tool/.autoflow/01-requirements/pm-analysis-round1.md`
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user