merge: cập nhật từ origin/feature/delta-team/epic-R04 (dọn dead code, gộp i18n/theme, CASAN Gate O, launcher)
Kéo 7 commit mới từ remote — chủ yếu dọn dẹp và siết chất lượng, không đổi API đang dùng: - Xoá 1.400 dòng mã chết + 5 gói rỗng còn sót sau các lần merge trước. - Thêm CASAN Gate O (LOC) áp cho toàn cây mã. - Sửa 5 checker UI hỏng sau đợt tách widget R08, vá 4 hồi quy. - install.bat/run.bat, gộp requirements-test.txt vào requirements.txt. - Gom i18n_*.py / theme_*.py rời rạc thành gói i18n/ và theme/. Merge sạch, không có conflict marker nào (git tự resolve toàn bộ). Đã kiểm tra lại 4 điểm đã vá ở 2 lần merge trước (config.py circular import, ai_edit_model_resolver.py dùng resolve() thay route_turn(), _confirm_routing_switch nhận timeout, RoutingApplicationService.resolve()) — cả 4 vẫn nguyên vẹn sau merge này. pytest tests/: 793 passed — giống hệt số liệu trước khi merge, không phát sinh fail/error mới (8 fail còn lại vẫn là do môi trường sandbox: thiếu keyring, tên thư mục cowork-local vs cowork_local). Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
This commit is contained in:
@@ -274,6 +274,11 @@ def _deep_merge(base: Dict[str, Any], override: Dict[str, Any]) -> Dict[str, Any
|
||||
|
||||
|
||||
def _apply_env_overrides(data: Dict[str, Any]) -> Dict[str, Any]:
|
||||
"""Cho phép biến môi trường ghi đè cấu hình.
|
||||
|
||||
Dùng khi chạy trong container/CI: đặt endpoint và khoá qua biến môi trường mà
|
||||
không phải sửa file cấu hình.
|
||||
"""
|
||||
data = copy.deepcopy(data)
|
||||
oc = data["providers"]["openai_compat"]
|
||||
if os.getenv("OPENAI_API_KEY"):
|
||||
@@ -366,6 +371,11 @@ class AppConfig(JsonConfigRepository):
|
||||
"""
|
||||
|
||||
def __init__(self, data=None, path: Path = CONFIG_PATH, **kw):
|
||||
"""Mở cấu hình từ đĩa, hoặc dựng thẳng từ dict khi truyền ``data``.
|
||||
|
||||
Dạng ``AppConfig(data=..., path=...)`` là để 13 file test dựng cấu hình mà
|
||||
không chạm đĩa; giữ nguyên vì bỏ đi là phải sửa cả 13 file.
|
||||
"""
|
||||
if data is None:
|
||||
super().__init__(Path(path), **kw)
|
||||
return
|
||||
|
||||
Reference in New Issue
Block a user