Hacktoberfest 2026: những issue maintainer đã đánh dấu cho tháng Mười, đang mở và phù hợp người mới. Xem issue Hacktoberfest

FEAT GUI: Preserve chat drafts when exploring datasets

Đang mở
#2,750 0 bình luận 0 reaction 0 người được giao Xem trên GitHub

Chưa có ai nhận issue này.

Đánh giá

Độ khó
5/5
Thời gian dự kiến
Hơn một tuần
Mức phù hợp với người mới
35/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
react, typescript
Lĩnh vực
frontend

Hướng nghiên cứu

Start with frontend\src\App.tsx, components\Chat\ChatWindow.tsx, ChatInputArea.tsx, ChatInputAreaHandle.restoreDraft/getDraftRevision, hooks\useChatConverters.ts, and the route helpers, following the frontend style and test instructions. Verify the ordinary, unsaved, rapid-navigation, stale-completion, and attachment-cleanup cases described in the acceptance criteria, with a single safe pending handoff on return.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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

Chat draft text, attachments, and converter state currently live inside chat components. Navigating to Datasets must not discard that work or lose which attack/conversation the user intended to return to.

Work item 6 of 17 in #2744. This prepares the draft handoff used by items 7-8 and remains not ready yet until promoted after the preceding work item.

Describe the solution you'd like

Add a typed, navigation-safe draft/context handoff using the existing React state/context conventions. Keep state at the narrowest shared owner needed for the chat-to-dataset journey; do not introduce another state-management library.

Preserve the originating attack and active conversation, text, attachments, system-prompt draft, selected target, and converter configuration/applied draft state. Distinguish a new unsaved chat from a persisted attack. Preserve dataset filters/page/selection for returning to the explorer.

Provide an explicit pending-import payload that can be applied once after the destination chat is ready. Guard against stale asynchronous navigation/import results overwriting a newer draft. Avoid timeout-based synchronization and make attachment/blob URL ownership and cleanup explicit.

Acceptance criteria:

  • Visiting Datasets and returning preserves the existing draft and originating conversation.
  • Text plus media and converter/system-prompt state survive the navigation round trip.
  • A pending handoff is applied once, not duplicated by rerenders or Back/Forward navigation.
  • Switching context or encountering a missing/locked destination does not overwrite an unrelated draft.
  • Focus and dirty-draft replacement can be managed by the import UI.
  • Tests cover ordinary return, unsaved chat, rapid navigation, stale completion, and attachment cleanup.
Describe alternatives you've considered, if relevant

Do not persist GUI drafts as conversation history, place prompt/media content or credentials in URLs, add a memory schema, or build a batch draft queue. Full cross-session draft persistence is not required by this issue.

Additional context

Start with frontend\src\App.tsx, components\Chat\ChatWindow.tsx, ChatInputArea.tsx and ChatInputAreaHandle.restoreDraft/getDraftRevision, hooks\useChatConverters.ts, and the route helpers. Preserve existing chat recovery and target-resolution behavior. Follow frontend style/test instructions.

Ngôn ngữ chính
Python
Star
4.5k
Fork
896
Merge trung bình
3 ngày 5 giờ
Pull request đã merge (30 ngày)
200

Hướng dẫn đóng góp

Chưa lập chỉ mục được hướng dẫn đóng góp cho kho mã nguồn này

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của microsoft/PyRIT

Tất cả issue của microsoft/PyRIT

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.