wal: flush 20260731T1733
This commit is contained in:
@ -42,11 +42,16 @@ chain:
|
||||
deploy-KHỎE (run #435 · gate-CI 609 tách-phần · Mig71 prod-top+restart-proof · bundle 4/4 rotate ·
|
||||
smoke 6/6 ?group= wired; mục-4 backfill/Σ = CHÂN-LÝ-RỖNG prod-0-phiếu — đo lại khi K8 đẻ phiếu thật.
|
||||
cicd #53 return-garble tiếp, artifact trọn)
|
||||
[!] wf: K3-BE p2 ĐANG CHẠY (p1 wf_a04124a7 = engine-process-exit 0-delta-0-artifact; LEAD tự chạy bước-0:
|
||||
prod = localhost\SQLEXPRESS [ghi lại — localhost/tcp:1433 đều fail], QT-DN-V2-001 LIVE 1-active+2-
|
||||
archived type-1, ROSTER 3-trạm PRO→CCM→CEO 11 người ghi nguyên văn sub-implbe-k3.md §0, vá-11 danh-
|
||||
tính phân giải bằng dept, chuong.phan = giữ cờ finalize; p2 seed từ bảng verified — khỏi ssh).
|
||||
Song song: cicd-K2 verify nền. Sau BE: K3-FE + K3-test → gate K3 → push
|
||||
[!] K3 CHẺ NHỎ sau 2 lượt engine-process-exit (p1 wf_a04124a7 + p2 Agent — cả 2 0-delta-0-artifact;
|
||||
bài: task-đọc-nhiều-trước-Write chết, task-hẹp-Write-sớm sống). Bước-0 LEAD: prod=localhost\SQLEXPRESS,
|
||||
QT-DN-V2-001 LIVE, ROSTER 3-trạm 11 người @sub-implbe-k3.md §0, chuong.phan giữ cờ.
|
||||
ĐANG CHẠY: nhịp-1-BE lane (seed 8 wf + 8 MenuKeys — đã append §1 kế-hoạch + khai L1-không-khuôn-type-10
|
||||
→mirror-ContractV2 + L2-ép-false-không-cản-seeder) ∥ K3-FE lane (resolvePath AwV2_KhkkN* + gỡ khóa
|
||||
Designer + panel ×2). XONG LEAD-SOLO: nhịp-2 port finalize (branch mirror PE :866-876 + opt-out
|
||||
applyLevelFinalize 3-tầng interface/service/controller + comment (a)(b) supersede-S155 + 2 test-callsite
|
||||
ct:) + nhịp-3 (gỡ CREATE ép-false :380 [GIỮ PUT-Conflict — luật versioning CHUNG, spec vá-3 liệt nhầm,
|
||||
lệch KHAI chờ gate soi] + rào (v) pin-đúng-nhóm regex KHKK-N[1-8]). Sau 2 lane: build+test → K3-test
|
||||
hẹp → gate K3 → commit-push → cicd → /pause (mandate mới)
|
||||
[ ] 🔴 MANDATE MỚI (owner in-turn @S165 ~17:3x: "xong nốt thì /pause rồi những đầu việc tiếp theo để
|
||||
lần tiep sau làm tiếp") — SUPERSEDE "chạy 1 mạch": XONG NỐT K3 (BE p2 đang chạy → FE + test song song
|
||||
→ gate K3 → commit-push → cicd verify) rồi /pause. K4a→K4b→K5→K4c→K6→K7→K8 = lần /tiep sau.
|
||||
|
||||
@ -37,3 +37,28 @@ K3-BE: IN-PROGRESS — bước-0 XONG (lead), §1-8 p2 đang chạy
|
||||
KHKK-N1..N8 mirror ĐÚNG cấu trúc này (3 Steps × Levels như bảng), resolve user theo EMAIL.
|
||||
|
||||
(§1-8 p2 ghi tiếp bên dưới)
|
||||
|
||||
---
|
||||
|
||||
# §1 [p2] KẾ HOẠCH (ghi TRƯỚC khi code — 3 dòng)
|
||||
|
||||
1. **A** — `DbInitializer.cs`: thêm `SeedKhkkGroupWorkflowsAsync(db, userManager, logger)` (UNGATED, đặt sau
|
||||
cụm 4 seeder WorkflowApps V2 ở `InitializeAsync`), mirror khuôn `SeedSampleContractWorkflowV2Async`; resolve
|
||||
11 email → dict 1 lượt, rồi loop N=1..8 tạo `KHKK-N{n}` (type-10) 3 Steps × Levels theo roster §0.
|
||||
2. **B** — `MenuKeys.cs`: +8 const `AwV2_KhkkN1..N8` + vào `All` (ràng buộc T6: key ∈ All BẮT BUỘC có menu-row)
|
||||
⇒ `DbInitializer.SeedMenuTreeAsync`: +8 row con dưới `ApprovalWorkflowsV2` (order 3..10), idempotent per-Key.
|
||||
3. **C** — `dotnet build SolutionErp.slnx` (0W/0E) + `dotnet test SolutionErp.slnx` full (baseline 609/0) + đếm
|
||||
`MenuKeys.All` bằng lệnh máy → ghi DELTA.
|
||||
|
||||
**Đo TRƯỚC khi sửa (baseline, lệnh máy chạy ở §4):** `MenuKeys.All` hiện = ? (đo ở §4, không đoán).
|
||||
|
||||
🔴 **2 lệch phát hiện lúc khảo sát (khai ngay, KHÔNG tự quyết):**
|
||||
- **L1 — "vùng seed workflow type-10 hiện có (W3 S161)" KHÔNG TỒN TẠI.** `grep ContractSigningPlan
|
||||
DbInitializer.cs` = **0 hit** (chỉ có `SeedKeHoachKyKetAccessAsync` = seed *quyền*, không phải workflow).
|
||||
⇒ Không có khuôn type-10 để mirror; tôi mirror khuôn gần nhất **cùng lớp** = `SeedSampleContractWorkflowV2Async`
|
||||
(`:226`) / `SeedSampleProposalWorkflowV2Async` (`:276`) — cùng cách dựng `ApprovalWorkflow + Steps + Levels`.
|
||||
- **L2 — `AllowApproverFinalize` bị ÉP `false` server-side cho type-10 ở đường Designer.**
|
||||
`ApprovalWorkflowV2AdminFeatures.cs:380-381`: `AllowApproverFinalize = typeEnum != ...ContractSigningPlan && l.…`
|
||||
(W1 S161 F-8 containment). Seeder ghi entity TRỰC TIẾP nên **không bị chặn**, nhưng nếu admin bấm "tạo version
|
||||
mới" qua Designer thì cờ rơi về false. Tôi vẫn set `true` theo lệnh (OG-3/OG-9) + ghi comment đúng câu lead
|
||||
giao; **nhịp sau cùng wave** port nhánh service + (nếu owner chốt) gỡ ép-false ở `:381`.
|
||||
|
||||
@ -0,0 +1,29 @@
|
||||
K3-FE: IN-PROGRESS — build ×2 · SHA-pair (chưa chốt)
|
||||
|
||||
# sub-implfe-k3 — K3-FE 3 việc FE (Layout AwV2_KhkkN*, gỡ khóa duyệt-sớm KHKK, comment supersede Panel)
|
||||
|
||||
> Artifact chống #53 — đổ liên tục từng việc. Dòng-1 = verdict (cập nhật cuối).
|
||||
> Run: 2026-07-31-S164-4gd-khkk-fanout · role: implementer-frontend · lượt K3
|
||||
|
||||
## §0 — Trạng thái mở lượt (đo đĩa TRƯỚC khi gõ, bài học S164/K2)
|
||||
|
||||
- `fe-admin/src/components/Layout.tsx:170-176` — `awV2Match` whitelist hiện: `'DuyetNcc' | 'DuyetNccPhuongAn' | 'Contract'`. Chưa có nhánh KhkkN. ✔ khớp đề-bài.
|
||||
- `Khkk_*` staticMap ĐÃ CÓ SẴN 6 dòng (`:35-40`, từ W2 S161) — đề-bài "CẤM nới họ Khkk_" ⇒ đọc là **cấm THÊM dòng mới**, 6 dòng cũ giữ nguyên byte.
|
||||
- `fe-admin/src/pages/system/ApprovalWorkflowsV2Page.tsx` 1368 dòng. Lock KHKK sống ở **4 cụm**: `:151` note-const · `:242-259` `levelFlagsPayload(e, lockEarlyFinalize)` + 2 call-site `:783/:815` · `:633-638` `earlyFinalizeLocked` · `:1281-1329` render (banner + 2 checkbox `disabled`/`checked` ép false + 2 `title`). ⇒ gỡ lock = đụng CẢ 4, không phải 3.
|
||||
- `KhkkWorkflowPanel.tsx:6-9` — câu cần supersede nguyên văn: *"KHÔNG 2 đường kết-thúc-sớm (AllowApproverFinalize / CeoApprovalThreshold — anh phán «PHÁ VỠ» S155; W1 đã rào ở Designer type-10)"*.
|
||||
- Baseline SHA-pair Panel ×2 = `2B64144EF6E8567D6997C0E19B9686C083080216510A4CD8DA6157A80F584817` (khớp đề-bài `2b64144ef6e8`). ✔
|
||||
- `tsconfig.app.json:19-21` = `noUnusedLocals` + **`noUnusedParameters`** true ⇒ KHÔNG được để param `lockEarlyFinalize` mồ côi; phải xoá param + sửa 2 call-site.
|
||||
|
||||
## §1 — VIỆC 1 Layout.tsx `AwV2_KhkkN{1..8}` — DONE
|
||||
|
||||
- `fe-admin/src/components/Layout.tsx:177-182` (+8 dòng, chỉ INSERT, 0 xoá): thêm nhánh
|
||||
`if (/^KhkkN[1-8]$/.test(code)) return '/system/approval-workflows-v2/' + code` **BÊN TRONG** khối
|
||||
`awV2Match` sẵn có, đặt SAU whitelist 3 code cũ ⇒ 3 code cũ đi đường cũ, 0 đổi hành vi.
|
||||
- Regex `^KhkkN[1-8]$` neo 2 đầu ⇒ `KhkkN0`/`KhkkN9`/`KhkkN12` KHÔNG khớp (rơi về `return null`, đúng ý "n=1..8").
|
||||
- **Phép-âm (đề-bài yêu cầu) — PASS:** `git diff -U0 | grep -E "^\+ *Khkk_[A-Za-z]+: *'"` = **0 hit**.
|
||||
Kèm **control dương**: cùng regex quét cả file = **6 hit** (6 dòng `Khkk_*` cũ) ⇒ mẫu CÓ RĂNG, 0-hit là
|
||||
0-hit thật chứ không phải regex trượt. Dòng `Khkk_` duy nhất trong diff là **comment** (mention, không
|
||||
phải route) ghi rõ lý do CẤM nới.
|
||||
- `git diff --stat` = `1 file changed, 8 insertions(+)`.
|
||||
|
||||
## §2 — VIỆC 2 gỡ khoá duyệt-sớm KHKK (đang chạy)
|
||||
Reference in New Issue
Block a user