> ## 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-tw/docs/desktop/configuration.md)
