Parameter required status is lost after wire round-trip
Les mainteneurs répondent en général sous 2 jours
@its-amann y travaille déjà.
Depuis le 4/11/2026.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 72/100
Piste de recherche
Commence par le modèle Parameter dans pyrit/models/parameter.py et par la fonction _reconstruct_param_type_from_wire, qui le reconstruit à partir du JSON. Exécute l'extrait de reproduction de l'issue pour confirmer que required vaut True avant l'aller-retour et False après. Restaurer REQUIRED_VALUE lorsque le drapeau required du wire est vrai devrait faire correspondre la valeur par défaut restaurée à l'originale. tests/unit/models/test_parameter.py devrait couvrir ce cas.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
Describe the bug
Parameter serializes its computed required flag, but _reconstruct_param_type_from_wire does not use it to restore REQUIRED_VALUE. A required declaration therefore deserializes as optional (default=None, required=False). Clients that round-trip a registry catalog can stop marking or validating the field as required, although backend construction still rejects a missing input.
Steps/Code to Reproduce
from pyrit.common import REQUIRED_VALUE
from pyrit.models.parameter import Parameter
original = Parameter(name="count", description="Required count", param_type=int, default=REQUIRED_VALUE)
restored = Parameter.model_validate_json(original.model_dump_json())
print(original.required, restored.required, restored.default)
Expected Results
The restored declaration remains required and has the same missing-input validation semantics as the original.
Actual Results
The wire JSON contains "required":true, but the restored model reports True False None for original required, restored required, and restored default.
Screenshots
N/A. This is a deterministic model serialization reproduction.
Versions
Python 3.12.3; PyRIT checkout revision 01ce6ca66a315770b36c7dca1f320668c0d92d7c. tests/unit/models/test_parameter.py (228 tests) and registry resolution tests (93 tests) passed; no backend HTTP workflow was run.
- Langage dominant
- Python
- Étoiles
- 4.7k
- Forks
- 1k
- Merge moyen
- 2 j 3 h
- PR mergées (30 j)
- 465
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de microsoft/PyRIT
-
Scenario objective previews can split supplementary Unicode during truncationPeut-être pris @Aadithya-kl l’a pris il y a 1 jour. OuverteBug: triage help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 82/100
microsoft/PyRIT#3870 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
URLDataTypeSerializer treats mixed-case HTTP(S) schemes as local pathsPeut-être pris @akhil9tiet l’a pris il y a 1 jour. OuverteBug: triage help wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
microsoft/PyRIT#3861 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
BUG: LLMGenericTextConverter identifier changes between processes for set-valued template parametersPeut-être pris @samrudhi03 l’a pris il y a 1 jour. OuverteBug: triage
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
microsoft/PyRIT#3841 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
-
BUG: SelfAskGeneral scorers leave their output keys out of the identifierPeut-être pris @Hrushikesh-ramilla l’a pris il y a 2 jours. OuverteBug: triage
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 2 jours
-
GUI rejects valid empty-string SearchReplaceConverter settings, preventing deletion convertersPeut-être pris @Darshika140 l’a pris il y a 3 jours. Ouvertehelp wanted
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
microsoft/PyRIT#3749 · 3 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 2 jours
Toutes les issues de microsoft/PyRIT
Issues similaires
-
bug
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
Les mainteneurs répondent en général sous 1 jour
-
area:docs documentation effort:M ready-for-agent
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
mczielinski/ob-analytics#423 ·
Les mainteneurs répondent en général sous 1 jour
-
infra
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 3 jours
-
documentation
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
vllm-project/vllm-ascend#21033 ·
Les mainteneurs répondent en général sous 1 jour