refactor: 不要なシャットダウン処理を削除し、アプリ終了時のテレメトリ送信を簡素化

This commit is contained in:
misyaguziya
2026-01-09 22:30:01 +09:00
parent d4a5a1ca6f
commit 19af0ea918
2 changed files with 4 additions and 63 deletions

View File

@@ -1296,74 +1296,23 @@ class Model:
except Exception:
errorLogging()
return False
# =========================================================================
# Telemetry Methods (MVC Pattern)
# =========================================================================
def shutdown(self):
"""Model cleanup on application shutdown."""
# Telemetry 終了app_closed 送信)
if hasattr(self, "telemetry") and self.telemetry:
self.telemetry.shutdown()
try:
# オーバーレイ終了
if hasattr(self, 'overlay') and self.overlay:
self.shutdownOverlay()
except Exception:
errorLogging()
try:
# Watchdog 停止
if hasattr(self, 'th_watchdog'):
self.stopWatchdog()
except Exception:
errorLogging()
try:
# WebSocket サーバー停止
if hasattr(self, 'websocket_server_alive') and self.websocket_server_alive:
self.stopWebSocketServer()
except Exception:
errorLogging()
try:
# OSC ハンドラー停止
if hasattr(self, 'osc_handler'):
self.stopReceiveOSC()
except Exception:
errorLogging()
try:
# オーディオ停止
self.stopMicTranscript()
self.stopSpeakerTranscript()
self.stopCheckMicEnergy()
self.stopCheckSpeakerEnergy()
except Exception:
errorLogging()
try:
# ロガー停止
if hasattr(self, 'logger') and self.logger:
self.stopLogger()
except Exception:
errorLogging()
# メモリ解放
gc.collect()
def telemetryTrack(self, event: str, payload: dict = None):
"""汎用テレメトリイベント送信 (Model ラッパー)"""
if hasattr(self, "telemetry") and self.telemetry:
self.telemetry.track(event, payload)
def telemetryTrackCoreFeature(self, feature: str):
"""コア機能テレメトリイベント送信 (Model ラッパー)"""
if hasattr(self, "telemetry") and self.telemetry:
self.telemetry.track_core_feature(feature)
def telemetryTouchActivity(self):
"""テレメトリアクティビティ更新 (Model ラッパー)"""
if hasattr(self, "telemetry") and self.telemetry:

View File

@@ -154,16 +154,8 @@ export const useWindow = () => {
};
const asyncCloseApp = async () => {
// Send shutdown signal to backend before closing the app
// This ensures telemetry app_closed event is sent and flushed
// Note: Don't await this call, let it run in background (fire-and-forget)
asyncStdoutToPython("/run/shutdown");
// Give backend time to process shutdown and flush telemetry
// Tauri sidecar will be terminated when UI closes, so timing is critical
await new Promise(resolve => setTimeout(resolve, 2000));
// Now close the UI window (this will also terminate the backend sidecar)
await appWindow.close();
};