> ## 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-tw/docs/web/before-you-start.md)

[學習命令、檔案和配置](https://supastack.dev/zh-tw/docs/web/terminal-basics.md)

[完成Web首次執行教程](https://supastack.dev/zh-tw/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-tw/docs/modules/jobs.md)
