> ## Documentation Index
> Fetch the complete documentation index at: https://supastack.dev/llms.txt
> Use this file to discover all available pages before exploring further.
> For the full documentation corpus in one file, fetch: https://supastack.dev/llms-full.txt

# 桌面外壳内部

启动页、导航闸门、插件栈与配置参考。

## 启动页

窗口先加载 apps/desktop/ui 中打包的页面：它读取注入的 __SUPASTACK_APP_URL__，以十秒超时探测后端，可达时跳转过去。后端不可达会渲染 Can't reach host 状态并提供 Retry —— 网络恢复时也会自动重试 —— 因此冷启动永远不是空白窗口。带 ?target= 查询参数可以在普通浏览器中演练这个页面。


## 原生能力是插件，不是 IPC

外壳没有注册任何自定义命令 —— 每个原生能力都经 Tauri 插件抵达：带 deep-link 特性的 single-instance（在 Windows 与 Linux 上转发二次启动参数）、deep-link、window-state（只管几何 —— 缩放与频道各有自己的旁车文件）、opener、dialog、process（更新后重启）、updater、autostart、global-shortcut，外加 tray-icon 特性。扩展外壳意味着加一个插件和一项权限，而不是魔改 webview 界面。


## 导航闸门

导航只对打包的外壳页面、开发服务器来源以及精确配置的应用来源放行。无凭据的 HTTP(S)、mailto:、tel: 链接经 opener 插件交给系统浏览器；其余 scheme 一律取消。窗口尚不存在时到达的深链接会缓冲在托管状态中，窗口出现后生效。


## 配置与能力参考

tauri.conf.json 设定 productName、version（发布前提升 —— 工作流可覆盖它）、标识符（check:release-config 要求从 com.supastack.desktop 改掉）、supastack 深链接 scheme、更新器哨兵块、打包目标与占位图标。capabilities/default.json 授予 core:default 加 opener:allow-open-url —— 只有新插件需要更多权限时才放宽。


## 外壳如何测试

corepack pnpm --filter @supastack/desktop test 对启动页做语法检查，并运行覆盖 URL 解析、深链接、缩放与频道逻辑的 Rust 单元套件；typecheck 执行 cargo check。JavaScript 发布脚本由仓库的 vitest 套件覆盖，CI 管线则对每次改动在三种操作系统上构建真实安装包。

```
corepack pnpm --filter @supastack/desktop typecheck
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop check:release-config
```


## 验证与排障

改动 src-tauri 后跑一遍包级套件，然后在每个目标操作系统上手动验证原生行为 —— 单元检查证明的是规则，不是窗口。新的外壳行为要收进插件与菜单项里，让 webview 保持为一个普通的 Web 应用。


## 下一篇

[模块概览](https://supastack.dev/zh/docs/modules.md)
