jim800121chen 1da385f345 feat(frontend): 裝置詳情頁連線/斷線按鈕 + 兩步式 gate(解載入模型 device not connected)
問題:device 配對後停在 detected(rescan 偵測到硬體但沒 connect driver),
載入模型被 flash service IsConnected() 擋成 400。根因=前端漏了「連線」按鈕
(POC 有、移植時當 local-tool 專屬刪掉、詳情頁沒補回雲端版)。前端誤用
remoteStatus=online(tunnel) 當 flash 門檻,≠ device driver IsConnected()。

修法(方案 A、兩步式):
- device-detail-client.tsx:連線/斷線按鈕 + 三分支 gate(未連線→連線鈕/
  連線中→loading disabled/已連線→斷線鈕+載入模型可用)+ driver status 呈現
- connect 走 serial(對齊 WP-C)、成功後 fetchDevice(UUID) 刷新(C4 混合模型,
  WS 推送因 backend 501 stub 不通故用輪詢)
- 60s connect UX:loading hint「首次連線需載入韌體約1分鐘,請勿關閉頁面」
- FlashDialog gate 收緊 disabled !isOnline → !isOnline || !isDriverConnected
- device-store connect 的 api.post 加 timeoutMs:130_000(全域 30s < connect
  最壞 65s,單點覆寫;> local agent 120s ctx)
- i18n devices.connect.* 13 key 兩語系
- TDD §10.5.1 過時型別修正 + 新增 §10.5.1.1 two-step connect 流程

推論線一併解決:能進 workspace 的裝置必已 connect(原無 IsConnected 檢查
會靜默空跑無框)。

Reviewer 通過(0C/0M/2Mi/3Sug、規格 12/12、gate 三分支全組合走查)。
tsc/eslint 0、vitest 44 passed、next build 0。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-16 15:30:33 +08:00

visionA

Innovedus visionA monorepo — Edge AI 開發平台(離線版 + 雲端版)。

開發環境快速啟動

make dev-up         # 起 backend + Member CenterOIDC+ Postgres
make frontend-dev   # 另開 terminal起 frontend dev serverpnpm dev
# 開瀏覽器 http://localhost:3000

完整流程(含 OAuth client 手動註冊、port 對照、疑難排解)見 docs/DEV-SETUP.md。 其他 targetmake help

子專案

專案 角色 狀態
local-tool/ 離線版 桌面工具Wails + Go + Next.js 穩定維護
visionA-frontend/ 雲端版 web 前端Next.js Phase 0 雛形
visionA-backend/ 雲端版後端Go雙 binaryapi-server + remote-proxy Phase 0 雛形
local-agent/ visionA Agent — 雲端版 local 端代理Wails + Go + Next.js Phase 0.5 雛形

架構關係

離線模式local-tool 單獨)
  使用者瀏覽器 → localhost:3721 (local-tool server) → Kneron 裝置

雲端模式visionA 雲端版 + visionA Agent
  使用者瀏覽器 → visionA-frontend (CDN) → visionA-backend (api-server)
                                                ↓ internal HTTP
                                       visionA-backend (remote-proxy)
                                                ↓ WebSocket + yamux tunnel
                                       使用者電腦上的 visionA Agent
                                                ↓ 本機 HTTP
                                       Agent 的內部 server → Kneron 裝置

兩種模式可在同一台電腦共存local-tool 和 visionA Agent 獨立安裝、不衝突)。

產品線原則

  1. local-tool 不動,需要時 fork
  2. 雲端 vs 本機差異只在前端部署位置
  3. 雲端 agent 的 server ≈ local-tool 的 server(差別在沒本機操作 UI
  4. 雲端 web UI 先抄 local-tool,之後再加新功能

文件

完整產品文件見 .autoflow/

License

TBD內部使用

Description
No description provided
Readme 134 MiB
Languages
Go 54.7%
TypeScript 33%
Python 5.6%
Makefile 1.6%
JavaScript 1.4%
Other 3.7%