General Chat is silently archived after session resume timeout, with no restore UI
Chưa có ai nhận issue này.
- Ngôn ngữ chính
- Shell
- Star
- 11.2k
- Fork
- 1.9k
- Merge trung bình
- 14 giờ 16 phút
- Pull request đã merge (30 ngày)
- 6
Mô tả
Summary
A long-running General Chat was silently archived when the app failed to resume it within 60 seconds. I did not archive or delete the chat. The app automatically created a replacement chat, while the original disappeared from the sidebar with no UI to view or restore archived chats.
Environment
- GitHub Copilot app:
1.1.8(0945da4) - Bundled Copilot CLI:
1.0.79-9 - OS: Windows x86_64
Observed behavior
- Opened an existing General Chat with substantial history.
- The UI appeared unresponsive for about a minute.
- The original chat disappeared and a newly created chat became active.
- The original chat was absent from the session list.
- Attempting to navigate to its ID returned:
This chat is archived. Restore it before continuing. - There is no archived-chat list or Restore action in the app UI.
The local database showed that the original general_chat row received an archived_at value at exactly the same time the replacement session was created. Clearing only that archived_at value restored the original chat and its full history, confirming the data had not been deleted.
Relevant sanitized log timeline
09:36:25 resuming session ... session_type=GeneralChat
09:37:25 session resume timed out; releasing CLI and surfacing error ... timeout_secs=60
09:37:26 Failed to resume session ... the CLI process may be unresponsive, attempting to recreate
09:37:26 Recreating session old_session_id=<original>
09:37:33 CLI session created cli_session_id=<replacement>
09:37:33 SessionManager create_session flow completed session_id=<replacement>
The original row's archived_at timestamp was 09:37:33.779, immediately after the replacement session was created.
Expected behavior
- A resume timeout must not silently archive an existing chat.
- If a replacement process/session is needed, the existing chat identity and history should remain visible and recoverable.
- The app should surface the timeout and offer Retry rather than replacing the chat without consent.
- If chats can be archived, the UI must provide an Archived view and Restore action.
Impact
This looks like data loss to the user and strands important long-running chat history. Recovery currently requires manually editing the app's SQLite database, which is not a safe or reasonable user workflow.
Hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- 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.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện timeout resume 60 giây và kiểm tra luồng SessionManager create_session cùng với thay đổi của archived_at trong hàng SQLite cục bộ. Xác minh rằng cuộc trò chuyện ban đầu vẫn hiển thị và có thể khôi phục, rằng phản hồi timeout cung cấp Retry, và rằng các cuộc trò chuyện đã lưu trữ có chế độ xem và hành động Restore.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Đánh giá
- Công nghệ
- sqlite
- Lĩnh vực
- cli, database
- Loại issue
- Lỗi
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức độ hoạt động
- Ít trao đổi
- Độ rõ ràng
- Khá rõ ràng
- Mức phù hợp với người mới
- 48/100