Description-only preset edits split comma-containing exact goals into separate goals

Abierto Apto para principiantes
#3,754 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 2 días

@MRX-72 ya está trabajando en esto.

Desde el 1/11/2026.

  • #3781 de @MRX-72 — abierto
  • #3829 de @RohithPariki — abierto

Evaluación

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

Línea de trabajo

Empieza por frontend/src/components/Scenarios/parameterForm.ts, especialmente la serialización de listas en las líneas 103–107, y sigue cómo ScenarioPresetEditor envía los valores de los objetivos sin cambios. Conserva los valores de las listas sin pérdida para que, al editar solo la descripción, se mantengan el contenido de los objetivos, su orden, los duplicados y las listas vacías; verifica el caso reportado de un objetivo que contiene una coma y los demás casos límite enumerados.

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

Descripción

help wanted
Describe the bug

Editing only a scenario preset description serializes an unconstrained list of exact goals as comma-joined text, then splits commas inside individual goal strings into new goals.

Steps/Code to Reproduce

Open a preset with goals ['Hello, world!', 'Second goal'], edit only Description, and save through the ScenarioPresetEditor form.

Expected Results

Unrelated edits preserve the original list elements and order exactly: ['Hello, world!', 'Second goal'].

Actual Results

Editor submitted ['Hello', 'world!', 'Second goal']; goal count changed from two to three and behavioral preset identity changed. Both old and new payloads pass the actual scenario preset/configuration validators, so validation does not detect the data loss.

Verified source reference: parameter form list serialization.

Proposed fix/regression: keep list values structured or use a lossless representation; preserve untouched stored values. Cover commas, significant whitespace, empty lists, duplicates, and order. This differs from empty SearchReplace scalar strings (finding 48).

Screenshots

Not applicable; submitted payload is inline.

Versions

Tested commit d3446e045960b5ebee4641aa70fdeb03af186587, PyRIT 1.2.0.dev0, offline actual React component/router with deterministic service mocks; backend model/config validators accepted both payloads. Evidence: files/evidence/round12/comma-goal-payload.json and regressions.txt; local paths are not attachments.

Lenguaje dominante
Python
Estrellas
4.7k
Forks
1k
Merge medio
2 d 3 h
PR fusionados (30 d)
450

Preparar el entorno

Abrir en Codespaces

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

  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 microsoft/PyRIT

Todos los issues de microsoft/PyRIT

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.