Hacktoberfest 2026: die Issues, die Maintainer für den Oktober markiert haben – offen und einsteigerfreundlich. Hacktoberfest-Issues durchsuchen

Conversation draft turns permanently dirty when applied conversions match no piece

Offen Anfängerfreundlich
#3,573 0 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

Maintainer antworten meist innerhalb von 2 Tagen

@ManoharPaturi arbeitet bereits daran.

Seit 27.10.2026.

Bewertung

Schwierigkeit
2/5
Geschätzter Aufwand
1-3 Stunden
Anfängerfreundlichkeit
83/100
Issue-Typ
Bug
Klarheit
Klar beschrieben
Aktivitätsstatus
Aktiv
Tech-Stack
python

Rechercherichtung

Beginne damit, useConversationDraft.applyConversions und das benachbarte changePiece im Code des Konversationseditors zu finden; das Issue nennt keine Dateipfade oder Tests. Vergleiche, wie sie mit nicht zugeordneten Piece-IDs umgehen, und führe dann die relevanten Tests für Entwürfe oder den Konversationseditor aus. Die Aufgabe ist abgeschlossen, wenn das Anwenden von Konvertierungen für ein fehlendes Piece einen sauberen Entwurf unverändert sauber lässt und keine Bestätigung zum Verwerfen auslöst.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

Description

useConversationDraft.applyConversions rebuilds every message and piece wrapper object even when no piece in the draft matches an entry in the applied map. The draft's dirty flag compares the messages array by reference against the baseline, so one such no match call leaves the draft permanently dirty.

The live copy of this logic in ConversationEditor wires the converter panel's apply event, which fires with results that can reference pieces the user has already deleted, so a converter round that changes nothing can leave the editor showing the discard confirmation, Your unsaved changes will be lost, on every later close or navigation.

The sibling changePiece in the same hook already tracks a changed flag and returns the original array when nothing matched; applyConversions lacks that guard.

Expected Behavior

Applying conversions that match no piece in the draft should leave the draft clean.

Reproduction Steps

  1. Open a conversation draft and open the converter panel.
  2. Delete the piece a conversion result refers to, then let the panel emit its apply event.
  3. Close the draft: the discard confirmation appears even though nothing changed.

Minimal Reproduction

Call applyConversions({ missingPieceId: ... }) on a clean draft and read dirty.

Environment

PyRIT main.

Vorherrschende Sprache
Python
Sterne
4.7k
Forks
980
Ø Merge
2 T. 7 Std.
Gemergte PRs (30 T.)
446

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

  • Kein Dockerfile und keine Docker-Compose-Datei
  • Hat eine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus microsoft/PyRIT

Alle Issues in microsoft/PyRIT

Ähnliche Issues

Weitere Issues zu Python

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.