背景 / 現状
apps/desktop/src-tauri/src/main.rs はUI shellのみ。scripts/package_macos.sh はfrontend/Tauri artifactを作るがPython local APIとSwift recording agentを同梱・起動・停止しない。通常利用はTerminal、Python、Node、Vite、repository checkoutに依存している。
目的
非エンジニアがDMGからApplicationsへdragし、OpsMineFlow.appをdouble clickするだけで安全に起動・終了できる自己完結製品にする。
対象
- backend/mining/export runtimeのbundle方式
- Swift agentのnested executable同梱
- Tauriからの起動、health check、restart、graceful stop
- single-instanceとorphan cleanup
- user data directory
- Python/Node/npm/repository不要のruntime
- arm64/x86_64 support方針
非対象
- cloud service
- runtime download
- auto updater
- App Store配布
実装要件
- sidecarまたは同等のローカルbundleを採用し、全runtimeをcode sign可能にする
- loopback/IPC以外へbindしない
- app終了時にbackend/agentを確実に停止
- crash後のorphanを次回起動で安全に回復
- logとruntime fileをApp Support配下へ集約
- dev scriptとpackaged lifecycleの挙動差をdocs/testで明示
受け入れ条件
- clean macOSでPython/Node/Rust/Terminalなしに起動できる
- 起動からrecord/import/analyze/export/終了までUIだけで完了
- app終了後にlisten portとchild processが残らない
- backend/agent欠損・破損時に安全なerrorと復旧導線が出る
検証
clean VMまたは新規user、double click起動、force quit、sleep/wake、再起動、二重起動、artifact tamperを含むpackaged E2E。
依存関係
前提: #75、#77、#80。連携: #79、#87、#90、#92、#95、#107。後続の配布検証: #57 → #85。#57を前提にしない。
背景 / 現状
apps/desktop/src-tauri/src/main.rsはUI shellのみ。scripts/package_macos.shはfrontend/Tauri artifactを作るがPython local APIとSwift recording agentを同梱・起動・停止しない。通常利用はTerminal、Python、Node、Vite、repository checkoutに依存している。目的
非エンジニアがDMGからApplicationsへdragし、OpsMineFlow.appをdouble clickするだけで安全に起動・終了できる自己完結製品にする。
対象
非対象
実装要件
受け入れ条件
検証
clean VMまたは新規user、double click起動、force quit、sleep/wake、再起動、二重起動、artifact tamperを含むpackaged E2E。
依存関係
前提: #75、#77、#80。連携: #79、#87、#90、#92、#95、#107。後続の配布検証: #57 → #85。#57を前提にしない。