This commit introduces the new Tauri-based client directory structure per the migration specification in docs/ui.md. The migration replaces the Python/Flet client with a Rust/Tauri + React/TypeScript architecture. Rust Backend (src-tauri/): - Tauri v2 configuration with plugins (dialog, fs, notification, global-shortcut) - gRPC client implementation using tonic for server communication - AppState management with thread-safe access patterns (parking_lot, tokio) - Tauri commands for: connection, recording, meetings, annotations, summary, export, diarization, playback, triggers, and audio devices - Audio capture/playback scaffolding using cpal/rodio - AES-256-GCM encryption module for audio files - Trigger detection service for auto-start functionality - Event emitter helpers for frontend communication React Frontend (src/): - Vite + TypeScript + Tailwind CSS + shadcn/ui setup - Complete TypeScript type definitions mirroring Rust types - Zustand store with immer for state management - Tauri API wrapper for all backend commands - Tauri event listeners hook for real-time updates - Core UI components: - ConnectionPanel: Server connection management - RecordingPanel: Start/stop recording controls - VuMeter: Real-time audio level visualization - PlaybackControls: Audio playback with seek - TranscriptView: Live transcript display with segment highlighting - SummaryPanel: AI summary generation and display - MeetingLibrary: Browse, select, export, delete meetings - TriggerDialog: Auto-start prompt with snooze options The client connects to the existing Python gRPC server. All server-side logic (ASR, diarization, summarization, persistence) remains unchanged. Key dependencies: - Rust: tauri 2.0, tonic, cpal, rodio, aes-gcm, keyring - Frontend: react 18, zustand, tailwindcss, lucide-react, radix-ui
19 lines
482 B
JSON
19 lines
482 B
JSON
{
|
|
"$schema": "https://schema.tauri.app/config/2.0.0/capability",
|
|
"identifier": "default",
|
|
"description": "Default capabilities for NoteFlow",
|
|
"windows": ["main"],
|
|
"permissions": [
|
|
"core:default",
|
|
"shell:allow-open",
|
|
"dialog:allow-save",
|
|
"dialog:allow-open",
|
|
"fs:allow-read",
|
|
"fs:allow-write",
|
|
"notification:default",
|
|
"global-shortcut:allow-register",
|
|
"window-state:allow-restore-state",
|
|
"window-state:allow-save-window-state"
|
|
]
|
|
}
|