Scenario objective previews can split supplementary Unicode during truncation
Los mantenedores suelen responder en 2 días
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- frontend
Línea de trabajo
Empieza en el helper objectivePreview, que trunca por unidad de código UTF-16. Revisa ahí el punto de corte y luego ejecuta la prueba enfocada attackAttemptFormatting en la revisión indicada para ver el high surrogate suelto en el índice 94. Se considera terminado cuando la vista previa nunca termina en un surrogate no emparejado, el caso de 94 a muestra la elipsis y el caso de control con un emoji completo sigue pasando.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Describe the bug
objectivePreview truncates JavaScript strings by UTF-16 code unit. If the boundary falls between the two code units of a supplementary Unicode character, the preview contains an unpaired surrogate. The scenario run table renders the corrupted preview. This is presentation-only; the test does not show that stored objectives are changed.
Steps/Code to Reproduce
const objective = `${'a'.repeat(94)}😀 trailing text`
const preview = objectivePreview(objective, 'seed-boundary')
Run the focused attackAttemptFormatting test at revision 01ce6ca66a315770b36c7dca1f320668c0d92d7c.
Expected Results
Truncate without splitting a Unicode scalar, for example 94 a characters followed by an ellipsis. No lone surrogate should appear in the preview.
Actual Results
The helper returns a string whose code unit at index 94 is 0xD83D, an unmatched high surrogate. JSON serialization shows \ud83d…; Jest renders it as �. A complete-emoji boundary control passes.
Screenshots
N/A. The exact returned string and code unit are asserted in the focused test.
Versions
Linux; Node 26.12.1; npm 11.20.0; Jest 30.5.2; frontend at revision 01ce6ca66a315770b36c7dca1f320668c0d92d7c. Pure TypeScript Jest run; no browser or backend.
- Lenguaje dominante
- Python
- Estrellas
- 4.7k
- Forks
- 1k
- Merge medio
- 2 d 3 h
- PR fusionados (30 d)
- 450
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de microsoft/PyRIT
-
URLDataTypeSerializer treats mixed-case HTTP(S) schemes as local pathsPosiblemente ocupada @akhil9tiet la tomó hoy. AbiertoBug: triage help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
microsoft/PyRIT#3861 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
Parameter required status is lost after wire round-tripPosiblemente ocupada @its-amann la tomó hoy. AbiertoBug: triage help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
microsoft/PyRIT#3854 · 1 comentario ·
Los mantenedores suelen responder en 2 días
-
BUG: LLMGenericTextConverter identifier changes between processes for set-valued template parametersAbiertoBug: triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 75/100
Los mantenedores suelen responder en 2 días
-
BUG: SelfAskGeneral scorers leave their output keys out of the identifierPosiblemente ocupada @Hrushikesh-ramilla la tomó hace 1 día. AbiertoBug: triage
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
Los mantenedores suelen responder en 2 días
-
GUI rejects valid empty-string SearchReplaceConverter settings, preventing deletion convertersPosiblemente ocupada @Darshika140 la tomó hace 1 día. Abiertohelp wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 76/100
microsoft/PyRIT#3749 · 3 comentarios · 1 asignado ·
Los mantenedores suelen responder en 2 días
Todos los issues de microsoft/PyRIT
Issues similares
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 78/100
QuantConnect/Documentation#2838 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
awslabs/route53-dynamic-dns-with-lambda#67 · 1 comentario ·
-
`SubAgents` returns a child run's `DeferredToolRequests` to the parent as a successful tool resultAbiertobug pkg:harness
Dificultad 2/5 1-3 horas Aptitud para principiantes 70/100
pydantic/pydantic-ai#12405 ·
Los mantenedores suelen responder en 1 día
-
good first issue help wanted
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
good first issue help wanted
Dificultad 1/5 Menos de una hora Aptitud para principiantes 82/100