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 /zh-tw/docs/desktop/internals.md (or send Accept: text/markdown).
桌面外殼內部
啟動頁、導航閘門、外掛棧與配置參考。
啟動頁
視窗先載入 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 應用。