From 83981e5b1be58f9d262ed3076232b7a9b88a6bf3 Mon Sep 17 00:00:00 2001 From: jim800121chen Date: Sun, 12 Apr 2026 03:35:20 +0800 Subject: [PATCH] =?UTF-8?q?docs(local-tool):=20progress.md=20=E8=A8=98?= =?UTF-8?q?=E9=8C=84=20M7=20Windows=20=E4=B8=80=E9=8D=B5=20build=20+=20spl?= =?UTF-8?q?ash=20regression?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 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) --- local-tool/.autoflow/progress.md | 72 ++++++++++++++++++++++++++++---- 1 file changed, 65 insertions(+), 7 deletions(-) diff --git a/local-tool/.autoflow/progress.md b/local-tool/.autoflow/progress.md index 00ca6f3..1c02b2d 100644 --- a/local-tool/.autoflow/progress.md +++ b/local-tool/.autoflow/progress.md @@ -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:/` 後功能完整可用。 + +| # | 任務 | 狀態 | +|---|------|------| +| 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`