← Artículos

Tu commit lleva el enlace de tu chat con Claude

· 6 min de lectura

Si le pides código a Claude desde el navegador o desde Control Remoto, al mensaje del commit se le añade una línea con el enlace a tu sesión. Se queda en el historial del repositorio y, si es público, lo ve cualquiera. Se apaga poniendo attribution.sessionUrl en false.

Abrí tres repositorios públicos de desconocidos y los tres tenían la misma línea al final del mensaje del commit: el enlace a la conversación de Claude donde nació ese código. No es un fallo. Es el valor por defecto.

Qué es exactamente

Cuando le pides código a Claude desde el navegador, o desde Control Remoto, y ese trabajo termina en un commit, al mensaje se le añade una línea de atribución. Junto al clásico `Co-Authored-By` viaja también un enlace a la sesión donde salió ese código. Esa línea se queda en el historial del repositorio. Y el historial de git no es una foto del presente: es un archivo. Si borras el archivo, la línea sigue en el commit. Si el repositorio es público, cualquiera que haga clic la lee. En uno de los tres commits que miré, el mismo enlace aparece nueve veces: una por cada punto del mensaje.

Este sistema es el que enseño dentro de la comunidad MÁQUINA IA: las estaciones, los gates y el código que lo sostiene.

El matiz que casi nadie cuenta

Aquí es donde mucha gente se asusta de más. Un colaborador de Anthropic lo explicó en el propio issue del repositorio, y es literal: el enlace solo se añade en sesiones web y de Control Remoto. Traducción práctica: si trabajas en la terminal de tu portátil, esa línea no viaja. Si le pides trabajo a Claude desde el navegador, o desde el móvil, sí. Y ese es justo el caso de uso que más ha crecido: el arreglo rápido que se te ocurre cuando no estás delante de tu equipo.

La cuenta que hace interesante la historia

La función se introdujo en la versión 2.1.9 del changelog: *"Added session URL attribution to commits and PRs created from web sessions"*. El ajuste para apagarla aparece en la 2.1.183: *"Added attribution.sessionUrl setting to omit the claude.ai session link from commits and PRs in web and Remote Control sessions"*. Haz la resta: 174 versiones con la función encendida y sin una forma limpia de quitarla. No es un error de código. Es una decisión de valor por defecto, que es una cosa muy distinta.

Y sí, hubo aviso

Hay un issue abierto en junio pidiendo exactamente esto: que venga apagado y que tú decidas encenderlo. 110 pulgares arriba. 24 comentarios. El issue está cerrado, y con un argumento razonable: el ajuste existe, así que el problema técnico está resuelto. Pero fíjate en lo que no se resolvió, que es lo que pedían esas 110 personas. No pedían un interruptor. Pedían que el valor por defecto fuera el contrario. La diferencia entre esas dos cosas es todo:

  • Un ajuste protege a quien lee la documentación.
  • Un valor por defecto protege a todos los demás.

Y la inmensa mayoría de la gente que usa una herramienta nunca abre el archivo de configuración. No por descuido: porque no es su trabajo.

El dato honesto

Aquí me toca bajarle el tono a todo lo anterior, porque es lo justo. Lo que está verificado es que el identificador de la sesión queda público. No está verificado que un extraño pueda abrir esa sesión y leer lo que escribiste. Son dos afirmaciones distintas y solo una está probada. Por eso no vas a leerme decir que tus conversaciones son públicas. No lo sé, y decirlo sería justo el tipo de exageración que hace que dentro de un mes nadie te crea cuando el problema sea de verdad. Lo que sé es que estás publicando un identificador que no elegiste publicar. Y eso ya es razón suficiente para apagarlo.

Qué hacer con lo que ya subiste

Reescribir el historial de un repositorio público es caro y le rompe el trabajo a quien ya lo clonó. Así que la decisión depende de una sola pregunta: ¿ese enlace apunta a una sesión donde hablaste de algo sensible? Si la respuesta es no —y en la mayoría de los casos lo es— apagas el ajuste y sigues adelante. Los commits viejos se quedan como están. Si la respuesta es sí, entonces sí vale la pena reescribir esos commits concretos, avisar a quien colabore contigo y forzar la actualización. Pero eso es cirugía, no mantenimiento. No lo hagas por defecto: hazlo por motivo.

La lección, que va más allá de esta función

Revisa los valores por defecto de las herramientas a las que le das acceso a tu trabajo. No porque sean malintencionadas, sino porque ese defecto lo eligió alguien que no eres tú y que no conoce tu repositorio. 174 versiones son mucho tiempo para descubrirlo tarde.

Preguntas frecuentes

¿Mis conversaciones con Claude son públicas si uso Claude Code?
No. Lo que está verificado es que el identificador de la sesión queda visible en el mensaje del commit y, si el repositorio es público, cualquiera puede leerlo. No está verificado que un tercero pueda abrir esa sesión y leer su contenido. Son dos afirmaciones distintas y conviene no confundirlas.
¿Le pasa a todo el mundo que usa Claude Code?
No. El enlace solo se añade en sesiones web y de Control Remoto, según explicó un colaborador de Anthropic en el propio issue del repositorio. Si trabajas desde la terminal de tu equipo, esa línea nunca se añadió a tus commits y no tienes nada que revisar ni que apagar.
¿Cómo apago el enlace de sesión en los commits?
En tu archivo settings.json de Claude Code añades el bloque attribution con la clave sessionUrl puesta en false. Ese ajuste conserva la línea Co-Authored-By, que es la atribución honesta de coautoría, y elimina únicamente el enlace a la sesión. Sirve tanto la configuración global como la del proyecto.
¿Tengo que reescribir los commits que ya publiqué?
Solo si ese enlace apunta a una sesión con información sensible. Reescribir el historial de un repositorio público es caro y rompe el trabajo de quien ya lo clonó, así que no conviene hacerlo por defecto: apagas el ajuste, dejas los commits viejos como están y sigues adelante.

Fuentes