Conversation draft turns permanently dirty when applied conversions match no piece
Mantenedores costumam responder em até 2 dias
@ManoharPaturi já está trabalhando nisso.
Desde 27/10/2026.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 83/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- python
- Domínio
- ai-infra-agents, frontend
Direção de pesquisa
Comece localizando useConversationDraft.applyConversions e o changePiece adjacente no código do editor de conversas; o issue não especifica caminhos de arquivos nem testes. Compare como eles tratam IDs de piece sem correspondência e, em seguida, execute os testes relevantes do rascunho ou do editor de conversas. O trabalho estará concluído quando aplicar conversões a um piece ausente mantiver limpo um rascunho limpo e não acionar a confirmação de descarte.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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
- Open a conversation draft and open the converter panel.
- Delete the piece a conversion result refers to, then let the panel emit its apply event.
- 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.
- Linguagem predominante
- Python
- Estrelas
- 4.7k
- Forks
- 980
- Merge médio
- 2d 7h
- PRs com merge (30d)
- 446
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/PyRIT
-
BUG: Garak and ML-VLSU loaders still load one example when max_examples is 0 or negativeTalvez já em andamento @ShivamSharma43 assumiu há 2 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 2 dias
-
BUG: ComicJailbreak max_examples counts goals that render nothing, so templates=["code"] with max_examples=10 failsTalvez já em andamento @ShivamSharma43 assumiu há 2 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
Mantenedores costumam responder em até 2 dias
-
BUG: SeedDatasetFilter matches harm_categories, modalities and size case-sensitively, unlike tagsTalvez já em andamento @ShivamSharma43 assumiu há 2 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Mantenedores costumam responder em até 2 dias
-
Conversation drawer shows the previous attack's conversations after switching attacksTalvez já em andamento @ManoharPaturi assumiu há 2 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
microsoft/PyRIT#3575 · 2 comentários · 1 responsável ·
Mantenedores costumam responder em até 2 dias
-
New finding dialog loses a severity only edit without an unsaved changes warningTalvez já em andamento @ManoharPaturi assumiu há 2 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
microsoft/PyRIT#3569 · 1 responsável ·
Mantenedores costumam responder em até 2 dias
Todas as issues de microsoft/PyRIT
Issues semelhantes
-
app: scripts status: backlog type: documentation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
netbox-community/netbox-scripts#68 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 91/100
marin-community/marin#10765 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 70/100
flathub/com.unity.UnityHub#230 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
namespace operations
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 63/100
EclipseFdn/open-vsx.org#14910 ·
Mantenedores costumam responder em até 1 dia