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/internals.md (or send Accept: text/markdown).
Dentro del shell de escritorio
Página de arranque, barrera de navegación, pila de plugins y referencia de configuración.
La página de arranque
La ventana carga primero la página empaquetada de apps/desktop/ui: lee el __SUPASTACK_APP_URL__ inyectado, sondea el backend con un tiempo de espera de diez segundos y le reenvía cuando es alcanzable. Un backend inalcanzable renderiza un estado «Can't reach host» con un Reintentar que también se dispara al recuperar la red, así que un arranque en frío nunca muestra una ventana en blanco. Un parámetro de consulta ?target= ejercita la página en un navegador normal.
Las funciones nativas son plugins, no IPC
El shell no registra comandos personalizados: cada capacidad nativa llega mediante plugins de Tauri —single-instance con la función deep-link (que enruta los argumentos del segundo lanzamiento en Windows y Linux), deep-link, window-state (solo geometría —el zoom y el canal guardan sus propios archivos adyacentes), opener, dialog, process (reinicio tras actualizar), updater, autostart y global-shortcut, más la función tray-icon—. Extender el shell significa añadir un plugin y un permiso, no bifurcar la UI del webview.
La barrera de navegación
La navegación se queda para las páginas del shell empaquetado, el origen del dev-server y el origen exacto de la app configurada. Los enlaces HTTP(S) sin credenciales, mailto: y tel: salen por el navegador del sistema mediante el plugin opener; cualquier otro esquema se cancela. Un enlace profundo que llega antes de que exista la ventana se guarda en búfer en el estado gestionado y se aplica cuando existe.
Referencia de configuración y capacidades
tauri.conf.json fija productName, version (incréméntala antes de una release —el workflow puede sobrescribirla—), el identifier (check:release-config exige cambiarlo de com.supastack.desktop), el esquema de enlace profundo supastack, el bloque centinela del updater, los destinos de bundle y los iconos de placeholder. capabilities/default.json concede core:default más opener:allow-open-url: amplíalo solo cuando un plugin nuevo necesite más.
Cómo se prueba el shell
corepack pnpm --filter @supastack/desktop test hace un chequeo de sintaxis de la página de arranque y ejecuta la suite de unidad de Rust que cubre la resolución de URL, los enlaces profundos, el zoom y la lógica de canal; typecheck ejecuta cargo check. Los scripts de release en JavaScript están cubiertos por las suites vitest del repositorio, y el pipeline de CI compila instaladores reales en los tres sistemas operativos para cada cambio.
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-configVerificación y solución de problemas
Ejecuta la suite del paquete tras tocar src-tauri, y después verifica el comportamiento nativo a mano en cada SO de destino: las comprobaciones de unidad prueban las reglas, no la ventana. Mantén el comportamiento nuevo del shell dentro de plugins y elementos de menú para que el webview siga siendo una app web normal.