Nâng phiên bản thư viện
Chủ dự án 18.10.2026 (SRC-1444): nâng phiên bản mọi module tự động. Việc này chạy trong lượt kiểm hằng tuần trên Mac, không trên GitHub.
Chạy ở đâu, khi nào
npm run weekly (LaunchAgent, Chủ nhật 22:00; Mac ngủ thì chạy khi Mac thức) gọi scripts/deps-upgrade.mjs:
- Nâng mọi bản minor và patch cùng lúc ở mọi workspace (
npm-check-updates --target minor), trừ các gói đứng yên trongscripts/deps-hold.json. npm installvànpm audit fix(chỉ bản vá bảo mật không phá tương thích), rồi typecheck, lint, unit test, build toàn repo, rồi bộ E2E hằng tuần.- Gỡ module không ai import bằng Knip (cấu hình
knip.jsonc), giữ lại chỉ khi typecheck và build vẫn xanh. - Xanh hết thì tự commit
chore(deps): …và push lênmain; CI deploy như mọi commit khác. - Đỏ ở bước nào thì trả file về như cũ, hiện thông báo trên Mac kèm tên bước đỏ. Tuần sau thử lại.
- Lỗ hổng mà
npm audit fixkhông tự vá được, bản major và GitHub Action có major mới chỉ được liệt kê: mỗi major là một việc code có commit riêng.
| Loại nâng | Ai làm | Vì sao |
|---|---|---|
| Patch, minor | Máy, mỗi tuần, tự push khi xanh | Gần như luôn tương thích; thử chung vì ba bản xanh riêng từng đỏ khi ghép |
| Major | Một phiên Claude, khi được giao | Đổi API, cần đọc changelog và sửa code |
Bộ ba UI (motion, shadcn, Tailwind) | Như trên, cộng npm run check:ui-latest | DS-001 đòi nâng rồi ghim số |
| Lỗ hổng bảo mật | Bản vá không phá: máy, mỗi tuần. Còn lại: npm audit báo, phiên Claude sửa | Vá sớm mà không đổi API |
| Module thừa | Máy, mỗi tuần (Knip) | Bớt thời gian cài, bớt bề mặt tấn công |
Vì sao không dùng Dependabot hay Renovate nữa
Hai công cụ ấy mở pull request. Repo làm thẳng trên main nên không ai gộp PR (PR dependabot ngày 17.10.2026 nằm chờ), và mỗi lần push lên PR là một lượt CI mất tiền. Chạy trên Mac thì $0, và thử chung mọi bản nâng trên đúng bộ test mà một phiên sẽ chạy.
Danh sách đủ 70 module, chia cụm, kèm mô tả và mức ưu tiên: Các module npm.
Chi tiết và các bẫy đã gặp (hai bản type cùng tên, @hono/zod-openapi): config §8b.