diff --git a/.claude/WAL.md b/.claude/WAL.md index d297313..6007abf 100644 --- a/.claude/WAL.md +++ b/.claude/WAL.md @@ -21,12 +21,15 @@ chain: · **Mig 72 CONFIRMED prod** = dòng đầu `__EFMigrationsHistory`. Backfill đo dữ-liệu THẬT: 7 dòng · 5 có hạng mục · **5/5 đã có mã** (2 dòng chưa gán ⇒ NULL, đúng bất-biến) · sqlcmd qua **integrated auth `-E`**, KHÔNG đụng mật khẩu prod (`$env:PROD_DB_PASSWORD` trống trong phiên ssh — không đi tìm) · smoke: admin/eoffice **200** · api `/api/contract-signing-plans` + `/api/auth/me` **401** (pipeline auth sống, không phải IIS đứng suông) -- [!] **đợt-2 S177 `b346b41` PUSHED, đang chờ CI** (ảnh anh gửi = màn NHÁP KHKK/2026/008, 3 điểm → làm 2 bỏ 1): +- [x] **đợt-2 S177 `b346b41` ship + deploy VERIFIED 2-vế ×2 app** (admin `DbWf4jNk` · eoffice `BqrZMtfo`, 380s) — ảnh anh gửi = màn NHÁP KHKK/2026/008, 3 điểm → làm 2 bỏ 1: · ① "Làm header dưới đây" — ô **Hạng mục (dự án)** dời từ mục 1 xuống header mục 2; ĐẶT NGOÀI ternary `lines.length===0` (phiếu chưa có NCC vẫn phải biết gói việc — ca *vắng-mặt trông giống ổn*) · ② "+ thêm hạng mục ở đây" — khối "Thêm hạng mục cho:" dời TỪ DƯỚI BẢNG vào dòng cuối `tbody`, `colSpan={4}`. Panel `addFor` GIỮ ngoài bảng (form nhiều ô, nhét vào `` vỡ lưới `table-fixed`). Đã đối chiếu KHÔNG nhân đôi (3 hit = 1 nút + 1 chú thích + 1 header panel) · ③ "nút edit" — 🔴 **anh chốt BỎ** (*"à vậy thôi khỏi"*). Màn nháp đã sửa TRỰC TIẾP trên dòng; ô trống cột 4 là do dòng đến từ PE (`peReferenceAmount != 0`) nên nút xoá bị chặn CÓ CHỦ ĐÍCH từ S175 — KHÔNG phải thiếu nút · 🔴 **GIỮ mã dự án lặp trên từng dòng** — anh: *"để sau này người ta dễ hình dung hạng mục to nó chứa các hạng mục con nào"*. Câu hỏi này em nêu 2 lượt, anh chốt 2 lần cùng hướng ⇒ ĐỪNG hỏi lại · diff **CHỈ 2 file FE, 0 file BE** ⇒ .NET test không thể ảnh hưởng, bỏ qua vòng test đó (khai rõ). 2 app build sạch · lint 0 kêu file này · SHA IDENTICAL + · **byte-level 3/3 KHỚP local↔prod ×2 app**: `colSpan:4` admin 2=2 user 1=1 · `items-baseline` 9=9 / 8=8 · `Hạng mục (dự án)` **1**=1 (=**dời**, KHÔNG nhân đôi). Smoke 200/200/401 + · 🔴 **"trước" lấy từ GIT chứ không từ mạng** (bundle cũ lại bị deploy dọn): `530af22` có **0** `colSpan={4}`, `b346b41` có 2 ⇒ discriminator thật. Nút thêm: `530af22` dòng 638 > `
` 628 = NGOÀI · `b346b41` dòng 631 < 666 = TRONG + · 🔴 **BẪY ĐÃ SẬP 1 LẦN rồi mới thấy:** `HEAD~1` KHÔNG phải commit trước của mình — Stop-hook chèn `wal: flush` ở turn-boundary nên `HEAD`=`6d666eb` (wal), `HEAD~1`=chính commit mình ⇒ phép so đầu tiên **so bản mới với chính nó**, ra "y hệt nhau" trông như KHÔNG có gì đổi. So bằng **SHA đích danh**, đừng dùng `HEAD~n` trong repo có hook auto-commit - [!] 🔴 `/fable-real reviewer` `wf_264fb5c2-0db` = `SETUP-REVIEW: SỬA-6` (nền ĐỨNG VỮNG) — **6 điểm CHƯA vá cái nào**. Spec: `runs/2026-08-06-S176-doi-style-3-vai/spec-va-doi-style-3-vai-06-08-2026.md` - [!] 🔴 **SỬA-1 SỐNG-CHẾT:** thước dispatch `git diff origin/main...HEAD` (**ba-chấm**) ⇒ mù uncommitted+untracked ⇒ đội gate PRE-commit **chết CÂM** (0 spawn, 0 SKIP để lộ). Sửa 4 site → 2-chấm ∪ `porcelain` lọc `??` - [!] 🔴 **SỬA-5a (rẻ nhất):** 3 vai style thiếu dir `agent-memory//` ⇒ vô hình trong đo/budget. Lead đo lại: **3/3 THIẾU CONFIRMED**