run.bat chỉ hỏi junction "có tồn tại không", không hỏi nó trỏ vào đâu. Một
junction còn lại từ checkout KHÁC vẫn được dùng lại im lặng: run.bat nằm
trong thư mục này nhưng ứng dụng chạy từ thư mục kia. Triệu chứng là "sửa
code xong chạy vẫn y nguyên", và không có gì báo lỗi.
- junction được tạo lại mỗi lần chạy, không chỉ khi thiếu;
- mỗi thư mục mã nguồn có junction RIÊNG (khoá SHA1 từ đường dẫn tuyệt đối).
Bản trước dùng chung một đường dẫn cho cả máy, nên hai checkout tranh nhau:
cái chạy sau trỏ junction về mình, và tiến trình con của cái chạy trước
(máy chủ MCP MS365, sinh ra sau khi app đã mở) import mã nguồn của cái kia;
- install.bat dọn junction dùng chung của bản cũ — để lại là một cái bẫy;
- venv cũ phải CHẠY ĐƯỢC, không chỉ tồn tại file python.exe: venv dựng bằng
bản Python đã bị nâng cấp hoặc xoá vẫn còn nguyên file đó;
- smoke test kiểm DANH TÍNH, không chỉ kiểm import được — có một "cowork_local"
khác chen trên sys.path thì lệnh import vẫn chạy tốt và bước kiểm vẫn xanh
trong khi ứng dụng đọc mã nguồn khác;
- run.bat chốt cowork_local/__main__.py thật sự nhìn thấy được trước khi khởi
động, thay cho lỗi Python khó hiểu "'cowork_local' is a package and cannot
be directly executed";
- thông báo lỗi rõ cho ổ mạng và ổ không phải NTFS — junction không trỏ sang
được, ca hay gặp nhất khi mang sang máy khác.
Đã kiểm bằng cách chạy thật cả hai script.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>