For AI agents: fetch the complete documentation index at /llms.txt, the full documentation corpus at /llms-full.txt, the agent skill at /skill.md, or this page as Markdown at /es/docs/desktop/project-structure.md (or send Accept: text/markdown).
Estructura del proyecto
Encuentre el shell de Rust, la página de arranque, los scripts de lanzamiento y el límite con la aplicación web.
Configuración y ajustes
Antes de cualquier paso, lea Antes de empezar y Conceptos básicos de la terminal. Abra la carpeta supastack en su raíz: la carpeta que contiene package.json. Un checkout de Desktop contiene apps/desktop y sus scripts de lanzamiento; el monorepo All Platforms añade el backend Web y la aplicación móvil. Una variable de entorno es una configuración con nombre almacenada en un archivo .env local o en su panel de hosting; el shell lee SUPASTACK_APP_URL como configuración de terminal, no desde un archivo.
1. Abra apps/desktop/src-tauri/src/lib.rs: todo el comportamiento nativo vive en este único archivo.
2. Explore apps/desktop/src-tauri/: configuración, capabilities e iconos.
3. Desde la raíz del repositorio ejecute corepack pnpm --filter @supastack/desktop dev con un backend accesible.
El checkout contiene solo el shell de Tauri: el código fuente de Rust, su configuración, la página de arranque y los scripts de lanzamiento. Las pantallas del producto viven en la aplicación web que carga la ventana: un checkout solo de Desktop no tiene pantallas de aplicación propias. Lea AGENTS.md y .ai/PROJECT_CONTEXT.md antes de cambiar el comportamiento; los documentos espejo de .ai/ registran decisiones que no se ven solo en un archivo.
apps/desktop/src-tauri/src/ Rust — window, tray, menus, deep links, updater
apps/desktop/src-tauri/ tauri.conf.json, capabilities/, Cargo.toml, icons
apps/desktop/ui/ Boot page (index.html + boot.js) shown while loading
apps/desktop/scripts/ Release preflight + update manifest
docs/ Runbooks incl. desktop updates
.agents/skills/ Task guides for coding agentsDónde pertenece un cambio
Antes de editar, decida qué lado es dueño del cambio: cualquier cosa que un usuario vea como UI de producto pertenece a la aplicación web; solo el comportamiento a nivel de SO pertenece a Rust.
- Comportamiento de ventana, bandeja, menú, atajo o instancia única →
apps/desktop/src-tauri/src/lib.rs. - Un nuevo permiso de webview →
apps/desktop/src-tauri/capabilities/default.json: amplíe solo cuando una función nativa lo necesite. - Identificador de paquete, versión, endpoint del actualizador u opciones de plugins →
apps/desktop/src-tauri/tauri.conf.json. - Iconos de producto de marcador de posición → reemplace
placeholder-icon.pngy ejecute el script de iconos. - Comportamiento de arranque, carga o capa sin conexión →
apps/desktop/ui/. - Cualquier pantalla, configuración o dato de producto → el repositorio de la aplicación web: el shell nunca bifurca UI de producto.
Flujo de implementación
Para un cambio nativo, edite lib.rs, ejecute cargo check y las pruebas de Rust, luego ejercite la ventana en cada SO de destino: el comportamiento de bandeja, atajo y deep link difiere por plataforma. El skill add-a-desktop-capability en .agents/skills/ recorre este mismo orden.
Verificación y solución de problemas
cargo check atrapa errores de compilación y cargo test cubre la lógica pura. La verificación real es la ventana en ejecución en Windows, macOS y Linux: la bandeja, el atajo y los deep links no pueden probarse solo con tests.
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck