[Bug]: request_secret file delivery has no trailing newline, and the tool text does not say so

Abierto Apto para principiantes
#34,318 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

@juliusmarminge ya está trabajando en esto.

Desde el 11/11/2026.

  • #34494 de @juliusmarminge — abierto

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
69/100
Tipo de issue
Error
Claridad
Bien especificado
Estado de actividad
Activo
Stack tecnológico
typescript
Área
backend

Línea de trabajo

Lee apps/server/src/secrets/SecretRequests.ts y localiza la descripción de la herramienta request_secret y las indicaciones sobre sudo mencionadas en el issue. Comprueba cómo se escribe el secreto al entregarlo en un archivo y compara ese comportamiento con las instrucciones dirigidas al agente. El trabajo estará terminado cuando las instrucciones expliquen la falta del salto de línea final y den una forma práctica de manejar lectores basados en líneas, incluido sudo remoto por SSH si corresponde.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Before submitting
  • I searched existing issues and did not find a duplicate.
  • I included enough detail to reproduce or investigate the problem.
Area

apps/server

Steps to reproduce
  1. Have an agent call request_secret with delivery: "file" and enter a password.
  2. Have the agent feed the file to a line-based reader, for example running sudo on another machine over ssh -tt (sudo's timestamp has to be on the same tty as the later command, so sudo -S < "$file" locally does not help):
ssh -tt host 'IFS= read -rs pw; printf "%s\n" "$pw" | sudo -S -p "" true; ...' \
  < <(cat "$file"; exec sleep 7200)
Expected behavior

The agent knows from the tool text that the file holds the value exactly, with no trailing newline, so it appends one for readers that wait for a line. Or there is a documented pattern for sudo on a remote host.

Actual behavior

request_secret writes the value with no trailing newline (apps/server/src/secrets/SecretRequests.ts, fileSystem.writeFile(partial, new TextEncoder().encode(value), ...)). The two patterns in the agent-facing text, "$(cat <file>)" and sudo -S -p '' <cmd> < "$file", work because both accept EOF. Neither the tool description nor the sudo guidance says the newline is missing, though.

In the case above, read never sees a newline, so the remote shell blocks with no output and no error. The agent cannot tell it is stuck on the password, not on the work it started, until it checks the remote process list. Appending printf '\n' after cat "$file" fixes it.

Suggestion: say in the request_secret description, and in the sudo guidance, that the file has no trailing newline. Optionally add a short pattern for sudo on a remote host over ssh.

Impact

Minor bug or occasional failure

Version or commit

T3 Code desktop 0.1.9-nightly.20261111.4515

Environment

macOS desktop app, Claude provider; the target was a linked Linux machine reached over ssh.

Workaround

Append a newline: < <(cat "$file"; printf '\n'; exec sleep 7200).

Lenguaje dominante
TypeScript
Estrellas
24.8k
Forks
6.4k
Merge medio
10 h 56 min
PR fusionados (30 d)
226

Preparar el entorno

Abrir en Codespaces

Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de pingdotgg/t3code

Todos los issues de pingdotgg/t3code

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.