wal: flush 20260712T1442

This commit is contained in:
pqhuy1987
2026-07-12 14:42:00 +07:00
parent 264ca2e8fe
commit d95bb0e210

View File

@ -4,6 +4,7 @@
## ① Đề-bài — 6 decision anh Kiệt ĐÃ CHỐT (lock)
1. **A1** — sửa `ApplyDrafterBypassOnSubmitAsync` (SVC:571-681): bypass CHỈ NV *cấp dưới* creator (order < drafterSlots.Min); creator TAY ô cấp mình (comment thật, SignedByUserId=creator). Giữ skip-NV-dưới của S60. Creator Cấp-1 0 subordinate pointer đứng (0,1) creator tự .
- 🔴 **anh Kiệt CONFIRM S112 (sau giải-thích-kỹ):** đúng hướng, **"BÁM ĐÚNG QUY TRÌNH ĐÃ ĂN"** = thay-đổi TỐI-THIỂU, **KHÔNG chế skip-logic mới**, không refactor engine chỉ gate cái bypass. Cấp KHÔNG-liền-nhau (vd creator Cấp-1 + Cấp-3, Cấp-2 người khác) creator ô mình TỪNG cấp, người-khác cấp-giữa **BÌNH THƯỜNG theo workflow** (không skip). Non-contiguous open-Q = **RESOLVED** (follow-workflow, chỉ bypass thuần NV order < creator-min-level).
2. **Không guard cứng self-approve** "cấp chỉ 1 người tạo duyệt luôn được". Creator duyệt cấp single-person của mình hợp lệ (KHÔNG thêm Forbidden guard B2).
3. **Fix EDGE-5 (hard-lock)** DaDuyet (+ TuChoi) = terminal khóa cứng: guard `fromPhase∈{DaDuyet,TuChoi}→throw` reject-branch (SVC:92) + `EnsureCanRejectV2Async` early-return `:321` + handler `FEAT:510-539` + controller. "Đã duyệt rồi cứng không trả lại hay thao tác được."
4. **1 nút** (save=advance) giữ nguyên, không tách.