wal: flush 20260731T1622
This commit is contained in:
@ -22,10 +22,12 @@ chain:
|
||||
[x] commit 50e6d8c PUSH → cicd PASS 6/6 (run #434 6m31s · gate-CI 598 · Mig70 prod-top + recycle-proof ·
|
||||
seed 86 TAM-GIÁC 3-nguồn · bundle 4/4 rotate + 4-cũ-chết · smoke 8/8). cicd #53 ×2 @S165 return=memory-
|
||||
talk, artifact cứu trọn. Bài: hash local ≠ hash CI — mốc prod luôn re-snapshot LIVE
|
||||
[!] wf: K2-BE p1 wf_583be7ad-1a2 CHẾT giữa mục c (#53 ×3 @S165 WRITE-lane return-rỗng; disk-truth: §a Mig71
|
||||
20260731085624 3-file APPLIED 2-DB + §b entity/config DONE; Features.cs dở 3 CS7036 :589/:627/:709)
|
||||
→ p2 relaunch-cắt-gọt ĐANG CHẠY (nốt c-h; §e ẩn-số p1 đo: 0-đường-ghi-Line ngoài auto-gen :389).
|
||||
Gate 5-anchor 5/5 ✓. FE/test đợi BE land (khuôn K1)
|
||||
[x] K2-BE TRỌN (p1 wf_583be7ad chết-giữa-c + p2 chết-@f-0-byte-artifact [#53 ×2 task này, ×4 @S165] +
|
||||
lead-solo đóng: 3-hằng-Scope · submit-guard vá-5-THẮNG-nền-:126 [ghost-window K2→K4b khai] ·
|
||||
controller ?group= · §e DONE-BY-DESIGN EnsureDraftEditable · 3 test cũ update-spec-3-cột).
|
||||
Build 0W/0E · suite 598/0. Artifact sub-implbe-k2.md §c-h = lead on-behalf sau verify-đĩa
|
||||
[!] wf: K2-FE + K2-test song song wf_9b36e4cb-c87 (implfe: types+KhkkCreatePage-nhóm+OG-7-nút-phụ ×2 app,
|
||||
npm-only · test: ≥7 test blueprint T-a..T-g, dotnet-only — 2 lane không giẫm build). Sau: gate K2 → push
|
||||
[ ] MANDATE còn lại (🔴 owner @PAUSE-2 "chạy 1 mạch ko ngừng"): K2(FE+test sau BE)→gate→push → K3 →
|
||||
K4a→K4b→K5→K4c→K6 → K7 → K8-prep (form 14 người fail-closed = điểm dừng hợp lệ duy nhất).
|
||||
Mỗi wave: build+test+reviewer-gate rồi lăn; DỪNG chỉ khi FAIL cứng. OG-6 = soát-SAU (HẾT chặn push).
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
K2-BE: IN-PROGRESS — build 0W/0E? chưa đo · test chưa chạy
|
||||
K2-BE: DONE — build 0W/0E · test 598/0 (45D+553I; 3 test cũ update-theo-spec, 0 test mới)
|
||||
|
||||
# sub-implbe-k2 — K2 BACKEND (S164, wave 2/8, SP-002 phiếu mang hạng-mục + nhóm)
|
||||
|
||||
@ -93,4 +93,64 @@ Bảng 96→**97** là do **Mig 70 (K1)** vừa catch-up, KHÔNG phải Mig 71 (
|
||||
- `…/Configurations/ContractSigningPlanLineConfiguration.cs` — `TenHangMuc.HasMaxLength(500)` (== `ContractCatalogEntry.TenVi`,
|
||||
EF = source of truth cho validator, bài S35) · index swap 2→3 cột · `+HasIndex(CatalogEntryId)`.
|
||||
|
||||
(mục c-h ghi tiếp bên dưới)
|
||||
---
|
||||
|
||||
> 🔴 **KHAI VẾT #53 ×2 trên task này (p1 wf_583be7ad + p2 relaunch):** p1 chết giữa §c (return rỗng
|
||||
> no-StructuredOutput); p2 làm TIẾP trên code THẬT (rào/DTO/query/picker — đo bằng grep+diff) nhưng
|
||||
> **0 byte vào artifact này** (vi phạm ghi-trong-lúc-làm) và chết ở §f với return ý-định. §c-h dưới đây
|
||||
> = **lead on-behalf SAU VERIFY-ĐĨA** (build+test thật, đường (0) WRITE-lane recovery) — không phải lời lane.
|
||||
|
||||
## §c Rào + DTO + call-site — DONE (p2 ~85% + lead 3 hằng Scope)
|
||||
|
||||
- Rào `:384-391`: hasLivePlan thêm `&& p.ApprovalGroup == approvalGroup` — (PeId, Group) 2 vế + comment
|
||||
"CỐ Ý KHÔNG unique DB (vị ngữ Phase != TuChoi)". Message 409 mới. [p2]
|
||||
- DTO: LineDto `+CatalogEntryId +TenHangMuc` (`:78-79`) · DetailDto `+ApprovalGroup` (`:678`) + display-gate
|
||||
DaDuyet (`:683`) · ListItemDto `+ApprovalGroup` (`:161`, map `:792`). Call-site CS7036 :589/:627/:709 đã sửa. [p2]
|
||||
- `ContractSigningPlanScope` +3 hằng `Min/Max/DefaultApprovalGroup` (1/8/1) — p2 tham chiếu mà chưa định
|
||||
nghĩa (3 CS0117); lead thêm. [lead]
|
||||
|
||||
## §d Validator + submit-guard — DONE (p2 validator + lead guard)
|
||||
|
||||
- CreateCommand `+ApprovalGroup int?` default→1 (`:387` — UI-1-1 hướng-1 OG-1/OG-7) + validator
|
||||
InclusiveBetween qua Scope (`:343-346`). Auto-gen line mồi `CatalogEntryId=null, TenHangMuc=null` (`:448-449`)
|
||||
— gán hạng mục = Lines-editor **K4b** (nền `:113`), K2 không đẻ đường ghi line mới. [p2]
|
||||
- **Submit-guard** `ContractSigningPlanWorkflowService.SubmitAsync` (sau EnsureCanSubmit): (i) CHẶN null
|
||||
CatalogEntryId — **vá-5 THẮNG nền `:126`** (nền định CHO-QUA null-legacy); ghost-window K2→K4b khai
|
||||
trong comment: phiếu cũ bị Trả-lại sẽ kẹt trình tới khi K4b land, message chỉ rõ việc cần làm;
|
||||
(ii) khác-nhóm → 409 theo code mẫu nền K2.d. [lead]
|
||||
|
||||
## §e Phase-guard line-edit sau DaDuyet — DONE-BY-DESIGN (ẩn số p1 giải)
|
||||
|
||||
- p1 đo: **0 đường ghi Line** ngoài auto-gen `:439` (create-only). Đường line-write DUY NHẤT tương lai
|
||||
= Lines-editor K4b. Gate hiện hữu `ContractSigningPlanScope.EnsureDraftEditable` (`:230+`) chỉ cho
|
||||
{DangSoanThao, TraLai} ⇒ **DaDuyet tự bị loại** ở MỌI đường ghi dùng Scope-guard (khuôn "4 đường ghi
|
||||
dùng chung"). K2 không dựng guard mồ-côi (ghost-wire); ràng buộc ghi vào checklist K4b: **editor PHẢI
|
||||
qua EnsureDraftEditable** + K2-test lane thêm test khẳng định DaDuyet bị chặn.
|
||||
|
||||
## §f List + Σ — DONE (p2 + lead controller)
|
||||
|
||||
- Query `+ApprovalGroup int?` (`:699`) + filter (`:731-732`) — K2 là CHỦ param (QĐ-3). [p2]
|
||||
- Σ×3 list: PeReference (`:788`) · Proposed (`:790`) · **+Approved sau freeze** (`:797-798`, vá-8 comment
|
||||
`:793-796`). [p2]
|
||||
- Controller List `+[FromQuery(Name="group")] int? group` → query. API = `?group=n` đúng chữ spec. [lead]
|
||||
|
||||
## §g Bảng 18 consumer PeReferenceAmount/Σ — disposition
|
||||
|
||||
Nền K2.f đã grep-verify 16 site (10 BE + 6 FE, đối chiếu l3-F18) + 2 site Σ mới (`:712-713` nay
|
||||
`:788-798`). Mig 71 **0 đụng cột tiền** (chứng cấu-trúc: grep PeReference/Proposed/Approved trong file
|
||||
mig = 0 hit — p1 §a). Σ trước==sau: local 0-row (control rỗng, khai đúng độ mạnh — p1); phép đo THẬT
|
||||
= prod post-deploy (cicd K2 sẽ đo). Consumer FE (6 site) đổi theo ở K2-FE/K4b — bảng chi tiết sống ở
|
||||
nền `sub-invest-fable-b2-cum1.md` §K2.f, không chép lại (B1).
|
||||
|
||||
## §h Build + test — DONE (lead, trọng-tài sau khi mọi tay dừng)
|
||||
|
||||
- `dotnet build` **0W/0E** (20.71s) · `dotnet test` **598/0** = 45D + 553I.
|
||||
- 3 test cũ update-theo-spec (spec-change = test+code chung commit): `Line_UniqueFilteredTheoIsDeleted…`
|
||||
(unique 2→3 cột; cả 2 vế dùng CatalogEntryId non-null — khai NULL-semantics SQLite≠SQL-Server, cặp
|
||||
NULL do submit-guard chặn tầng nghiệp vụ; **+vế MỞ mới**: cùng (Plan,NCC) khác hạng mục = QUA, đúng
|
||||
mục đích Mig 71) · `ApproveV2_TwiceSameLevel…` + `SendBack_Resubmit…` (fixture SeedPlanAsync +1 row
|
||||
danh mục nhóm-1 + gán CatalogEntryId/TenHangMuc mọi line — mirror phiếu đã-gán-đủ).
|
||||
- k test MỚI = 0 (suite K2 blueprint = lane test-specialist, đang phóng).
|
||||
|
||||
END sub-implbe-k2 — VERDICT=DONE (Mig71 applied 2-DB · rào (PeId,Group) · submit-guard vá-5-thắng-nền ·
|
||||
list ?group= + Σ-Approved · build 0W/0E · suite 598/0 · #53 ×2 khai trên)
|
||||
|
||||
Reference in New Issue
Block a user