Dónde vive el estado

Tres lugares en el disco, divididos por quién los lee. Cada archivo y directorio que AutoDev mantiene, y qué guarda cada uno.

Dividido por lector #

AutoDev guarda su estado en archivos, y los guarda en tres lugares.

<project> es el nombre de la carpeta del proyecto. <hash> son los 8 primeros caracteres hexadecimales de un SHA-1 de la ruta absoluta completa de la carpeta, así que dos clones con el mismo nombre en lugares distintos nunca comparten una carpeta.

La división viene activada por defecto. Definir AUTODEV_SPLIT_STATE como 0 o false es la única vía de vuelta, y mantiene los archivos de la máquina dentro de .autodev/. Un proyecto usado por última vez antes de la división mueve sus archivos en el primer contacto: la CLI lo hace al iniciarse, y el panel lo hace al activarse. El movimiento copia cada archivo, elimina el original y nunca sobrescribe un archivo que ya esté en el lugar nuevo.

AutoDev nunca toca CLAUDE.md ni AGENTS.md.

En el repositorio #

RutaQué guarda
goal.mdEl objetivo. Cada mensaje que envías, desde el panel o con autodev send, se añade a él bajo un encabezado con la hora, el más nuevo al final. El archivo es tuyo para editarlo.
memory.mdLo que un turno posterior o una noche posterior pagaría por volver a aprender: decisiones y su porqué, restricciones, callejones sin salida. Toda ejecución empieza con uno. Los participantes escriben en él con las herramientas remember, revise y forget, una línea por cada memoria, y tú puedes editarlo.
config.jsonLos ajustes del proyecto. Todas las claves de configuración los enumera, y dice cuáles pocos viven en la máquina.
participants/Un <id>.md por participante. El formato del archivo de participante describe el archivo.
mcp.jsonLa configuración del servidor MCP del propio AutoDev, escrita cuando hace falta por primera vez y pasada a una CLI además de la tuya.

Los commits del propio AutoDev dejan .autodev/ fuera. Hacer commit o no de cualquiera de estos archivos es decisión tuya.

En la máquina, por proyecto #

Estos archivos están en ~/.autodev/<project>-<hash>/.

RutaQué guarda
state.jsonEl estado de la ejecución, de quién es el turno, el heartbeat, un gate o una propuesta pendiente, el gasto y los contadores que acotan una espera, una auditoría y una racha de conversación.
control.jsonEl comando que espera el daemon: none, pause, resume o stop.
daemon.pidEl pid del proceso que supervisa el daemon.
sessions.jsonEl id de sesión de cada participante, con el proveedor al que pertenece.
inbox.jsonLa cola de operaciones enviadas al daemon, como tus mensajes. Solo el daemon la vacía.
checkpoints.jsonLa lista de checkpoints que lee autodev restore.
thread.jsonlEl hilo compartido, un objeto JSON por publicación.
events.jsonlEl log de la actividad de la máquina. El Feed del panel se construye a partir de él.
cursors.jsonPor participante, la última publicación que ha visto.
turn.jsonDe quién es el turno abierto, y si ya publicó.
notices.jsonLos avisos que los participantes te dejaron mientras la ejecución seguía, con sus respuestas, retenciones y descartes.
browser-profile/El perfil de navegador propio de AutoDev, donde viven los inicios de sesión que hiciste para las herramientas de navegador. autodev new-run lo deja donde está.
attachments/Imágenes adjuntas a un mensaje, cuyas rutas lleva el texto del mensaje.
logs/daemon.log y serve.log. Leer los logs los describe.

autodev new-run mueve estos archivos, salvo el perfil del navegador, a una carpeta junto a esta, con su nombre más .run- y el día, y -2, -3 para una segunda el mismo día. También copia goal.md y memory.md allí antes de vaciarlos.

En la máquina, para todos los proyectos #

Estos archivos están en ~/.autodev/.

RutaQué guarda
workspaces.jsonUn índice de todos los proyectos iniciados en esta máquina, que lista autodev workspaces. Se puede reconstruir.
config.jsonLos ajustes de la máquina: suspendOnCompletion y el bloque notify. Todas las claves de configuración explica por qué están aquí.
trust.jsonLas carpetas en las que has confiado. Está fuera del repositorio para que un clon no pueda marcarse a sí mismo como de confianza.
providers.jsonLas CLI de agente que adoptaste. No guarda credenciales, y se puede reconstruir detectándolas de nuevo.
quota.jsonlLas mediciones de cuota. No se puede reconstruir, y nunca rota.
serve.jsonEl descriptor de conexión de autodev serve, con su token. Una máquina ejecuta uno.
team/Tu equipo predeterminado, como archivos de participante. A un proyecto nuevo se le ofrece.

Un archivo dañado #

Un archivo que no se puede analizar se lee como vacío o como predeterminado, nunca como un fallo. El efecto cambia según el archivo:

Toda escritura pasa por un archivo temporal que luego se renombra, así que un lector nunca ve medio archivo.

Qué sobrevive a un reinicio dice de cuáles de estos archivos depende un reinicio.