Leer los logs

Dónde escribe AutoDev lo que hizo y por qué, los archivos que guarda, los eventos que explican una parada y cómo rotan los archivos.

events.jsonl #

events.jsonl es el registro solo de añadidos de todo lo que hizo AutoDev. Vive en el lado de la máquina, en ~/.autodev/<project>-<hash>/, donde la carpeta es el nombre de la carpeta de tu proyecto seguido de un hash de su ruta completa. Dónde vive el estado enumera qué más hay en ella.

Cada línea es un objeto JSON con estos campos: ts, level (info, warn o error), type, message y, cuando se aplican, role, task y data. Una etiqueta task se corta a 200 caracteres. El motivo de que una ejecución se pausara o se detuviera es uno de estos eventos, y el informe lee el último de ellos para imprimir su primera línea.

Estos son los tipos que explican una parada o una espera:

TipoQué dice
loop.budget, loop.max, loop.stuck, loop.wait_expiredUn tope: gasto o tiempo de ejecución, iteraciones, falta de progreso, o una espera demasiado larga.
loop.infra_retry, loop.infra_giveup, thread.turn_failedUn turno que falló, el reintento que sigue y la pausa tras 12 seguidos.
thread.no_post, thread.silent_participant, loop.silent_participantUn turno que terminó sin publicación, y la pausa tras tres.
loop.accept_exhausted, loop.talk_exhausted, loop.no_teamUna pausa para revisión: la auditoría, un hilo sin trabajo en él, o ningún equipo.
loop.gated, gate.requested, gate.approved, gate.denied, gate.auto_approved, loop.gate_failedUn gate, y qué fue de él.
loop.awaiting_user, loop.completed, loop.stopped, loop.pausedLa ejecución te pasó el turno, terminó, o fue detenida o pausada.
step.error, loop.error, supervisor.restart, supervisor.giveupUna caída, el reinicio que sigue y el punto en que AutoDev deja de reiniciar.
failover.switched, failover.routed, failover.exhausted, provider.unreachable, provider.reachableUn límite de uso, o una caída, y adónde fue el turno.
quota.record_failedNo se pudo escribir el ledger de cuota. La llamada tuvo éxito de todos modos.
serve.tunnel, serve.tunnel_failed, serve.tunnel_down, serve.port_takenEl servidor del teléfono y su túnel.

La ejecución se detuvo y por qué enumera los mensajes de los que detienen una ejecución.

daemon.log #

logs/daemon.log, en la misma carpeta, refleja los eventos para que los lea una persona. Una línea es un evento:

daemon.log
<ts> [WARN] <type> (<role> · <task>): <message>

Un evento info no lleva marca de nivel, y un evento warn o error lleva [WARN] o [ERROR]. La parte (<role> · <task>) se omite cuando el evento no tiene ninguno de los dos. Lo que imprime el propio proceso desacoplado, un error no tratado incluido, se añade al mismo archivo. Para leer el final en una terminal:

powershell
Get-Content <folder>\logs\daemon.log -Tail 50

Los dos archivos rotan cuando events.jsonl pasa de 10 MiB. Cada uno se renombra al mismo nombre terminado en .1, y el .1 anterior se borra, así que se conserva una generación más antigua. Un autodev serve desacoplado, y el servidor que inicia el panel, escriben en su propio logs/serve.log, que no rota.

El ledger de cuota es otro archivo, en ~/.autodev/, y nunca rota. Dónde vive el ledger lo describe.

El canal de salida de VS Code #

La extensión escribe sus propias notas en un canal Output llamado AutoDev. Registra que la extensión se activó, y desde dónde cargó su núcleo. También registra errores de sus refrescos periódicos, con el prefijo status tick: y fleet tick:, errores al mover el estado, con el prefijo migrate:, de la sonda de proveedores, con el prefijo probe:, y del emparejamiento, con el prefijo pairing:. chrome disabled: could not load ... y FAILED to load the core significan que el núcleo de la extensión no pudo cargarse. Ese canal es el log de la extensión, y es independiente de los archivos de arriba.

Esta página no describe todos los mensajes que la extensión escribe ahí.