fix(history): "Tất cả project" và số liệu mỗi project đọc đủ mọi thư mục
Lịch sử hội thoại KHÔNG nằm chung một chỗ: _bind_project đặt config._project_history_dir thành <workspace của project>/.cowork_history mỗi lần chọn project khác — cố ý, để chia sẻ thư mục project là chia sẻ cả lịch sử. Nhưng hai chỗ đọc lại chỉ đọc MỘT thư mục, gây hai triệu chứng cùng gốc: - ui/sidebar.py đọc history_dir() (thư mục của project ĐANG mở), nên khung "Tất cả project…" dựng đủ tiêu đề nhóm mà mọi nhóm trừ một đều rỗng; - _project_counts gọi list_conversations() KHÔNG tham số, tức đọc HISTORY_DIR toàn cục nơi không có hội thoại nào của project, nên mọi dòng project đều đếm "0 đoạn chat". Thêm history_dirs() + list_conversations_by_project(), giữ đúng thứ tự cũ (ghim trước, mới nhất trước) và chống trùng. Thư mục là chủ sở hữu có thẩm quyền: hội thoại nằm trong workspace của project nào thì thuộc project đó, kể cả khi trường project_id trong file đã cũ vì project bị đổi thư mục. HISTORY_SUBDIR + project_history_dir() gom đường dẫn về một định nghĩa duy nhất — chuỗi ".cowork_history" từng nằm rải trong ui/workspace_tab.py. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -103,6 +103,16 @@ def _slugify(name: str) -> str:
|
||||
return s or "project"
|
||||
|
||||
|
||||
#: Lich su hoi thoai cua mot project nam TRONG thu muc lam viec cua no, de chia
|
||||
#: se thu muc do la chia se ca lich su (may khac xem va tiep tuc duoc).
|
||||
HISTORY_SUBDIR = ".cowork_history"
|
||||
|
||||
|
||||
def project_history_dir(project) -> Path:
|
||||
"""Thư mục lịch sử hội thoại của một project."""
|
||||
return project.workspace_dir() / HISTORY_SUBDIR
|
||||
|
||||
|
||||
def new_project(name: str, description: str = "", instructions: str = "",
|
||||
output_dir: str = "", directory: Path = None) -> Project:
|
||||
"""Create + persist a new project with a unique id derived from the name."""
|
||||
|
||||
Reference in New Issue
Block a user