> ## 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 de tarefas e recuperação

Recupera uma submissão incerta sem criar uma tarefa nova.

## Antes de começar

Abra seu projeto supastack baixado em Visual Studio Code usando Arquivo → Abrir pasta e escolha Terminal → Novo Terminal. A raiz do repositório é a pasta que contém package.json, apps e pacotes. Execute o comando abaixo e deixe seu terminal aberto. Se um comando não for reconhecido, conclua o guia de instalação da ferramenta antes de continuar.

Leia o tutorial da plataforma primeiro. Um servidor é o processo do aplicativo que responde às solicitações do navegador ou do telefone. A Web lê apps/web/.env.local, Expo lê apps/mobile/.env.local e os comandos de migração de banco de dados leem root .env. A demonstração sem banco de dados/painel é separada das contas reais/auth, que precisam migrar para Postgres. Uma finalização de compra somente por telefone ou desktop precisa de um back-end da Web executado separadamente.

[Instale as ferramentas e obtenha o código](https://supastack.dev/pt/docs/web/before-you-start.md)

[Aprenda comandos, arquivos e configuração](https://supastack.dev/pt/docs/web/terminal-basics.md)

[Conclua o tutorial inicial da Web](https://supastack.dev/pt/docs/web/ship-in-5-minutes.md)

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


## Instalação e configuração

POST /api/ai/tasks exige um workspace autenticado e uma permissão ativa. Um pedido com chave reserva uma tarefa imutável antes do dispatch. Idempotency-Key aceita 16 a 128 letras ASCII, dígitos, underscores ou hífenes.

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

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


## Fluxo de implementação

Persiste a chave de recuperação antes de submeter. Após um dispatch incerto, reutiliza a mesma chave e o corpo resume; o servidor carrega a entrada original e tenta de novo com a mesma identidade Trigger delimitada à tarefa. Uma entrada modificada sob a mesma chave devolve 409 idempotencyConflict.

HTTP 202 após um enqueue ambíguo significa que o dispatch é incerto. Não prova que o Trigger aceitou o trabalho. Tarefas já em execução ou terminais devolvem o estado guardado sem outro enqueue. A recuperação continua a exigir autenticação, propriedade e permissão.


## Verificação e resolução de problemas

Exercita uma resposta perdida, um conflito de entrada modificada, um pedido de outro workspace e restauro após refresh. Não há dispatcher outbox automático nem garantia exactly-once de ponta a ponta. Não reenfileires uma tarefa em execução sem investigar os seus efeitos secundários.


## Seguinte

[Jobs Trigger.dev](https://supastack.dev/pt/docs/modules/jobs.md)
