本システムは、Tauri 2 をホストとしたマルチプロセス・マルチレイヤー・アーキテクチャを採用しています。
graph TD
subgraph "Presentation Layer (Webview2)"
UI[Glassmorphism UI]
SSE_Monitor[Activity Log / SSE]
end
subgraph "Application Layer (Rust / Tauri Core)"
Tauri[Tauri Backend]
Tray[System Tray / Resident Mode]
Axum[Axum MCP Server]
Llama[Llama Client / HTTP]
end
subgraph "Infrastruture Layer"
DB[(SQLite / sqlite-vec)]
LS[Sidecar: llama-server]
M[Gemma-3 GGUF]
end
UI <-->|IPC: Invoke/Events| Tauri
Tauri <--> Axum
Tauri <--> DB
Axum <--> DB
Tauri <--> Llama
Llama <-->|HTTP| LS
App([Windows App]) -->|Resident| Tray
Tray -->|Show/Hide| UI
LS -->|Inference| M
invoke コマンドによる非同期通信。reqwest を使用した API 通信。Sidecar との疎通とリトライを制御。llama-server プロセスの起動(bin フォルダ内)、DLL パスの解決、子プロセスの死活監視。sqlx を使用した非同期リレーショナルデータ管理。vec0 仮想テーブルによるベクトル検索エンジン(DLL 拡張)。llama.cpp ベースの推論エンジン。| 処理 | 同期/非同期 | 説明 |
|---|---|---|
| UI 更新 | 非同期 (Event) | バックエンドからの非同期メッセージ受信により更新。 |
| API リクエスト | 非同期 (Async/Await) | tokio ランタイム上でのノンブロッキング I/O。 |
| DB トランザクション | 原子性 (Atomic) | items と vec_items の一貫性は Rust 側トランザクションで保証。 |
bin フォルダを特定し、DLL パスを補強。llama-server プロセスの起動とヘルスチェック待機。