Onde o estado fica

Três lugares no disco, divididos por quem lê. Cada arquivo e diretório que o AutoDev mantém, e o que cada um guarda.

Dividido por leitor #

O AutoDev guarda o estado em arquivos, e os guarda em três lugares.

<project> é o nome da pasta do projeto. <hash> são os 8 primeiros caracteres hexadecimais de um SHA-1 do caminho absoluto completo da pasta, então dois clones com o mesmo nome em lugares diferentes nunca compartilham uma pasta.

A divisão vem ligada por padrão. Definir AUTODEV_SPLIT_STATE como 0 ou false é o único caminho de volta, e mantém os arquivos da máquina dentro de .autodev/. Um projeto usado pela última vez antes da divisão move os arquivos no primeiro contato: a CLI faz isso quando inicia, e o painel faz quando ativa. A movimentação copia cada arquivo, remove o original e nunca sobrescreve um arquivo que já esteja no lugar novo.

O AutoDev nunca toca em CLAUDE.md nem em AGENTS.md.

No repositório #

CaminhoO que guarda
goal.mdO objetivo. Cada mensagem que você envia, pelo painel ou com autodev send, é acrescentada a ele sob um título com a hora, a mais nova por último. O arquivo é seu para editar.
memory.mdO que um turno posterior ou uma noite posterior pagaria para reaprender: decisões e o porquê, restrições, becos sem saída. Toda execução começa com um. Os participantes escrevem nele com as ferramentas remember, revise e forget, uma linha para cada memória, e você pode editá-lo.
config.jsonAs configurações do projeto. Todas as chaves de configuração as lista, e diz quais poucas ficam na máquina.
participants/Um <id>.md por participante. O formato do arquivo de participante descreve o arquivo.
mcp.jsonA configuração do servidor MCP do próprio AutoDev, escrita quando é necessária pela primeira vez e passada a uma CLI além da sua.

Os commits do próprio AutoDev deixam .autodev/ de fora. Commitar ou não qualquer um desses arquivos é decisão sua.

Na máquina, por projeto #

Estes arquivos ficam em ~/.autodev/<project>-<hash>/.

CaminhoO que guarda
state.jsonO status da execução, de quem é o turno, o heartbeat, um gate ou uma proposta pendente, o gasto e os contadores que limitam uma espera, uma auditoria e uma sequência de conversa.
control.jsonO comando que espera o daemon: none, pause, resume ou stop.
daemon.pidO pid do processo que supervisiona o daemon.
sessions.jsonO id de sessão de cada participante, com o provedor a que pertence.
inbox.jsonA fila de operações enviadas ao daemon, como as suas mensagens. Só o daemon a esvazia.
checkpoints.jsonA lista de checkpoints que o autodev restore lê.
thread.jsonlA thread compartilhada, um objeto JSON por post.
events.jsonlO log da atividade da máquina. O Feed do painel é montado a partir dele.
cursors.jsonPor participante, o último post que ele viu.
turn.jsonDe quem é o turno aberto, e se já postou.
notices.jsonOs avisos que os participantes deixaram para você enquanto a execução seguia, com suas respostas, retenções e dispensas.
browser-profile/O perfil de navegador do próprio AutoDev, onde ficam os logins que você fez para as ferramentas de navegador. autodev new-run o deixa onde está.
attachments/Imagens anexadas a uma mensagem, cujos caminhos o texto da mensagem leva.
logs/daemon.log e serve.log. Lendo os logs os descreve.

autodev new-run move esses arquivos, exceto o perfil do navegador, para uma pasta ao lado desta, com o nome dela mais .run- e o dia, e -2, -3 para uma segunda no mesmo dia. Ele também copia goal.md e memory.md para lá antes de esvaziá-los.

Na máquina, para todos os projetos #

Estes arquivos ficam em ~/.autodev/.

CaminhoO que guarda
workspaces.jsonUm índice de todo projeto iniciado nesta máquina, que o autodev workspaces lista. Pode ser reconstruído.
config.jsonAs configurações da máquina: suspendOnCompletion e o bloco notify. Todas as chaves de configuração explica por que estão aqui.
trust.jsonAs pastas em que você confiou. Fica fora do repositório para que um clone não possa se marcar como confiável.
providers.jsonAs CLIs de agente que você adotou. Não guarda credenciais, e pode ser reconstruído detectando-as de novo.
quota.jsonlAs medições de cota. Não pode ser reconstruído, e nunca é rotacionado.
serve.jsonO descritor de conexão do autodev serve, com o token dele. Uma máquina roda um.
team/Sua equipe padrão, como arquivos de participante. Um projeto novo a recebe como oferta.

Um arquivo danificado #

Um arquivo que não faz parse é lido como vazio ou como padrão, nunca como uma falha. O efeito muda por arquivo:

Toda escrita passa por um arquivo temporário que depois é renomeado, então um leitor nunca vê meio arquivo.

O que sobrevive a um reinício diz de quais desses arquivos um reinício depende.