Volver a Documentación
Escritorio

Internos de la Aplicación de Escritorio

Shell Tauri v2, capa de comandos Rust, sesiones PTY y gestión del estado de la UI.

14 min de lectura

La aplicación de escritorio es un shell Tauri v2 (versión 2.9.1) ejecutando una UI React. Los servicios Rust exponen comandos para flujos de trabajo, sesiones de terminal y configuración mientras persisten el estado localmente en SQLite. El modelo de permisos basado en capacidades proporciona controles de seguridad granulares para acceso al sistema de archivos, solicitudes HTTP, ejecución de shell y notificaciones del sistema.

Visión general del shell de escritorio

Captura de pantalla mostrando el editor de planes, pestañas de terminal y barra lateral de estado de trabajos.

Shell de escritorio PlanToCode
Click to expand
La aplicación de escritorio mostrando el panel de planes de implementación y la barra lateral.

UI React y superficie

La UI React renderiza el editor de descripción de tareas, visor de planes y paneles de terminal:

Comandos Tauri

Los comandos en desktop/src-tauri/src/commands/ exponen funcionalidad Rust a la UI React. Los módulos clave incluyen:

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

Procesadores de trabajos y flujos de trabajo

Arquitectura de procesamiento de trabajos en 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

Persistencia local

Almacenamiento SQLite en 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

Sesiones de terminal

Implementación de terminal PTY:

Estabilidad de la descripción de tarea

El editor de descripción de tarea incluye salvaguardas para prevenir saltos del cursor:

  • Las actualizaciones remotas se encolan mientras el usuario está escribiendo y se vacían al estar inactivo o al perder el foco.
  • El estado de selección se rastrea y restaura después de re-renderizados de React.
  • Los escritores en segundo plano llaman a sessionActions.updateCurrentSessionFields para coordinar actualizaciones.
  • La sincronización multi-dispositivo usa campos sequence_number y version para resolver conflictos.

Explore related internals

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