feat(observability): allowlist phase-label names to prevent path/secret leakage in TUI

Abierto Apto para principiantes
#1,035 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
2/5
Tiempo estimado
1-3 horas
Aptitud para principiantes
76/100
Tipo de issue
Nueva funcionalidad
Claridad
Bien especificado
Estado de actividad
Tranquilo
Stack tecnológico
typescript

Línea de trabajo

Empieza en packages/opencode/src/session/status.ts, en SessionStatus.publishPhase, e inspecciona cómo se registran las advertencias. Revisa packages/tui/src/util/phase-label.ts y las convenciones existentes para las pruebas unitarias; después, añade cobertura para un nombre no registrado. Se considera terminado cuando los nombres desconocidos generan una advertencia y se descartan, mientras las etiquetas de fase registradas siguen funcionando.

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

Descripción

Deferred from the v0.9.3 pre-release review.

Current behavior

SessionStatus.publishPhase(name, ...) in packages/opencode/src/session/status.ts accepts any string for the name argument. Today the set produced by bootstrap.* spans is static and benign, and the TUI's packages/tui/src/util/phase-label.ts falls back to "Thinking..." on unknown names.

Gap

There is no validation at the publishPhase call site that the name is limited to a registered set. A future span whose name accidentally embeds a filesystem path, a secret, or a sensitive env reference would surface as a user-visible TUI label without any signal that it was unintended.

Proposal

Add a Set<string> of known phase names. publishPhase logs a warning (not throws) when an unregistered name is used and drops the label. Cover with a unit test that asserts a warning fires on an unregistered name so a regression is loud.

Why deferred

Guardrail against a future regression; the current phase-name set is static and benign so there is no user-visible risk today.

Lenguaje dominante
TypeScript
Estrellas
813
Forks
134
Merge medio
2 d 5 h
PR fusionados (30 d)
62

Guía de contribución

Abrir la guía de contribución

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 AltimateAI/altimate-code

Todos los issues de AltimateAI/altimate-code

Issues similares

Más issues de TypeScript

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.