CICD-K6: (đang đo — chưa chốt) # cicd-monitor — verify deploy K6 (S167, 2026-08-01) Push range `e202393..1c6d77a` (2 commit: `d82c5a8` wal-flush + `1c6d77a` K6). ĐÚNG 1 file code `fe-admin/src/components/Layout.tsx`. 0-mig · fe-user 0-diff · BE 0-diff. Artifact ghi TỪNG MỤC ngay khi có bằng chứng (luật #53: ghi-đĩa-TRONG-lúc-làm; return chỉ là tóm tắt). --- ## M0 — Mốc PRE (tự đo LIVE lúc run CÒN `running`, KHÔNG tin số chép) Cửa sổ vàng: bắt được #440 ở `running` lúc **11:55:43** ⇒ bundle LIVE lúc đó = PRE thật. | App | index-*.js | index-*.css | size js (B) | Last-Modified js | Content-Type | |---|---|---|---|---|---| | admin | `index-C2FhHCNT.js` | `index-DqXm5Hpn.css` (86.495) | **1.758.685** | 01 Aug 04:13:05 GMT = **11:13:05 +07** | application/javascript | | eoffice | `index-DFOCQ2ks.js` | `index-DlN3yZ5L.css` (92.233) | **1.676.752** | 01 Aug 04:14:05 GMT = **11:14:05 +07** | application/javascript | 🔑 **PRE tự chứng là bundle #439 bằng LM, không chỉ bằng hash**: LM 11:13:05 / 11:14:05 nằm TRỌN trong cửa-sổ deploy #439 (11:08:17 → 11:14:33). Trùng baseline đề bài — nhưng trùng đó là KẾT QUẢ ĐO, không phải giả-định đầu vào. Content-Type `application/javascript` + ~1,7MB ⇒ không dính bẫy SPA-fallback (`text/html` ~900B). File tải về khớp byte-for-byte `Content-Length` (1.758.685 / 1.676.752). ## M0-bis — Chọn byte-marker CÓ RĂNG (verify 0-hit PRE TRƯỚC khi phong) Đề bài cảnh báo đúng: K6 = 12 key literal **đã tồn tại từ K4a** + comment sẽ bị Vite strip ⇒ marker ngây thơ = 0 bit. Đo PRE xác nhận: ❌ **LOẠI marker "key đơn lẻ"** — PRE admin đã có sẵn: `PurchaseEvaluations` **4** · `KeHoachKyKet` **1** · `HopDongCung` **1** · `PeWorkflows` **3** ⇒ POST có hit cũng **0 bit**. ❌ **LOẠI marker tên biến** `ADMIN_HIDDEN_KEYS` — biến module-scope, minifier đổi tên (bài K3 `earlyFinalizeLocked`). ❌ **LOẠI marker comment** — toàn bộ khối lineage 2-đảo là `//` ⇒ Vite strip. ✅ **CHỌN marker HỢP-CHẤT: TRẬT TỰ KỀ NHAU của literal trong `new Set([...])`.** Từng literal thì cũ, nhưng *thứ tự kề nhau* chỉ sinh ra khi Set mới được minify. Đo PRE admin (regex chấp cả `"` lẫn `'`): | # | Marker (adjacency) | PRE admin | |---|---|---| | A | `PurchaseEvaluations","KeHoachKyKet","Contracts` (3-key) | **0** | | B | `PurchaseEvaluations","KeHoachKyKet` | **0** | | C | `HopDongCung","Forms` | **0** | | D | `Workflows","PeWorkflows` | **0** | - **control-DƯƠNG cùng file/cùng pipeline grep:** `/purchase-evaluations` = **68**, `/khkk/list` = **13**, `/suppliers` = **16** ⇒ 0-hit ở A-D là ĐO THẬT, không phải grep chết. - **control-ÂM:** chuỗi bịa `ZZZ_NOT_EXIST_MARKER` = **0**. ✅ **Marker ÂM (K6 là DISPLAY-ONLY, không phải gỡ route):** 3 chuỗi route trên PHẢI CÒN trong bundle admin POST. Nếu chúng tụt về 0 thì K6 đã cắt nhầm sang lớp route/quyền. ✅ **Differential:** eoffice = FROZEN kỳ vọng (fe-user 0-diff) ⇒ A-D phải **0** ở eoffice cả PRE lẫn POST.