## input size 優先序(Windows Error 12 的根因) 先前把使用者手填的 inputSize 排在檔名解析之前,Windows 上 SDK 讀不到 shape 時就用了隨手填的 640x640(模型實際 224x224)→ 推論回 KP_ERROR_INVALID_PARAM。改動前靠檔名 fallback 的 224 反而是對的。 新優先序(可信度由高到低): SDK > 檔名明確解析 wNNNhNNN > 使用者宣告 > 已知 model id > 寫死預設 檔名排在宣告之前,因為它由編譯工具鏈產生、沒有人為亂填空間;宣告不降到 最底,是因為使用者若刻意填對,仍比無資訊時的預設值貼近現實。 配套:_size_from_name_or_none 讓「真的解析到」與「用了 default」可區分 (舊版兩者回傳型別相同,預設值會偽裝成檔名來源蓋掉宣告值)。 ## KneronPLUS 3.1.2 相容 3.1.2 把 shape 搬進巢狀 union,TensorDescriptor 不再有 shape_onnx: 2.0.0 TensorDescriptor.shape_onnx 3.1.2 TensorDescriptor.tensor_shape_info.data → V1 .shape_onnx / V2 .shape 舊碼 getattr 失敗被 except 靜默吃掉,SDK 層在 Windows 永遠落空。現在 兩版都支援,不依賴 enum 版本判斷。 ## Error 12 診斷 KP_ERROR_INVALID_PARAM 對使用者無法理解,現在附上當前 input size 與 來源,並針對 declared 來源提示「此尺寸來自手動填寫欄位,請優先確認」。 原始錯誤保留不吞。 ## venv 半套安裝 app.go 原本只檢查 python.exe 存在就跳過安裝,導致 wheels 裝到一半中斷 後每次啟動都跳過、永遠卡住且無提示,使用者必須手動刪整個 runtime 目錄。 改為比對 wheel 清單指紋(快路徑不啟動 process),不符才實跑 import kp/numpy/cv2 驗證,失敗則只重跑 wheels 安裝。標記檔僅在 pip 成功 且 import 驗過後才寫入,不留「已就緒」假象。 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
visionA
Innovedus visionA monorepo — Edge AI 開發平台(離線版 + 雲端版)。
開發環境快速啟動
make dev-up # 起 backend + Member Center(OIDC)+ Postgres
make frontend-dev # 另開 terminal:起 frontend dev server(pnpm dev)
# 開瀏覽器 http://localhost:3000
完整流程(含 OAuth client 手動註冊、port 對照、疑難排解)見 docs/DEV-SETUP.md。
其他 target:make help。
子專案
| 專案 | 角色 | 狀態 |
|---|---|---|
local-tool/ |
離線版 桌面工具(Wails + Go + Next.js) | 穩定維護 |
visionA-frontend/ |
雲端版 web 前端(Next.js) | ✅ Phase 0 雛形 |
visionA-backend/ |
雲端版後端(Go,雙 binary:api-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 獨立安裝、不衝突)。
產品線原則
- local-tool 不動,需要時 fork
- 雲端 vs 本機差異只在前端部署位置
- 雲端 agent 的 server ≈ local-tool 的 server(差別在沒本機操作 UI)
- 雲端 web UI 先抄 local-tool,之後再加新功能
文件
完整產品文件見 .autoflow/:
- 產品需求:
.autoflow/02-prd/PRD.md - 設計規格:
.autoflow/03-design/design-spec.md - 架構總覽:
.autoflow/04-architecture/design-doc.md - 交付總結:
.autoflow/07-delivery/project-summary.md
License
TBD(內部使用)
Description
Languages
Go
54.7%
TypeScript
33%
Python
5.6%
Makefile
1.6%
JavaScript
1.4%
Other
3.7%