Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

FEAT GUI: Import a dataset example into a chat draft

Aperta
#2,751 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
4/5
Tempo stimato
3-5 giorni
Idoneità per principianti
38/100
Tipo di issue
Funzionalità
Chiarezza
Abbastanza chiara
Stato di attività
Attiva
Stack tecnologico
python
Ambito
frontend

Direzione di ricerca

Wait for promotion in the parent sequence, then start with ChatWindow's copy-to-input and new-conversation handlers, App's attack/conversation navigation callbacks, ChatInputArea's draft interface, and the existing attacks API. Trace the shared draft handoff and existing creation APIs before running the frontend and backend tests. Done means all three destinations produce an editable focused draft while preserving media, validation, locks, cancellation behavior, and errors without making a model call.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

feature-request GUI not ready yet
Is your feature request related to a problem? Please describe.

After inspecting a dataset example, users should be able to try it in chat without copying text and reattaching media manually. The destination must be explicit, and importing must not make a model call.

Work item 7 of 17 in #2744. Technical prerequisites: items 4-6. Keep not ready yet until promoted in the parent sequence.

Describe the solution you'd like

For exactly one selected prompt or linked multimodal example, add these actions:

  1. Import to new attack.
  2. Import to current conversation within the current attack.
  3. Import to new conversation within the current attack.

Use the shared draft handoff and existing attack/conversation creation APIs. A new attack starts a new draft context; it must not unexpectedly clone the previous conversation's history. Preserve associated text/media, stable source references, and the normal input validation path.

Show the destination clearly. Confirm before replacing a nonempty draft. Keep existing objective/system-prompt/converter settings unless the user explicitly changes them. Explain unavailable actions when there is no current attack, the destination is locked/stale, the target is unresolved, or modalities are unsupported. Preserve the selection while the user configures a required target.

Treat unsupported multi-turn/template/simulated shapes explicitly instead of flattening or executing them. Multiple independent examples belong to the later scenario workflow.

Acceptance criteria:

  • All three destinations receive the selected example in an editable draft and focus the composer.
  • No import action sends to a target, appends fake conversation history, or runs converters automatically.
  • Related multimedia is retained and unrelated prompts are not concatenated.
  • Replacing/cancelling a dirty draft has deliberate behavior and no data loss.
  • Existing mutation locks and single-turn/target capability restrictions are respected.
  • Failed creation shows an error; it never silently imports into a different conversation.
  • Tests cover the three destinations, no active attack/target, media, cancellation, and stale/failing requests.
Describe alternatives you've considered, if relevant

Do not add bulk chat sending, a new attack executor, or a separate import persistence service when existing creation and draft APIs suffice. Importing is different from branching an existing transcript.

Additional context

Start with ChatWindow's copy-to-input/new-conversation handlers, App's attack/conversation navigation callbacks, ChatInputArea's draft interface, and the existing attacks API. Reuse concepts, not existing timer-based or silent-fallback behavior. Follow the parent scope and frontend/backend test instructions.

Lingua principale
Python
Stelle
4.5k
Fork
896
Merge medio
3g 8h
PR unite (30g)
191

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di microsoft/PyRIT

Tutte le issue di microsoft/PyRIT

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.