[Bug] Session transcript corruption when executing commands during server tool execution
Bug Description
Diagnóstico
No es un bug en tu código de CeapsiApi: es el transcript de esa sesión de Claude Code que quedó corrupto. La secuencia fue:
- En esa sesión se llamó a la herramienta advisor (una server-tool, tarda unos segundos en responder).
- Mientras el advisor estaba "pensando", se ejecutaron comandos /plugin (instalaste los plugins github y commit-commands).
- Claude Code intercaló esos 4 registros de /plugin entre el bloque de llamada (server_tool_use, línea 169) y el bloque de respuesta
(advisor_tool_result, línea 174) en el archivo de sesión.
Como Claude Code agrupa los bloques de una misma respuesta por su message.id y exige que sean contiguos, esos 4 registros en el medio parten el par: la
llamada queda en un mensaje y el resultado queda huérfano al inicio de otro (messages.7.content.0). La API rechaza eso en cada turno → por eso la sesión
quedó trabada.
La prueba está en el mismo archivo: hay otro par de advisor (líneas 59-60) que sí está contiguo y por eso nunca falla. Mi reparación consiste en dejar el
par 169-174 idéntico a ese par sano.
Nota de comportamiento: es un bug de Claude Code. Hasta que lo arreglen, no ejecutes comandos / mientras un advisor() está en curso — intercala registros
y rompe el par.
Verificaciones (ya hechas, solo lectura)
- Los 4 registros a borrar (170-173) son los logs de /plugin; nada fuera de ese tramo los referencia. Borrarlos es seguro y los plugins siguen instalados
(su estado vive en config, no en el transcript).
- Es el único par roto del archivo (el scan estructurado encontró solo 2 server_tool_use, ambos de advisor).
Environment Info
- Platform: darwin
- Terminal: ghostty
- Version: 2.1.157
- Feedback ID: ffd24751-9eb9-46f9-b126-11e280f0a82d
Errors
[]This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗