> ## 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、アプリ、およびパッケージを含むフォルダーです。そこで以下のコマンドを実行し、ターミナルを開いたままにしておきます。コマンドが認識されない場合は、続行する前にツールのインストール ガイドを完了してください。

まずプラットフォームのチュートリアルをお読みください。サーバーは、ブラウザまたは電話のリクエストに応答するアプリ プロセスです。 Web は apps/web/.env.local を読み取り、Expo は apps/mobile/.env.local を読み取り、データベース移行コマンドは root .env を読み取ります。データベースなしの /dashboard デモは、Postgres の移行が必要な実際の /auth アカウントとは別のものです。電話またはデスクトップのみのチェックアウトには、別途実行される Web バックエンドが必要です。

[ツールをインストールしてコードを取得](https://supastack.dev/ja/docs/web/before-you-start.md)

[コマンド、ファイル、設定を学ぶ](https://supastack.dev/ja/docs/web/terminal-basics.md)

[Web の初回実行チュートリアルを完了する](https://supastack.dev/ja/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 ID で再試行します。同じキーで変更された入力は 409 idempotencyConflict を返します。

あいまいな enqueue 後の HTTP 202 はディスパッチが不確かであることを意味します。Trigger が作業を受け入れた証明ではありません。すでに実行中または終了したタスクは、別の enqueue なしに保存済み状態を返します。復旧には依然として認証、所有権、権限が必要です。


## 検証とトラブルシューティング

失われた応答、変更された入力の競合、別のワークスペースからのリクエスト、リフレッシュ後の復元を実行します。自動 outbox ディスパッチャーもエンドツーエンドの exactly-once 保証もありません。副作用を調査せずに実行中タスクを再キューしないでください。


## 次へ

[Trigger.dev ジョブ](https://supastack.dev/ja/docs/modules/jobs.md)
