Files
solution-erp/.claude/agent-memory/implementer-backend/archive/2026-08.md

5.0 KiB
Raw Blame History

Archive 2026-08 — implementer-backend (L2, moved-not-cut từ L1 @S187 curate)

Verbatim entries dời khỏi MEMORY.md L1 khi hook read-limit-guard bắn (@23.7KB / cap 24.4KB). KHÔNG nén — nguyên văn. Mới→cũ.

  • S171 (2026-08-04) lane BE — 7/7 mục, build PASS, return SẠCH [LEAD HARVEST HOI-TO @S172 — no mo tu closeout truoc; owner slot (71) chot 'gom va sleep thi auto, tu quyet'. Nguon = artifact tren dia, KHONG suy dien]; nguồn runs/2026-08-04-S171-khkk-ui-mirror-pe/sub-implementer-backend-s171.md 11.650 B: BE-1 DetailDto +5 field · BE-1b FinalizeStepName/FinalizeLevelName DẪN XUẤT 3-ngả in-memory thay 3 subquery (+ sửa công thức con-trỏ cho đúng KHKK) · BE-2 ContractSigningPlanApprovalDto đẻ mới + projection · BE-3 tên người duyệt join Users — đường THỨ BA (2 đường kia không dùng được, lý do §2) · BE-4 WorkflowStepDto +DepartmentName · BE-5 endpoint changelogs policy KeHoachKyKet.Read + rào EnsureCanViewAsync · BE-6 map Cấp cho Approvals · BE-7 enum +ApprovalAttachment=3 + endpoint upload riêng (policy Update). Mirror types/khkk.ts ×2 app SHA256 trùng khít; dotnet build 0 warning/0 error + tsc -b ×2 exit 0. 🔴 Tự khai 3 chỗ lệch-có-lý-do + treo B-3 vì DB dev 0 phiếu — nấc trung thực đúng: làm được thì khai làm được, không đo được thì khai treo, KHÔNG nhét acceptance runtime vào ô đã-xong. ⚠️ Hệ quả @S172: chính ApprovalAttachment + policy Update đẻ ra câu hỏi owner slot (67) — người SOẠN cũng qua được KeHoachKyKet.Update. Tag [s171, be-7-7-build-pass, dan-xuat-thay-subquery, duong-thu-ba-join-users, treo-b3-trung-thuc]

  • S167 (08-01) lane K7 — cầu KHKK→HĐ BE + 5 vá [artifact sub-implbe-k7.md; return-1 garble #53 → lead SendMessage-resume, xong solo]: Bài lớn nhất = BÁC TIỀN ĐỀ ĐỀ BÀI bằng 4 phép đo trước khi gõ: lead nói "bridge ĐÃ TỒN TẠI (W6-S161), mày chỉ vá quanh nó" — đĩa nói KHÔNG (grep create-contract 1 hit duy nhất = bridge PE cũ · 0 file · 0 endpoint · 0 write-site Line.ContractId). Cái tồn tại @W6 là đường-ống HĐ V2, không phải cầu ⇒ lead nhập nhằng "đường ống đã vá"≠"bridge có". Phép thử rẻ phân biệt: vá-6 ("nạp Project.Code/Supplier.Code theo khuôn bridge-cũ") là no-op nếu áp lên bridge cũ (nó ĐÃ có 2 dòng đó) ⇒ vá chỉ có nghĩa với vật CHƯA có ⇒ suy ngược ra vật thiếu. Xử: DỰNG bridge theo spec invest §K7.1 đã pin sẵn (0 quyết-định-mới của tôi) + nhúng 5 vá, KHAI RÕ chệch-khuôn + trỏ dòng spec — lead nhận. Khi spec vá ⊥ nền invest (WorkflowDefinitionId null vs pin) → vá THẮNG (spec :4 viết luật đó). Cột đã có từ mig cũ ⇒ 0-mig. ??= giữ CHIỀU: cầu chạy sau không cướp ô của cầu trước. Thêm field vào projection dùng-chung-3-endpoint → chạy test filter rẻ ngay (collection-subquery SQLite dịch được: 34/35). 1 fail = reflection-authz test bắt mọi action phải cùng key module, mà vá-1 cố ý gate key MODULE KHÁC (Contracts.Create, #85) ⇒ verified-fail bàn giao test-lane, KHÔNG tự sửa (S112 khuôn). Tag [s167, k7-bridge-khkk-hd, bac-tien-de-4-phep-do, va-noop-suy-nguoc-vat-thieu, spec-thang-nen, 0-mig, verified-fail-handoff]

  • S166 (08-01) lane K4a — 49 row menu KHKK 8-nhóm, DONE B0-B5 [LEAD SEED ON-BEHALF TẠI-CỬA — mày #53 sau B5 ("Now the site-4 revoker comment" trong khi comment ĐÃ land — return tụt sau đĩa 1 nhịp); B6 + END lead đóng; nguồn: sub-implbe-k4a.md + git diff]: Nghề mới ăn tiền: BỘ-SINH thay 49 const tayKhkkGroupNumbers[7] × (KhkkGroup + 6 KhkkLeafActions)KhkkGroupMenuKeys làm NGUỒN CHUNG 3 phía (spread .. vào All · vòng seed tree.Add · site-2 .Concat) ⇒ khớp by-construction, 0 mirror tay 147 chuỗi (đúng loại drift nổ FK Permission T6-K1); chệch-khuôn-so-brief KHAI RÕ + trỏ đề xuất gốc invest :9 ⇒ lead chấp nhận không mất lượt. Anchor re-ground TRƯỚC khi sửa (số spec trượt vì DbInitializer phình sau K2/K3): dict labelBackfill :2141-2183 · upsert THẬT :2162-2179 (vá 2 comment stale "1893" bằng mỏ-neo GREP existingItems.TryGetValue thay số-dòng-trần — số dòng sẽ trượt tiếp, mỏ neo thì không). Vá-10 sửa LÝ-DO comment (group-key KHÔNG cần CanRead row — HasAccess đệ-quy theo con :96; invest doc viết sai lý-do, kết luận giữ-3-site vẫn đúng). labelBackfill Khkk_G1 đổi-nhãn-không-nhân-row + fail-fast KeyNotFound khi thiếu nhãn (thà nổ lúc seed còn hơn FK nổ về sau). Suite 614/0 SAU diff (idempotent/revoke/permission-seed giữ xanh). Tag [s166, k4a-lane, bo-sinh-by-construction-3-phia, mo-neo-grep-thay-so-dong, fail-fast-luc-seed, return-tut-sau-dia-1-nhip, seed-on-behalf-tai-cua]