diff --git a/local-tool/docs/LOCAL-TOOL-SPEC.md b/local-tool/docs/LOCAL-TOOL-SPEC.md index 7444038..b03fc4f 100644 --- a/local-tool/docs/LOCAL-TOOL-SPEC.md +++ b/local-tool/docs/LOCAL-TOOL-SPEC.md @@ -225,49 +225,7 @@ macOS 版為自行編譯的最小 decoder-only build(~5.7MB),只啟用必 --- -## 6. M8 重構變更紀錄(2026-04-14 ~ 2026-04-16) - -以下是 M8 重構後的所有修復和改動,按時間排序: - -### 架構變更(R5 決策實作) - -| Commit | 變更 | -|--------|------| -| `8cd5751` | **M8 重構 — Wails 控制台 + 瀏覽器 Web UI**:原 Wails 內嵌 Next.js 改為「Wails 控制台管理 server lifecycle + 瀏覽器開 Web UI」。砍 yt-dlp(M8-1)、砍 Mock 模式(M8-2)、ffmpeg LGPL vendor(M8-3)、ServerController v2 state machine(M8-4)、啟動階段管線 6 stage pipeline(M8-4b)、Wails 控制台 vanilla JS UI(M8-5)、Offline Overlay(M8-7)、CORS middleware(M8-8)、shutdown broadcast(MAJ-4)、Boot-ID + tab 重連(M8-9) | - -### Bug 修復 - -| Commit | 問題 | 修法 | -|--------|------|------| -| `d7cddf3` | **預設模型永遠載入 0 個** — server 預設 dataDir 算錯,models.json 找不到 | 拆 `builtInDataDir`(read-only bundle)vs `dataDir`(writable user home),新增 `resolveBuiltInDataDir` + `findFirstExisting` helper,跨 macOS/Windows/Linux AppImage 五路徑自動偵測 | -| `a6cd1c1` | **Wails 控制台一打開就看到 Settings + shutdown-modal** — CSS `.modal-backdrop { display: flex }` 覆蓋 user agent `[hidden] { display: none }` | 全域 `[hidden] { display: none !important; }` | -| `a209470` | **Windows 乾淨環境啟動失敗(Stage 2 Python bootstrap > 60s)** | StartupPipeline 加 `PauseHardTimeout` / `ResumeHardTimeout` API,首次 bootstrap 不算入 hard timeout budget | -| `c649a81` | **Stage 3 waitHealthy 也被 hard timeout 幹掉** | waitHealthy 冷啟動時也 pause;healthCheckTimeout 30s → 180s | -| `35db6c8` | **shutdown-modal「正在停止伺服器」popup 卡死 + Wails app stderr 在 Windows 上看不到** | 前端 15s watchdog + Esc/backdrop 可關 + stopGraceful hardBailout timer + appLog 覆蓋啟動流程關鍵訊息到 wails.log | -| `d946561` | **Stage 順序亂跳(Stage 1 等待中但 Stage 2 完成)** | 新增 `GetStartupSnapshot()` binding,前端 init 後拉 snapshot 補漏 events + monotonic status rank 避免倒退 | -| `ad9beab` | **Restart / Stop+Start 後 5 階段面板不更新** | `startInternal` 進場偵測 pipeline 已完成/已失敗 → 自動 `rebuildStartupPipeline` 重建,`didRebuild` flag 分流 Stage 5 openBrowser | -| `fbd585a` | **Linux build 找不到 webkit2gtk-4.0** | Makefile `wails-linux` 自動偵測 4.1 → `-tags webkit2_41`;bootstrap-linux.sh 也做版本偵測 | -| `485a2e0` | **Linux build 找不到 appimagetool** | bootstrap-linux.sh 新增自動下載安裝 appimagetool | - -### 功能改善 - -| Commit | 變更 | -|--------|------| -| `dd35b56` | regen Wails bindings(M8 漏提的 binding 產物) | -| `9c9e005` | Stage 3 sub-step 細步進度 + 啟動完成後面板可收合 | -| `ff5cab6` | hard timeout 放寬 + 全 stage 細步 detail emit(13 個 i18n keys)+ Stage 1 seed pause | -| `f5655e3` | hard timeout → 5 分鐘(300s)+ Stage 6 隱藏到 header 連線指示燈 + 全屏 splash overlay | -| `9793a2e` | models.json 從 15 筆精簡為 7 筆(只保留有實體 .nef 的模型) | - -### 開發工具 / Bug A - -| Commit | 變更 | -|--------|------| -| `a209470` | `killStaleServerOnPort` 改用 `ps -o args=` 識別 `go run` 產生的 server(開發/Reviewer 測試用) | - ---- - -## 7. 資料目錄 +## 6. 資料目錄 | 平台 | 位置 | |------|------| @@ -300,7 +258,7 @@ visiona-local/ --- -## 8. Build 指引 +## 7. Build 指引 ### macOS @@ -332,7 +290,7 @@ make appimage # → dist/visiona-local-*-linux-x64.AppImage --- -## 9. 除錯指引 +## 8. 除錯指引 ### Windows 啟動問題