Nhật ký phát hành
Changelog
Website và dữ liệu được theo dõi thành hai dòng lịch sử độc lập.
Website
Code, UI và tính năng
v2.0.6
- Trang `/lien-he/` gọn lại: bỏ mục lục bên phải (không truyền `headings`/`readingTimeMinutes` nên layout dùng khung một cột) và bỏ toàn bộ nội dung sau nút "Gửi thư" (các mục "Thư của bạn đi đâu", "Những gì tôi mong nhận được" và ghi chú cuối). Giữ lời mở đầu, form, Turnstile và thông báo trạng thái.
v2.0.5
- Form `/lien-he/` thêm Cloudflare Turnstile (site key public trong trang, widget render explicit để chạy được với Astro ClientRouter, reset token sau mỗi lần gửi). `functions/api/contact.js` xác minh token qua `siteverify` (kèm kiểm tra hostname) khi có secret `TURNSTILE_SECRET_KEY`; khi chưa có secret thì bỏ qua bước này và giữ honeypot, time-trap, kiểm tra Origin như cũ.
- Cập nhật lời mở đầu trang Liên hệ (hai đoạn mới) và ghi chú về Turnstile ở mục "Thư của bạn đi đâu"; bổ sung 5 unit test cho Turnstile trong `AC-CONTACT-function.test.ts`.
v2.0.4
- Thêm trang `/lien-he/` (Liên hệ) với form gửi thư qua Cloudflare Pages Function `functions/api/contact.js` (Resend API). Địa chỉ người nhận chỉ nằm trong secret `CONTACT_TO_EMAIL` của Cloudflare Pages, không có trong HTML, JS hay repo; khi chưa cấu hình secret, endpoint trả `503 not_configured` và trang hiển thị thông báo thay vì lỗi.
- Chống spam bằng honeypot, time-trap 3 giây, kiểm tra Origin và giới hạn độ dài trường; form vẫn gửi được khi tắt JavaScript (redirect 303 về trang Liên hệ kèm trạng thái).
- Thêm link Liên hệ ở footer, sitemap và các trang Giới thiệu, Miễn trừ trách nhiệm, Chính sách bảo mật; unit test `AC-CONTACT-function.test.ts`.
- `AGENTS.md` bổ sung mục 1.4 Tiêu chuẩn E-E-A-T (thứ tự section, Editor's Note, Reference Archives, giọng văn PKD, blacklist) và đồng bộ thứ tự section trong skill `ufo-content-artisan`.
v2.0.3
- Triển khai kiến trúc Top Index Hub (xLib Index) làm cửa chính chuyên mục theo ADR-0007 và BR-005: hỗ trợ domain UFO với cấu trúc Hero cover (stats strip, anchor jump) -> xLib Index (`#xlib-index`) -> Hồ sơ chi tiết (`#ho-so-chi-tiet`) -> Pillar pager (`ufo -> meta -> soul -> ufo`).
- Tách bài viết index khỏi luồng bài đọc thông thường: loại trừ khỏi thẻ directory reader, thẻ bài mới, tag/series stats, Lite catalog/reader và sitemap; không sinh route lẻ `/{domain}/articles/{slug}/`.
- Trang chủ cập nhật card chuyên mục UFO nổi bật nhãn `xLib Index` và số liệu phân loại.
- Bổ sung 4 validator V-1..V-4 trong `scripts/validate-content.mjs`, unit tests `AC-TOPIDX-domain-index.test.ts`, và 20 E2E tests `top-index.spec.ts` trên cả Desktop Chrome và Mobile Pixel 5.
v2.0.2
- Sửa base path cho Cloudflare Pages: `xlib.pages.dev` luôn phát hành CSS và JavaScript tại root `/`, kể cả khi Dashboard còn `BASE_PATH=/ufo-data` từ GitHub Pages cũ.
- Đồng bộ build verifier, Lighthouse và Playwright với root path; deployment ngoài Cloudflare vẫn hỗ trợ subpath qua `BASE_PATH`.
- GitHub Actions deploy `dist` lên Cloudflare Pages sau các gate của job content hoặc app; không còn deploy Firebase Hosting.
v2.0.1
- Bổ sung fade chuyển route bằng Astro ClientRouter và reveal tuần tự cho khối nội dung/card trên toàn bộ giao diện chuẩn, static article và Lite.
- Tôn trọng `prefers-reduced-motion`, giữ fallback no-JS/không có IntersectionObserver, không thêm package, tracker hay runtime server.
- Điều chỉnh entrance sequence chậm hơn, mượt hơn và thêm fade tuần tự cho kết quả Pagefind động.
- Trang Lite reveal từng dòng bài viết khi cuộn, thay vì chỉ fade toàn bộ khung nội dung.
v2.0.0
- Tách `deploy.yml` thành job `deploy-content` và job `deploy-app`. Push `main` chỉ gồm Markdown, projection, manifest, tag registry và `DATA_CHANGELOG.md` bỏ Chrome, Playwright, Vitest và Lighthouse.
- Job content vẫn chặn `content:sync` dirty, `content:validate`, `series:validate` và `version:validate`. `workflow_dispatch` và cron Chủ nhật 18:00 UTC chạy full gate.
v1.8.0
- Chuyển đổi toàn bộ môi trường deploy sang Firebase Hosting (`project-knowledge-disclosure.web.app`), cấu hình GitHub Actions pipeline với Node.js 24, base path `/`, và script build tối ưu.
- Nâng cấp thư viện Mermaid diagram lên phiên bản 12.1.0, bổ sung cơ chế render biểu đồ responsive, viewbox co giãn trên mobile, tương thích dark/light mode và hạn chế tối đa tràn khung ngang.
v1.7.0
- Tinh gọn giao diện bài đọc theo phong cách Minimalist Reading Experience; chuẩn hóa khoảng cách dòng (line-height), typography, khoảng đệm container và loại bỏ các chi tiết trang trí gây xao nhãng.
- Tối ưu layout bài viết trên thiết bị di động, đảm bảo toàn bộ blockquote, code block và bảng biểu hiển thị mạch lạc.
v1.6.0
- Bổ sung tính năng Mục lục thông minh hỗ trợ thu gọn/mở rộng (Collapsible TOC), cho phép người đọc mở hoặc đóng danh sách đề mục tùy ý.
- Tối ưu TOC tự động đóng khi cuộn trang trên mobile viewport để giải phóng diện tích màn hình đọc.
v1.5.0
- Bổ sung thẻ "Hero Card On Top" ghim các bài viết tiêu điểm và nghiên cứu mới lên vị trí nổi bật nhất trên đầu trang chủ.
- Hỗ trợ đánh dấu nhãn nổi bật, phân loại domain trực quan và hỗ trợ điều hướng tức thời không phụ thuộc JavaScript.
v1.4.0
- Chuẩn hóa định dạng hiển thị ngày giờ cập nhật (`updatedAt`) theo chuẩn ISO và định dạng tiếng Việt trên toàn bộ trang chi tiết bài viết và danh thiếp bài viết (ArticleCard).
- Đảm bảo hiển thị ngày tháng nhất quán giữa server-rendered HTML và metadata SEO.
v1.3.0
- Bổ sung bộ kiểm thử tự động hóa E2E Playwright toàn diện chạy trên cả hai môi trường: Desktop Chrome và Mobile Chrome (mô phỏng Pixel 5).
- Tích hợp báo cáo lịch sử kiểm thử Playwright (`summary.json`, `latest.json`, `history.json`) vào artifact build của website.
v1.2.0
- Thiết lập cơ chế Plan Publish, điều phối xuất bản có kiểm soát theo kế hoạch định sẵn từ `0.tag-series/`.
- Bổ sung các quy tắc kiểm tra tính toàn vẹn dữ liệu trước khi chuyển đổi trạng thái bài viết từ `reviewing/` sang `done/`.
v1.1.0
- Bổ sung bộ script tự động hóa vận hành: `scripts/migrate-content.mjs`, `scripts/build-tag-projection.mjs`, và `scripts/validate-series.mjs`.
- Đồng bộ hóa content projections và tag registry tự động, hỗ trợ kiểm tra dry-run và kiểm toán tính nhất quán của tập dữ liệu trước khi build.
v1.0.0
- Thêm báo cáo Lighthouse và K6 server-rendered, fallback an toàn, snapshot/delta advisory và chỉ báo LCP lab ở footer.
- Bổ sung two-pass Lighthouse build, artifact audit và K6 hậu deploy với snapshot bot được giới hạn bằng ADR.
- Bổ sung card "Mới cập nhật" (bảng điện tin mới) tại hero homepage, hiển thị tối đa 10 bài viết mới nhất đã publish theo thứ tự `updatedAt` giảm dần, hỗ trợ no-JS và đầy đủ accessibility.
v0.9.0
- Chuẩn hóa tên domain LING trên menu và tài liệu; cập nhật tên tiếng Anh cùng mô tả trang domain LING.
v0.8.0
- Thêm black-tag build-time cho homepage, tag filter theo domain, bài tuyển chọn và trang bài; chip được mở nội dung bằng hover hoặc keyboard focus nhưng vẫn giữ link HTML truy cập được.
v0.7.0
- Thêm reading time build-time cho trang bài, ArticleCard và metadata kết quả tìm kiếm.
- Thêm progress bar và ước lượng thời gian còn lại trên trang bài; tiến độ chỉ tồn tại trong bộ nhớ trang, không gửi hay lưu dữ liệu đọc.
v0.6.0
- Thêm tag-series từ Markdown registry, validation membership và route tĩnh theo domain.
- Hiển thị chip series trên trang chủ, trang domain và metadata bài viết; series không làm thay đổi semantics của tag thường.
v0.4.0
- Thêm registry, schema contract, badge và hàm lọc Hình thái tri thức cho records tương lai.
- Chuyển toàn bộ bài viết sang workflow canonical `draft/` → `reviewing/` → `done/`; build chỉ publish `done/` và tự dọn projection stale.
v0.3.0
- Thêm trang Phân loại kiến thức, link Footer và quy ước giải thích Phân loại theo scheme.
v0.2.0
- Thêm registry tag, validator, dry-run migration và nền tảng tag discovery.
v0.1.0
- Cập nhật UI, text/menu, font size, theme và trang changelog.
v0.0.0
- Initial project created.
