Zurück zur Dokumentation
Desktop

Desktop-App-Interna

Tauri v2 Shell, Rust-Befehlsschicht, PTY-Sitzungen und UI-Zustandsverwaltung.

14 Min. Lesezeit

Die Desktop-App ist eine Tauri v2 Shell (Version 2.9.1), die eine React-UI ausführt. Rust-Dienste stellen Befehle für Workflows, Terminal-Sitzungen und Konfiguration bereit, während der Zustand lokal in SQLite persistiert wird. Das fähigkeitsbasierte Berechtigungsmodell bietet feinkörnige Sicherheitskontrollen für Dateisystemzugriff, HTTP-Anfragen, Shell-Ausführung und Systembenachrichtigungen.

Desktop-Shell-Übersicht

Screenshot mit Plan-Editor, Terminal-Tabs und Job-Status-Seitenleiste.

PlanToCode Desktop-Shell
Click to expand
Die Desktop-App mit dem Implementierungspläne-Panel und der Seitenleiste.

React-UI und Oberfläche

Die React-UI rendert den Aufgabenbeschreibungs-Editor, Plan-Viewer und Terminal-Panels:

Tauri-Befehle

Befehle in desktop/src-tauri/src/commands/ stellen Rust-Funktionalität der React-UI bereit. Wichtige Module umfassen:

Key command modules:

  • workflow_commands.rs - Workflow orchestration
  • job_commands.rs - Job status and management
  • terminal_commands.rs - PTY session control
  • session_commands.rs - Session CRUD operations
  • implementation_plan_commands.rs - Plan generation
  • audio_commands.rs - Voice transcription
  • video_analysis_commands.rs - Video processing
  • device_commands.rs - Mobile device linking

Job-Prozessoren und Workflows

Job-Verarbeitungsarchitektur in desktop/src-tauri/src/jobs/:

Job system components:

  • queue.rs - Priority queue with 8 concurrent workers
  • dispatcher.rs - Job execution dispatcher
  • registry.rs - Processor registration
  • workflow_orchestrator/ - Multi-stage workflow engine
  • processors/ - 12+ job type processors
  • streaming_handler.rs - LLM response streaming

Lokale Persistenz

SQLite-Speicherung in desktop/src-tauri/migrations/consolidated_schema.sql:

Core tables:

  • sessions - Project context and preferences
  • background_jobs - Job records with prompts/responses
  • terminal_sessions - PTY output logs
  • task_description_history - Task version history
  • file_selection_history - File selection tracking
  • project_system_prompts - Per-project overrides
  • key_value_store - Application settings

Terminal-Sitzungen

PTY-Terminal-Implementierung:

Aufgabenbeschreibungs-Stabilität

Der Aufgabenbeschreibungs-Editor enthält Schutzmaßnahmen, um Cursorsprünge zu verhindern:

  • Remote-Updates werden eingereiht, während der Benutzer tippt, und bei Leerlauf oder Blur geleert.
  • Auswahl-Zustand wird verfolgt und nach React-Neurendering wiederhergestellt.
  • Hintergrund-Schreiber rufen sessionActions.updateCurrentSessionFields auf, um Updates zu koordinieren.
  • Multi-Geräte-Sync verwendet sequence_number und version-Felder, um Konflikte zu lösen.

Explore related internals

The background jobs and data model docs explain how the desktop app persists and processes work.