# 应用 & 应用主版本

本文专门讲透「应用」和「应用主版本」，它们是后续 Chat / 任务的根基。

## 在哪里看到应用？

进入 [应用](#/apps) 页面，你会看到一个表格，每行是一个应用。常用列：

| 列 | 含义 |
|----|------|
| ID | 应用唯一编号，跨用户全局唯一 |
| 名称 | 你给应用起的可读名字 |
| 状态 | 应用当前所处阶段，例如 `创建中` / `创建失败` / `更新中` / `成功`，详情见下方说明；点击徽章可看创建详情 |
| 链接 | 打开测试 / 生产环境页面 |

「状态」列的常见含义：

| 状态 | 含义 |
|------|------|
| `创建中` | 平台正在初始化（建仓库、申请数据库、生成默认部署等），稍等即可 |
| `创建失败` | 初始化过程中出错，点击徽章可看具体失败描述 |
| `更新中` | 应用配置正在异步收尾或重新部署，完成后会恢复可用 |
| `成功` | 应用创建成功，可以正常使用 |

## 添加一个新应用：两条路径

点击右上角 **+ 添加应用**，会先弹出一个选择窗。

### 路径 A — 从模板生成默认应用（推荐新手）

1. 选「**从模板生成默认应用**」
2. （可选）填写应用名称，留空则系统自动生成
3. **模板**：选 `web - 网站`（目前只支持这一种，后续会扩展）
4. 点 **创建**

平台会异步帮你做完：建仓库、初始化文档、申请数据库（按环境分配）、生成默认部署配置。状态从 `创建中` 变为 `成功` 后即可使用。

### 路径 B — 手动填写应用配置

1. 选「**手动填写应用配置**」
2. 进入应用配置向导（多步流程）：填应用名、关联代码仓库、云部署、域名、构建命令、密钥等
3. 保存后回到应用列表，等状态变成 `成功`

适合"我已经有自己的仓库、想接进来"的进阶玩家。

## 应用主版本到底是什么

应用主版本指的是**这个应用在代码仓库中的"默认分支"**——通常是 `main` 或 `dev`。

- 所有 Chat / 任务在开始干活时，都**先以应用主版本为基础**拉一条临时分支
- 干完后视情况合回应用主版本（或先合到任务主版本，再合到应用主版本）
- "线上"实际是从默认分支某个 commit 发布出去的——不一定就是主版本最新的 commit

可以这样记：**应用主版本 = 一条分支**，**线上版本 = 这条分支上某次发布的 commit**。

## 切换 / 修改应用配置

在 [应用](#/apps) 列表行末尾的"操作"列，可以：

- **编辑**：进入向导，修改部署、默认分支、域名等
- **发布**：跳转到「发布详情」页，查看历次发布记录，并触发生产发布
- **删除**：彻底移除（不可恢复，谨慎）

## 怎么把代码发布到生产

进入「发布详情」页后，**不需要你挑某个 commit**，两种方式任选其一：

1. **直接发布生产**
   - 在顶部「应用」筛选里选中目标应用（必选，否则按钮不显示）
   - 点右上角紫色 **发布生产** 按钮
   - 在弹窗里写一段发布描述（必填，最多 512 字），点 **发布**
   - 平台会基于默认分支当前的状态触发一次新的生产发布，下方表格里会出现一条 `生产` 环境的新记录
2. **复用已有测试构建上线**
   - 表格里每条 `测试` + 状态 `成功` + Task ID = 0 + Chat ID = 0 的记录，行末会有 **上线** 按钮（这种记录是某次合并到默认分支后自动构建出来的）
   - 点 **上线** → 弹出确认框 → 确认后该次构建会被切到生产环境
   - 适合"前面已经在测试环境验过了，希望把这一次的镜像直接搬到线上"

> 默认分支的代码**只有发布过才会真的对外生效**。"合并到应用主版本"只是把代码合到了默认分支，没发布之前线上访问的还是上一次发布的版本。

## 常见疑问

**Q：从模板创建会立刻有可访问的测试链接吗？**
A：模板路径会自动触发一次测试环境部署，状态变 `成功` 后稍等，"链接"列里的 `测试` 按钮就能打开。

**Q：应用主版本可以是非默认分支吗？**
A：可以在配置里改"默认分支"，所有后续 Chat / 任务都会以新的为准。

下一步推荐：`03-tasks.md`
