使用者回報 Windows 仍看到「啟動時間超過 60 秒」紅 banner,且要求每個
階段做什麼都印出來給使用者知道。三件事一次到位:
1. startupHardTimeout 60s → 180s(直接放寬到 3 分鐘)
即使三段 pause 機制(Stage 1 seed / Stage 2 Python bootstrap / Stage 3
waitHealthy)都生效,Windows 乾淨環境段落間累積延遲仍可能超過 60 秒。
180s 給意料之外的延遲足夠 buffer,搭配 pause + 細步進度 emit 涵蓋
99% 情境。日常啟動只要幾秒,放寬不影響正常情境。
- 同步更新 i18n 紅 banner 文案 60 → 180
- 同步更新 unit tests(HardTimeout 用 -185s、SkipBypass 用 -200s、
PreventsHardTimeout 用 wall=-300/paused=-250 對應 effective=50s)
2. Stage 1 seedUserDataDir 包進 PauseHardTimeout
Windows 乾淨環境首次跑會被 Defender real-time scan 對 8 個 nef 檔
逐個掃 5-30 秒。屬一次性 bootstrap,和 Stage 2/3 同理應豁免 hard
timeout。第二次啟動 fileExists 早 early return,pause 影響 0ms。
配套:seed 期間每 5 秒 emit slow hint 帶 elapsed 秒數,避免使用者
看 spinner 不動以為當機。
3. 全 stage 細步 detail emit
原本只有 Stage 3 有 sub-step 文案(spawn / waitHealth / waitHealthSlow)。
現在 Stage 1/2/4/5/6 都有:
Stage 1: migrate / lock / ipc / seed / seedSlow
Stage 2: detect / bootstrap / venv / pip / driver
Stage 3: spawn / waitHealth / waitHealthSlow
Stage 4: probe
Stage 5: open
Stage 6: wait
每個 detail 對應一段使用者能讀懂的中英文文案(i18n.js zh-TW + en)。
前端 startup-panel 收到 startup:stage-detail event 後在對應 stage 列
下方顯示文案,比看著「進行中...」靜止文字直觀很多。
Stage 2 driver install 因為發生在 CompleteStage(2) 之後 current=3,
emit 到 stage 3 而非 stage 2,避免被前端忽略(detail 只在 stage
running 時顯示)。
更新 fix marker 為「9c9e005+ (180s hard timeout + all-stage sub-step
detail + Stage1 seed pause)」讓使用者拉新版後能從 wails.log 確認版本。
驗證:
- visiona-local 套件 go build / vet / test -race 全綠
- macOS dmg 163MB 重 build OK
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
visionA
Innovedus visionA monorepo. Currently contains:
Subprojects
local-tool/
visionA-local — local-first edge AI desktop tool, derived from edge-ai-platform. Wails + Go + Next.js, packaged as macOS dmg / Windows exe / Linux AppImage.
See local-tool/README.md for details.
License
TBD (internal use)
Description
Languages
Go
42.4%
TypeScript
33.7%
JavaScript
7.5%
Python
5.3%
Makefile
3.7%
Other
7.4%