Skip to content

Dọn màu api.conan.school về token: 09.09.2026 ​

Site thứ tám về 0. 10 → 0. api là một Worker, không có giao diện, nên cả 10 chỗ nằm ở nơi duy nhất worker sinh ra màu: HTML của thư và của các trang xác nhận độc lập.

Ở đây hex là BẮT BUỘC, và đó không phải cái sai ​

Email client (Gmail, Outlook) lược bỏ biến CSS. color: var(--color-primary) trong một lá thư là màu không tồn tại. Nên HTML thư phải dùng hex, đây là ngoại lệ kỹ thuật thật, cùng loại với bản chép tay của video.

Cái sai không phải "dùng hex". Cái sai là ba nơi cùng chép một bảng màu:

NơiTrước
shared/email/templates.tscó hằng C với 12 màu, chú thích ánh xạ từng token, cấu trúc đúng, nhưng const không export
shared/email/send.tstự viết #6b6b6b ×2 cho dòng huỷ nhận thư
domains/system/index.tstự viết 7 màu cho trang xác nhận huỷ nhận thư

Hai file sau đã import từ templates.ts sẵn (EMAIL_CATALOG, EMAIL_KINDS), chúng chép màu chỉ vì bảng màu không được export.

Sửa: một nguồn, và một gác giữ nó khớp theme.css ​

  1. const C → export const EMAIL_PALETTE (giữ const C = EMAIL_PALETTE làm bí danh ngắn để không phải sửa hàng trăm chỗ dùng trong các hàm render).
  2. send.ts và system/index.ts dùng EMAIL_PALETTE, không còn hex.
  3. EMAIL_PALETTE vào manifest của scripts/check-token-sync.mjs, cùng cỗ máy vừa dựng cho video. Gác giờ giữ 20 cặp / 2 bản chép tay.

Để đọc được đối tượng TS (không phải CSS như video), manifest có thêm kind: 'ts-object'.

Một báo động giả nữa của gác màu ​

Sau khi dọn, còn đúng 1 chỗ: dòng border: '#f2f2f2',, một khoá trong chính bảng màu. Cùng loại với --bg-color: #ffffff ở video, lần này ở dạng đối tượng TS thay vì CSS.

Không nới regex nữa. templates.ts là nguồn màu, giống theme.css, nên nó vào danh sách exempt, kèm lý do và kèm điều kiện: nó chỉ được miễn vì check-token-sync đã phủ nó. Miễn trừ không có gác thay thế là một lỗ, miễn trừ có gác thay thế là một ranh giới.

Kiểm chứng: đây là đường tiền và đường đăng nhập ​

Thư chứa mã đăng nhập và xác nhận thanh toán. Một thay đổi "chỉ là màu" vẫn phải chứng minh không đổi gì:

  • Render cả 16 loại thư trong EMAIL_CATALOG, trước và sau, rồi so từng ký tự: KHÔNG loại nào khác. (Cất thay đổi bằng git stash, render bản gốc, khôi phục, render bản mới, diff JSON.)
  • Trang huỷ nhận thư: HTML sinh ra khớp bản gốc từng mã màu.
  • tsc đúng 194 lỗi = mốc cũ, không lỗi nào ở ba file đã sửa.
  • wrangler deploy --dry-run xanh (3.987 KiB).
  • check-token-sync: 20/20 cặp khớp, và đỏ đúng ở cả ba kịch bản lệch (đổi theme.css / đổi bảng màu email / đổi tên một khoá).
  • Chín gác ở gốc repo xanh.

Trạng thái ​

47 chỗ tồn đọng toàn repo, từ 3.445 hai ngày trước. Tám site khoá ở 0. Còn lại đúng hai chỗ, cả hai đã cân nhắc:

  • packages 35, DebugFooter.tsx của admin-shared, lớp phủ gỡ lỗi với bảng màu tối riêng và màu theo HTTP method. Rủi ro hiển thị thật, giá trị cho người dùng bằng không.
  • docs 12, thư mục docs/ cũ, đã được thay bằng docs.conan.school/. Số phận của nó là một mục backlog riêng (xem rà soát 03.09).

Tài liệu nội bộ nền tảng Conan School.