jim800121chen 5a8d2797c2 chore(local-tool): rename local_tool → local-tool, add linux/windows bootstrap scripts
- 統一目錄名為 local-tool(連字號),修正所有文件中殘留的底線版本
- 新增 scripts/bootstrap-linux.sh 與 scripts/bootstrap-windows.ps1
  一鍵安裝依賴(Go/Node/pnpm/Wails/MSYS2)並執行 payload + installer build

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-11 23:23:29 +08:00

204 lines
6.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Removed Code — visionA-local
> 要從 edge-ai-platform 砍掉、不搬進 local-tool 的目錄 / 檔案 / import 清單。
---
## 1. 整包刪除的目錄
| 目錄 | 原因 |
|------|-----|
| `server/internal/cluster/` | 使用者決策:砍掉 cluster |
| `server/internal/tunnel/` | 使用者決策:砍掉 relay / tunnel |
| `server/internal/update/` | 使用者決策 Q6不做 auto-update |
| `server/internal/flash/` | 使用者決策 Q9砍掉韌體燒錄 |
| `server/cmd/relay-server/` | 不需要 relay server |
| `server/pkg/hwid/` | 只被 relay token 生成用 |
| `server/tray/` | 使用者決策 Q-A=A3砍掉 tray省跨平台圖資產與 Wails tray 踩坑 |
| `server/scripts/firmware/` | flash 已砍 |
| `docker/` | 不需要 deploy |
| `scripts/deploy-aws.sh` | 不需要 deploy |
| `scripts/deploy-ec2.sh` | 同上 |
| `scripts/deploy-*.sh` | 同上 |
| `docs/` | 舊文件不 relevant重新寫 |
| `installer/frontend/` 中 cluster / relay 相關畫面 | Wails installer 的 UI 不需要 cluster 設定 |
## 2. 檔案層級刪除
| 檔案 | 原因 |
|------|-----|
| `server/scripts/update_kl720_firmware.py` | flash 已砍 |
| `server/internal/api/handlers/cluster_handler.go` | cluster 已砍 |
| `server/internal/api/handlers/flash_handler.go`(若獨立) | flash 已砍 |
| `server/internal/api/ws/flash_progress.go` | flash 已砍 |
| `server/internal/api/ws/cluster_*.go` | cluster 已砍 |
| `frontend/src/app/clusters/` | cluster 頁面 |
| `frontend/src/app/workspace/cluster/` | 同上 |
| `frontend/src/components/cluster/` | cluster 元件 |
| `frontend/src/lib/api/clusters.ts` | API client |
| `frontend/src/components/relay-token-sync.tsx` | relay 專用 |
| `frontend/src/lib/api/update.ts`(若有) | update 已砍 |
## 3. `server/main.go` 要刪除的 import
```go
// ❌ 刪除這些 import
"edge-ai-platform/internal/cluster"
"edge-ai-platform/internal/flash"
"edge-ai-platform/internal/tunnel"
"edge-ai-platform/pkg/hwid"
```
## 4. `server/main.go` 要刪除的變數 / 邏輯
```go
// ❌ 刪除這些:
var tunnelClient *tunnel.Client
clusterMgr := cluster.NewManager(deviceMgr)
flashSvc := flash.NewService(deviceMgr, modelRepo)
// 刪除整段 relay token 生成:
relayToken := cfg.RelayToken
if cfg.RelayURL != "" && relayToken == "" {
relayToken = hwid.Generate()
...
}
// 刪除 tunnel 啟動:
if cfg.RelayURL != "" {
tunnelClient = tunnel.NewClient(...)
tunnelClient.Start()
...
if relayHTTP := relayWebURL(...); ...
}
// 刪除 shutdownFn 裡的 tunnelClient.Stop()
// 刪除 relayWebURL 整個函式
// 刪除 openBrowser 整個函式不需要WebView 由 Wails 管)
// systemHandler 的 giteaURL 參數移除:
systemHandler := handlers.NewSystemHandler(Version, BuildTime, restartFn) // 移除 cfg.GiteaURL
// router.NewRouter 的呼叫:
r := api.NewRouter(
modelRepo, modelStore, deviceMgr, cameraMgr,
// ❌ clusterMgr 移除
// ❌ flashSvc 移除
inferenceSvc, wsHub, staticFS, logBroadcaster, systemHandler,
// ❌ relayToken 移除
)
```
## 5. `server/internal/config/config.go` 要刪除的欄位
見 [`code-reuse-plan.md`](./code-reuse-plan.md) §3.3 的完整改寫版。精簡列表:
```go
// ❌ 刪除:
RelayURL string
RelayToken string
GUIMode bool
GiteaURL string
// ❌ 刪除對應的 flag.StringVar / flag.BoolVar 呼叫
```
## 6. `server/internal/api/router.go` 要刪除的內容
見 [`api-endpoints.md`](./api-endpoints.md) §4 的新版完整程式碼。精簡列表:
- `clusterMgr`, `flashSvc`, `relayToken` 三個參數
- `clusterHandler` 初始化
- 所有 `/api/clusters/*` routes
- `/auth/token` endpoint + OPTIONS
- 所有 `/ws/clusters/*` routes
- `/ws/devices/:id/flash-progress`
## 7. `frontend/` 要清理的內容
**M1 階段就要清乾淨**(使用者決策 Q-C=C2不接受「M1 先不清前端」的先前建議必須一次到位UI 必須乾淨):
### 7.1 刪除的目錄
- `src/app/clusters/`
- `src/app/workspace/cluster/`(若存在)
- `src/components/cluster/`
### 7.2 刪除的檔案
- `src/components/relay-token-sync.tsx`
- `src/lib/api/clusters.ts`
- `src/lib/api/tunnel.ts`(若有)
- `src/lib/api/update.ts`(若有)
- `src/stores/cluster-store.ts`(若有)
### 7.3 修改的檔案
- `src/components/layout/sidebar.tsx` — 移除 "Clusters" 導航項
- `src/app/page.tsx`Dashboard — 移除 cluster stat card / cluster activity
- `src/app/settings/page.tsx` — 移除 relay 模式切換、cluster 設定區塊
-`.tsx` 中任何對 `clusterStore` / `clusters` API 的 import 與使用
## 8. `installer/app.go`(改寫為 `visiona-local/app.go`)要刪除的內容
```go
// ❌ 刪除的欄位與函式:
- InstallConfig 中的 relay / dashboard 相關欄位
- GenerateToken沒有 token 需求
- GetDashboardURL 中的 relay 邏輯
- LaunchServer relay flag 組裝
- runInstall 中跟 relay 有關的 step
// ✅ 保留但改寫:
- stepInstallFfmpeg 改為從 payload 解壓 bundled ffmpeg不依賴系統 PATH
- stepInstallUSBDriver 只在 Windows 執行
- stepSetupPython 分裂為 bundled / system 兩條路徑
```
## 9. `Makefile` 要刪除的 target
```makefile
# ❌ 刪除:
build-relay
deploy-frontend
deploy-frontend-setup
deploy-ec2
# 刪除 PHONY 列表中對應的項目
```
## 10. `go.mod` 要移除的依賴
執行 `go mod tidy` 後自動移除:
- 原本為 cluster / relay / tunnel / flash / update 引入的 library
-`hwid` 引用了 `machineid` 類的套件,也會自動移除
不需要手動編輯 go.mod。
## 11. 清理後的 sanity check
完成上述刪除後,執行:
```bash
# Go 編譯測試
cd server && go build ./... && go vet ./...
# 前端編譯測試
cd frontend && pnpm build
# grep 確認沒有殘留的 import
grep -rn "cluster" server/ --include="*.go" | grep -v "_test.go"
grep -rn "tunnel" server/ --include="*.go"
grep -rn "relay" server/ --include="*.go"
grep -rn "hwid" server/ --include="*.go"
grep -rn "flash" server/ --include="*.go" # 注意可能還有「flash 燈號」等無關字眼
grep -rn "GiteaURL" server/ --include="*.go"
# 應該全部沒有匹配(或只剩無關字眼)
```
## 12. 清理階段的風險
- **隱性耦合**:某些 handler 可能透過 router 參數傳遞 `clusterMgr`,移除後要確認所有 call site
- **前端 build 炸掉**M1 就要清乾淨Q-C=C2必須仔細處理 sidebar、store imports、cross-component references建議先 grep `cluster|relay|tunnel` 全掃一次再動手
- **test 依賴**`api_e2e_test.go` 裡可能有 cluster / flash / auth test case要一併刪
- **i18n 殘留**:被刪除的功能對應的 i18n key 也要清(不影響功能但佔空間)