> ## 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

# 项目结构

找到 Rust 外壳、启动页、发布脚本以及与 web 应用的边界。

## 安装与配置

开始任何步骤前，请阅读[开始之前](https://supastack.dev/zh/docs/desktop/before-you-start.md)和[终端基础](https://supastack.dev/zh/docs/desktop/terminal-basics.md)。在根目录打开 supastack 文件夹——即包含 package.json 的文件夹。Desktop checkout 包含 apps/desktop 及其发布脚本；All Platforms monorepo 还附带 Web 后端和移动应用。环境变量是存储在本地 .env 文件或托管平台控制台中的命名设置；外壳把 SUPASTACK_APP_URL 作为终端设置读取，而不是从文件中读取。

1. 打开 `apps/desktop/src-tauri/src/lib.rs`——所有原生行为都在这一个文件里。

2. 浏览 `apps/desktop/src-tauri/`——配置、能力和图标。

3. 在存储库根目录运行 `corepack pnpm --filter @supastack/desktop dev`，并确保后端可访问。

此 checkout 只包含 Tauri 外壳：Rust 源码、它的配置、启动页和发布脚本。产品界面位于窗口加载的 web 应用中——仅含 Desktop 的 checkout 自己没有应用界面。修改行为前先阅读 AGENTS.md 和 .ai/PROJECT_CONTEXT.md；`.ai/` 镜像文档记录了单从文件看不出的决策。

```
apps/desktop/src-tauri/src/    Rust — window, tray, menus, deep links, updater
apps/desktop/src-tauri/        tauri.conf.json, capabilities/, Cargo.toml, icons
apps/desktop/ui/               Boot page (index.html + boot.js) shown while loading
apps/desktop/scripts/          Release preflight + update manifest
docs/                          Runbooks incl. desktop updates
.agents/skills/                Task guides for coding agents
```


## 改动应该放在哪

编辑前先确定改动属于哪一侧：用户视为产品界面的东西属于 web 应用；只有操作系统层面的行为才属于 Rust。

[构建您的第一个桌面端功能](https://supastack.dev/zh/docs/desktop/first-feature.md)

- 窗口、托盘、菜单、快捷键或单实例行为 → `apps/desktop/src-tauri/src/lib.rs`。
- 新的 webview 权限 → `apps/desktop/src-tauri/capabilities/default.json`——只有在原生功能需要时才扩大。
- 包标识符、版本、更新器端点或插件选项 → `apps/desktop/src-tauri/tauri.conf.json`。
- 占位产品图标 → 替换 `placeholder-icon.png` 并运行图标脚本。
- 启动、加载或离线遮罩行为 → `apps/desktop/ui/`。
- 任何产品界面、设置或数据 → web 应用存储库——外壳绝不另起产品界面。


## 实现流程

做原生改动时，编辑 `lib.rs`，运行 `cargo check` 和 Rust 测试，然后在每个目标操作系统上实际操作窗口——托盘、快捷键和 deep-link 行为因平台而异。`.agents/skills/` 中的 `add-a-desktop-capability` 技能按同样的顺序走一遍。


## 验证与排障

`cargo check` 捕获编译错误，`cargo test` 覆盖纯逻辑。真正的验证是在 Windows、macOS 和 Linux 上运行真实窗口——托盘、快捷键和 deep link 仅靠测试无法证明。

```
corepack pnpm --filter @supastack/desktop test
corepack pnpm --filter @supastack/desktop typecheck
```


## 下一篇

[构建你的第一个功能](https://supastack.dev/zh/docs/desktop/first-feature.md)
