從 local-tool 複製出獨立的「visionA Agent」桌面應用(A3 純橋樑: tunnel client + 配對 UI + 設定,不開 HTTP port、不做本機裝置/推論 UI)。 Bundle ID 與 local-tool 不同(com.innovedus.visiona-agent vs visiona-local), 雙 app 可共存。fork 後不主動 sync,需要時手動 cherry-pick。 Backend / Wails Go(AB1-AB13): - internal/tunnel:6 狀態機(Idle/Connecting/Connected/Reconnecting/Failed/Stopped) + Pair/Unpair/Reconnect/Disconnect binding + ClientHooks event - internal/auth:encrypted file token store(AES-GCM + scrypt + machineID fallback salt + 13 tests) - internal/config:YAML validation + atomic write + 11 tests - internal/log:ring buffer + ExportLog 升級 zip - visionA-backend /api/pairing/exchange:SessionTokenStore + 17 new tests - 三平台 build 驗證(macOS DMG 160 MB / Windows EXE / Linux AppImage) - end-to-end 5 milestone 全綠(pairing → tunnel → forward → reuse 防護 → tunnel drop failover) Frontend / Next.js(AF1-AF7,沿用 visionA-frontend 基礎): - AppShell + Header + TabNav(StatusView / PairView / SettingsView 三 tab) - ConnectionStatusBadge 5 種狀態 - TokenInput regex 驗證 + 7 種錯誤 + 0.5s auto-switch 到狀態頁 - 設定頁 4 區塊(含重新配對 AlertDialog) - agent-api.ts 封裝 Wails bindings(mock/real 雙實作)+ 90 tests Phase 0.7 review-driven fix(Round 2): - A1 Session fixation 防護(RotateSessionID) - A3 mock pairing 預設改 false(必須明確 opt-in)+ startup log - A4 Pair 失敗後 state 清理矩陣(exchange/Save/Start fail 各自終態) - A5 Pair/Unpair/Reconnect lifecycleMu + 50 goroutine race test - F1 重新配對次按鈕 / F2 PairView Esc cancel / F3 Wails BrowserOpenURL / F4 Settings draft 持久 + 未儲存 badge 驗證:agent backend go test -race -count=3 ./... 4 packages 全綠 / agent frontend pnpm test 119 tests 全綠 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
81 lines
1.5 KiB
Plaintext
81 lines
1.5 KiB
Plaintext
|
||
# Autoflow Agent(由 autoflow-agent init 自動產生)
|
||
.claude/
|
||
.autoflow/CLAUDE.md.backup.*
|
||
.autoflow/.backups/
|
||
|
||
# ── 第三方依賴(由 make vendor-sync 下載,不進 git;第三輪決策 Q-D=D2) ──
|
||
/vendor/**
|
||
!/vendor/.gitkeep
|
||
!/vendor/README.md
|
||
# R5-6b:macOS LGPL ffmpeg binary 進 git(沒有現成 LGPL binary 來源,自 build 成本高,
|
||
# commit 後開發者 clone 即可用,不必每次重 build ~15 分鐘)
|
||
!/vendor/ffmpeg/
|
||
!/vendor/ffmpeg/macos/
|
||
!/vendor/ffmpeg/macos/**
|
||
|
||
# ── 建置產出 ──
|
||
/dist/
|
||
/visiona-agent/build/bin/
|
||
/visiona-agent/build/darwin/Resources/
|
||
# M8-3:頂層 build/ffmpeg-macos/ 是 ffmpeg self-build 中間產物(source + obj + install,~180MB),不進 git
|
||
/build/
|
||
/visiona-agent/payload/
|
||
!/visiona-agent/payload/.gitkeep
|
||
# M1-11:頂層 payload/ 是 build 產物,不進 git(除了 .gitkeep)
|
||
/payload/**
|
||
!/payload/.gitkeep
|
||
/payload/*.tar.gz
|
||
/payload/*.zip
|
||
|
||
# ── Go ──
|
||
*.exe
|
||
*.exe~
|
||
*.dll
|
||
*.so
|
||
*.dylib
|
||
*.test
|
||
*.out
|
||
go.work.sum
|
||
|
||
# ── Node / Next.js / pnpm ──
|
||
node_modules/
|
||
.pnpm-store/
|
||
.next/
|
||
out/
|
||
*.tsbuildinfo
|
||
.npm
|
||
.pnpm-debug.log*
|
||
|
||
# ── Python(dev 時可能出現的 venv / cache) ──
|
||
__pycache__/
|
||
*.py[cod]
|
||
*$py.class
|
||
.venv/
|
||
venv/
|
||
*.egg-info/
|
||
|
||
# ── Editor / IDE ──
|
||
.vscode/
|
||
.idea/
|
||
*.swp
|
||
*.swo
|
||
|
||
# ── OS ──
|
||
.DS_Store
|
||
.DS_Store?
|
||
._*
|
||
.Spotlight-V100
|
||
.Trashes
|
||
ehthumbs.db
|
||
Thumbs.db
|
||
desktop.ini
|
||
|
||
# ── Env / Secrets ──
|
||
.env
|
||
.env.local
|
||
.env.*.local
|
||
*.pem
|
||
*.key
|
||
|