wal: flush 20260727T1030
This commit is contained in:
@ -99,4 +99,29 @@ NHƯNG cùng filter đó làm phiếu xóa **vô hình với MỌI query** ⇒ m
|
||||
|
||||
**Nền đã có (lead peek):** `ApprovalWorkflow.Version` (int, monotonic per `Code`) · `IsActive` · `ActivatedAt` · `IsUserSelectable`; note `ApprovalWorkflowV2AdminFeatures.cs:402` *"Sau UAT khi link với PE/Contract thật cần check usage trước khi delete"* ⇒ usage-check là việc còn treo.
|
||||
|
||||
- [ ] S1-ter — Invest #4: cơ chế versioning hiện hành + ranh AN-TOÀN/PHÁ-VỠ + phiếu đang chạy chịu ảnh hưởng gì
|
||||
- [x] S1-ter — Invest #4 XONG (25 phát hiện) — `sub-invest-wfver-4.md`
|
||||
- [x] S2 — spec XONG 37.490 B — `spec-pe-delete-approver.md` (2 phần, ~50 mục checklist)
|
||||
- [x] S3 — reviewer XONG `PASS-WITH-FLAGS 17 FLAG (4H/8M/5L)` — `reviewer-spec-review.md`; **F.0 KHÔNG bác được** sau 6 đường tấn công; lead đã vá **4H + 8M** vào spec
|
||||
|
||||
---
|
||||
|
||||
## 🔴 OWNER CHỐT — LƯỢT 3 (sau review)
|
||||
|
||||
| # | Câu | Anh chốt | Vá FLAG |
|
||||
|---|---|---|---|
|
||||
| 8 | Quyền xóa nháp vs xóa-khi-duyệt | **TÁCH 2 quyền riêng** | H1 |
|
||||
| 9 | Cờ F6 per-người hay per-cấp | **PER-NGƯỜI** (`matchingLevel`, 1 người) | H2 |
|
||||
| 10 | Cờ F5 `AllowApproverFinalize` | **PHÁ VỠ** (nhất quán ngưỡng CEO) | M1 |
|
||||
| 11 | `CeoApprovalThreshold` | **PHÁ VỠ** | W3#12 |
|
||||
| 12 | `Step.DepartmentId` | **AN TOÀN** | W3#13 |
|
||||
| 13 | Cách chạy hmw | **CHIA 2 ĐỢT — F trước, A-E sau** | — |
|
||||
|
||||
🎁 **Lời giải gọn cho (8):** đường xóa **nháp GIỮ NGUYÊN không policy** (Drafter không mất gì) · đường xóa-khi-duyệt = **endpoint RIÊNG** mang policy **root có sẵn** `PurchaseEvaluations.Delete` ⇒ **0 key mới** ⇒ `Menu keys=54` / `Policies=216` **không đổi** (khớp M6).
|
||||
|
||||
## ĐỢT 1 (hmw lượt này) — hạng mục F + schema F6
|
||||
|
||||
**Phạm vi:** checklist mục **1-2** (schema F6 + migration) → **F-1…F-4 + F-1a/b/c** (lệnh Update + validator 2 phép thử + authz) → **F-5/F-5a** (hạng NỬA) → **F-6** (message 403) → **F-10** (vá comment sai) → **F-11** (5 dây tick F6) → test **F-12…F-16**.
|
||||
**KHÔNG làm đợt này:** nút xóa FE · menu restructure · màn "Đã xóa" (mục 3-28) — đợt 2.
|
||||
**Lý do phân đợt:** F.0 chứng minh A-E không chạy nếu thiếu F ⇒ đợt 1 xong là UAT được ngay, biết chắc nền đúng trước khi xây tiếp; blast radius ≥6 module nên tách để truy lỗi dễ.
|
||||
|
||||
- [ ] S4-đợt1 — hmw fan-out Opus 5 MAX
|
||||
|
||||
Reference in New Issue
Block a user