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

# 任务 API 与恢复

恢复一次不确定的提交，而不是新建任务。

## 开始之前

使用“文件”→“打开文件夹”在 Visual Studio Code 中打开下载的 supastack 项目，然后选择“终端”→“新建终端”。存储库根目录是包含 package.json、apps 和 packages 的文件夹。运行下面的命令并保持终端打开。如果无法识别命令，请先完成工具安装指南，然后再继续。

首先阅读平台教程。服务器是响应浏览器或电话请求的应用程序进程。 Web 读取 apps/web/.env.local，Expo 读取 apps/mobile/.env.local，数据库迁移命令读取 root .env。无数据库/仪表板演示与真实/身份验证帐户分开，需要迁移Postgres。仅电话或桌面结帐需要单独运行的 Web 后端。

[安装工具并获取代码](https://supastack.dev/zh/docs/web/before-you-start.md)

[学习命令、文件和配置](https://supastack.dev/zh/docs/web/terminal-basics.md)

[完成Web首次运行教程](https://supastack.dev/zh/docs/web/ship-in-5-minutes.md)

```
corepack pnpm --filter @supastack/web dev
```


## 安装与配置

POST /api/ai/tasks 要求已认证的工作区与有效权限。带键请求会在派发前预留一个不可变任务。Idempotency-Key 接受 16–128 个 ASCII 字母、数字、下划线或连字符。

```
POST /api/ai/tasks
Idempotency-Key: a-stable-client-submission-key

Recovery body: { "resume": true }
Status: GET /api/ai/tasks/{taskId}
```


## 实现流程

提交前先持久化恢复键。派发不确定时，复用同一键并带上 resume 请求体；服务端加载原始输入，用同一个任务级 Trigger 身份重试。同一键下变更输入会返回 409 idempotencyConflict。

模糊入队后的 HTTP 202 表示派发不确定，并不证明 Trigger 已接受该工作。已在运行或已终结的任务直接返回已保存状态，不再入队。恢复仍要求认证、归属与权限。


## 验证与排障

演练响应丢失、输入变更冲突、跨工作区请求与刷新恢复。系统没有自动 outbox 派发器，也没有端到端 exactly-once 保证。未调查副作用之前，不要把运行中的任务重置回排队。


## 下一篇

[Trigger.dev 任务](https://supastack.dev/zh/docs/modules/jobs.md)
