fix(chat): tệp đính kèm không bị bản sao trong thư mục lấn chỗ

Người dùng phản ánh dán nội dung vào chat cho câu trả lời tốt hơn đính kèm cùng
nội dung đó. Nội dung KHÔNG bị cắt (giới hạn 2 triệu ký tự) — nguyên nhân là
loãng và trùng: _augment luôn quét thêm [Workspace files] và [Project files],
và tệp đính kèm nếu nằm trong thư mục workspace sẽ đi vào prompt HAI lần. Với
tài liệu dài, bản thứ hai vừa nhân đôi ngữ cảnh vừa khiến model không biết bản
nào là bản được hỏi.

Lọc trùng theo đường dẫn đã giải quyết, và đổi nhãn để nói rõ tệp đính kèm là
CHỦ THỂ CHÍNH còn tệp thư mục chỉ là ngữ cảnh phụ. Dòng cảnh báo "N tệp không
nạp được" đếm TRƯỚC khi lọc trùng, nếu không nó báo sai.

Cùng lượt, hai chỗ bỏ thông tin không cần thiết:
- gỡ dòng "provider · model" ngay sau chữ "Cowork" — nó lặp lại thứ bộ chọn
  provider ở thanh trên đang hiển thị, mà chiếm chỗ đắt nhất trên thanh công cụ;
- không báo "đang dùng <provider>" ở thanh trạng thái khi đổi provider — bộ
  chọn nằm ngay trên màn hình và đã hiện thứ người dùng vừa tự chọn.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-09-10 01:34:36 +09:00
committed by thanhnv
co-authored by Claude Opus 5
parent 9725cce2c4
commit 1a1f23030c
4 changed files with 211 additions and 25 deletions
+6 -9
View File
@@ -7,7 +7,6 @@ from PySide6.QtWidgets import (
QFileDialog, QHBoxLayout, QLabel, QPushButton, QVBoxLayout, QWidget,
)
from ..config import PROVIDER_LABELS
from ..core import agent_roles
from ..core.worker import AgentWorker
from ..i18n import on_language_changed, tr
@@ -32,9 +31,6 @@ class CoworkTab(ChatPanel):
self._title_lbl = QLabel()
self._title_lbl.setStyleSheet("font-weight:700; font-size:15px;")
self.model_lbl = QLabel("")
self.model_lbl.setObjectName("hint")
self.skills_btn = QPushButton()
self.skills_btn.setIcon(icon("book"))
self.skills_btn.clicked.connect(self._open_skills_manager)
@@ -44,7 +40,6 @@ class CoworkTab(ChatPanel):
self._new_btn.clicked.connect(self.new_session)
self.toolbar_layout.addWidget(self._title_lbl)
self.toolbar_layout.addWidget(self.model_lbl)
self.toolbar_layout.addStretch(1)
self.toolbar_layout.addWidget(self.skills_btn)
self.toolbar_layout.addWidget(self._new_btn)
@@ -377,10 +372,12 @@ class CoworkTab(ChatPanel):
self._apply_output_folder_label()
def refresh_header(self) -> None:
"""Cập nhật dòng "provider · model" trên thanh công cụ Cowork."""
cfg = self.ctx.config
label = PROVIDER_LABELS.get(cfg.active_provider, cfg.active_provider)
self.model_lbl.setText(f"{label} · {cfg.model_label()}")
"""Cập nhật các nhãn trên thanh công cụ Cowork.
Dòng "provider · model" từng nằm ngay sau chữ "Cowork" đã được gỡ: nó
lặp lại thông tin mà bộ chọn provider ở thanh trên đang hiển thị, và
chiếm chỗ đắt nhất trên thanh công cụ cho một thứ chỉ để đọc.
"""
self._apply_output_folder_label() # picks up edits made via Settings too
def build_job(self, text: str, messages, out_dir):