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 /pt/docs/desktop/internals.md (or send Accept: text/markdown).
Por dentro do shell desktop
Página de arranque, portão de navegação, stack de plugins e referência de configuração.
A página de arranque
A janela carrega primeiro a página embebida em apps/desktop/ui: ela lê o __SUPASTACK_APP_URL__ injetado, sonda o backend com um timeout de dez segundos e reencaminha para ele quando alcançável. Um backend inalcançável renderiza um estado Can't reach host com um Retry que também dispara na recuperação da rede, por isso um arranque a frio nunca mostra uma janela em branco. Um parâmetro de query ?target= exercita a página num browser simples.
As funcionalidades nativas são plugins, não IPC
O shell não regista comandos personalizados — cada capacidade nativa chega através de plugins Tauri: single-instance com a feature deep-link (que encaminha argumentos de segundo lançamento no Windows e Linux), deep-link, window-state (só geometria — zoom e canal mantêm os seus próprios sidecars), opener, dialog, process (reinício após update), updater, autostart e global-shortcut, mais a feature tray-icon. Estender o shell significa adicionar um plugin e uma permissão, não fazer fork de UI da webview.
O portão de navegação
A navegação fica para as páginas do shell embebidas, a origem do dev server e a origem exata de app configurada. Links HTTP(S) sem credenciais, mailto: e tel: saem pelo browser do sistema via plugin opener; qualquer outro esquema é cancelado. Um deep link que chega antes de a janela existir fica em buffer no estado gerido e é aplicado assim que ela existe.
Referência de configuração e capacidades
tauri.conf.json define productName, version (incrementa antes de uma release — o workflow consegue sobrepor), o identifier (check:release-config exige mudá-lo de com.supastack.desktop), o scheme de deep link supastack, o bloco sentinela do updater, os alvos de bundle e os ícones placeholder. capabilities/default.json concede core:default mais opener:allow-open-url — alarga-o só quando um plugin novo precisar de mais.
Como o shell é testado
corepack pnpm --filter @supastack/desktop test faz syntax-check à página de arranque e corre a suite de unidades Rust cobrindo resolução de URL, deep links, zoom e lógica de canal; typecheck corre cargo check. Os scripts de release em JavaScript estão cobertos pelas suites vitest do repositório, e o pipeline de CI constrói instaladores reais nos três sistemas operativos para cada mudança.
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-configVerificação e resolução de problemas
Corre a suite do pacote depois de mexer em src-tauri e depois verifica o comportamento nativo à mão em cada SO alvo — os checks de unidade provam as regras, não a janela. Mantém comportamento novo do shell dentro de plugins e itens de menu para que a webview continue uma app web simples.