CI / test (push) Canceled after 0s
## Summary epic r04 - begin refactor ## Change Type - [x] Cowork feature - [ ] Bug fix - [ ] Core AI contribution - [ ] Test / hardening - [ ] Performance - [ ] Documentation ## Related Work Cowork Task: Core Repo: http://34.143.229.138/gitea-admin/fsg-ai-core-assets Core AI Issue: Core Task: Related PR: ## Scope What is intentionally included? What is intentionally NOT included? ## Validation - [ ] Unit tests - [ ] Integration tests - [ ] Manual verification - [ ] Regression check Commands / evidence: ## Security Impact Permission / credential / network / customer data impact: ## Compatibility - [ ] No breaking change - [ ] Breaking change documented ## Reviewer Notes Anything Cowork reviewers should pay attention to. --------- Co-authored-by: Anh Tran Nguyen Minh <anhtnm1@fpt.com> Co-authored-by: Huong Le Thi Thien <huongltt35@fpt.com> Co-authored-by: Nam Pham Dinh Thanh <nampdt@fpt.com> Co-authored-by: Vu Dam Tuan <vudt15@fpt.com> Co-authored-by: Hiep Ha Van <hiephv3@fpt.com> Co-authored-by: Lam Hoang Van <lamhv7@fpt.com> Reviewed-on: #7 Co-authored-by: Duy Le Huu <duylh19@fpt.com>
69 lines
3.1 KiB
Markdown
69 lines
3.1 KiB
Markdown
# Tin nhắn gửi Team Hoa — 25/08/2026
|
|
|
|
*Nam (Team Gamma) soạn. Hai việc, không cần trả lời, chỉ cần đọc trước khi
|
|
bắt đầu R07-T03 và R06.*
|
|
|
|
---
|
|
|
|
Chào team Hoa,
|
|
|
|
Có hai thứ trong nhánh `gamma/refactor` ảnh hưởng trực tiếp tới phần các bạn
|
|
sắp làm. Gửi trước để khỏi mất thời gian truy lỗi.
|
|
|
|
## 1. `platform/` đã đổi tên thành `adapters/` — plan.md ghi tên cũ
|
|
|
|
Plan chỉ đích danh `platform/qt/qt_scheduler_clock.py` (R07-T03, dòng 407 và
|
|
lịch 25/08 ở dòng 229). **Đừng tạo thư mục `platform/`.**
|
|
|
|
Lý do: `platform` là tên một module trong thư viện chuẩn của Python. Tạo thư
|
|
mục `platform/` ở gốc repo là nó che mất module chuẩn khi chạy từ chính thư
|
|
mục gốc — mà đó là cách toàn bộ script trong `tools/` và `scripts/` đang chạy.
|
|
Triệu chứng không hề chỉ về đúng chỗ:
|
|
|
|
AttributeError: module 'platform' has no attribute 'system'
|
|
|
|
Ném ra từ `import keyring`, không liên quan gì tới file bạn vừa tạo.
|
|
|
|
Tôi đã mắc đúng lỗi này hôm 21/08. Lúc thử thì đứng ở thư mục cha nên không
|
|
tái hiện được, tưởng an toàn. Đổi tên thành `adapters/` và thêm
|
|
`tests/test_no_stdlib_shadow.py` để lần sau đỏ ngay.
|
|
|
|
**Việc cần làm**: tạo `adapters/qt/qt_scheduler_clock.py` thay vì
|
|
`platform/qt/...`. Thư mục `adapters/qt/` đã có sẵn `__init__.py` trên nhánh
|
|
`gamma/refactor`, kéo về là dùng được.
|
|
|
|
## 2. `AtomicJsonFile` vừa vá một lỗi Windows — lấy bản mới trước khi dựng lên
|
|
|
|
Plan giao các bạn hai repository ngồi trên `AtomicJsonFile`:
|
|
|
|
* `infrastructure/persistence/json/task_repository_impl.py` (R07-T01, dòng 403)
|
|
* `infrastructure/persistence/json/workspace_repository_impl.py` (R06, dòng 387)
|
|
|
|
Và tiêu chí nghiệm thu **A** (dòng 244) bắt mọi thao tác ghi tệp phải đi qua nó.
|
|
|
|
Hôm nay tôi bắt được lỗi thật trong đó:
|
|
|
|
PermissionError: [WinError 5] Access is denied
|
|
.dem.json.xxxxxxx.tmp -> dem.json
|
|
|
|
`os.replace` trên Windows bị từ chối khi Defender hoặc Search Indexer đang giữ
|
|
handle lên file vừa tạo — vài chục mili-giây rồi nhả. Đo được: hỏng 1 trong 7
|
|
lượt chạy 20 lần ghi, tức **khoảng 1 trên 140 lần lưu**. Người dùng thỉnh
|
|
thoảng bấm Lưu là văng lỗi và không tài nào tái hiện để báo.
|
|
|
|
Đã thêm vòng thử lại (commit `9d6a7be`). Nếu các bạn dựng repository trên bản
|
|
trước đó thì lưu task và lưu workspace cũng hỏng với tần suất y hệt — nhân lên
|
|
ba nơi ghi file.
|
|
|
|
**Việc cần làm**: `git pull` nhánh `gamma/refactor` (hoặc chờ nó vào `main`)
|
|
trước khi bắt đầu R06/R07-T01.
|
|
|
|
## Tiện thể
|
|
|
|
`domain/security/tool_policy.py` là bản đề xuất DTO `ToolPolicyGateway` tôi
|
|
viết hộ cho R05 của các bạn — ba trạng thái ALLOW/DENY/ASK, kèm fake và test
|
|
contract. Không có gì của Gamma phụ thuộc vào nó, nên các bạn cứ sửa hoặc bỏ
|
|
thoải mái, không phải giữ ý.
|
|
|
|
Nam
|