- STATUS/HANDOFF: prepend S96 mega-line (5 commit: monthly-audit881783c+ NCCba4b8e0+ 3 PE fix e657faa/36cbf8b/0c2f9f6) · Tests 434->440 · gotcha 76->77 · bundle COYAX-yQ/0MU-kb4N · prod 21 NCC · In-Progress S95->S96 - gotchas: +#77 SPA deploy bundle cache-lag (verify byte-level cache!=deploy; incognito golden) - session log 2026-07-01-S96-uat-pe-fixes-monthly-audit.md - user-memory (ngoài repo): +2 feedback (verify-deployed-artifact-byte-level · agent-return-garble-recover) - agent-memory: cicd-monitor S-tag drift S97/S98->S96 reconcile (11x; facts correct) · investigator-codebase Supplier-audit diary Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
6.6 KiB
6.6 KiB
S96 — 2026-07-01 — Buổi UAT LỚN anh Kiệt/team live + Monthly-audit (5 commit prod-verified)
em-main-led. HMW-mode ON (1 prep-workflow monthly-audit + spawn-lẻ, chủ-yếu solo/reliable). Session dài:
/session-start→ monthly audit → NCC import → 3 PE bug-fix theo UAT anh Kiệt/chị Trà/anh Chương →/session-end.
5 commit (đều pushed + deployed + cicd-verified)
| # | SHA | Scope | Run |
|---|---|---|---|
| 1 | 881783c |
Docs: monthly drift audit + FD distill + mega-line re-tier | docs-only CI-skip |
| 2 | ba4b8e0 |
Infra: import NCC DONGDUONG + Supplier-field backlog | #477 |
| 3 | e657faa |
PE: ô "KẾT THÚC quy trình" → opt-out bỏ-tick-được | #478 |
| 4 | 36cbf8b |
PE: mark-read noti "cần duyệt" cũ (fix chuông stale) | #479 |
| 5 | 0c2f9f6 |
PE: khóa sửa giá đề xuất PRO/CCM sau gửi-duyệt | #480 |
(1) Monthly drift audit 881783c (đúng hạn cron ngày 1)
- ef-core-migration/SKILL.md: latest-mig 56→59 + append bảng rows 57/58/59 + Mig 14/Phase-7 Budget annotate
DROPPED Mig 50. - skills/README.md: ef-core Mig 55→59 + gotcha cite #69→76 (heading gốc gotchas.md).
- docs/CLAUDE.md: Budget module
REMOVED Mig 50 (S61)strike-through (§1 item 6 + roadmap Phase 7/8). docs/governance/vocab-alias-map.mdMỚI: 3 vocab-fork (run-trace/Ngân-sách-PRO/all-inherit canonical) + thêm vào$ExcludeExactgovernance-detectors (anti self-match; detector pure-grep nên flag stay "documented-known").- Re-tier STATUS/HANDOFF mega-line 5→3 blurb (S92/S91 → archive tier-S94, byte-exact conservation delta=0, BOM-preserved) + hoist 3 UAT-carry (S92 non-admin-menu · S91 change-pw · S91 NCC-demo) vào blockers (reviewer flag conservation).
- FD memory distill (H17 loop strike-1 → CLEARED): frontend-designer L1 26129→21492B, 5 war-story (S66/S65/S58/S55/S47) →
archive/2026-06.md+_INDEX+ gist; Lessons value-protect (anti-#53/Tailwind-v4-stop/rig-#3/lucide) lên L1. budget.json measured refreshed. - Workflow
wf_2d687d274-cluster draft→adversarial-verify: reviewer bắt #74 paraphrase-drift (em sửa từ heading gốc) + AS-10 residual reviewer self-write reverted (git-diff backstop). detector 27→25 (2 real drift clear; còn lại module-local false-pos).
(2) Import NCC DONGDUONG ba4b8e0
- Excel anh Kiệt "Database NCC & Nhà thầu phụ" — 4 NCC, ~30 field. Phát hiện: 3 NCC (TRUONGGIANG/TANPHU/TGN) đã seed sẵn S55/S59 (data khớp) → chỉ DONGDUONG mới.
- Scope anh chốt = option-3 (9 field entity + gói extras Loại/NĐD/TK/GUQ/Trạng-thái vào
Note). KHÔNG migration (data-only seed).SeedRealMasterDataAsyncungated idempotent → prod 20→21 NCC (cicd #477: sqlcmd 21 rows, DONGDUONG type=2, Note "Thang máy"). - Backlog "15-18 field note-lại-từ-từ-tính" (bank tách/link GUQ-GPKD-HSNL/địa-chỉ-VP/PMH... + enum SupplierType thêm "Cả hai") →
docs/STATUSMaintenance backlog.
(3-5) 3 PE bug-fix theo UAT anh Kiệt/chị Trà/anh Chương
e657faa— ô "Cấp này KẾT THÚC quy trình" opt-out bỏ-tick-được (anh Kiệt "cái này option thôi"): AllowApproverFinalize (Mig 58, S89 auto-finalize im-lặng) NAY = 2-tier — Designer tick = cấp quyền (level được phép finalize), phiếu = thực-thi (mặc-định tick=kết-thúc, bỏ-tick=trình-CEO). +paramapplyLevelFinalize(default-true backward-compat) xuyên interface→service (guard&& applyLevelFinalize)→command→handler→controller + FE checkbox 2-app. +test #6 (opt-out→advance-CEO). Run #478.36cbf8b— chuông tự-sạch noti "cần duyệt" (chị Trà/anh Kiệt "chuông không bỏ ra được"): noti "Phiếu cần bạn duyệt" cũ KHÔNG tự xóa khi phiếu được duyệt-thay/hoàn-tất bởi người khác. Fix:LogTransitionAsync(chạy MỌI transition) mark-readReadAtmọi noti Generic+RefId=phiếu unread TRƯỚC block notify-cấp-mới.ExecuteUpdateAsyncbest-effort BE-only. +test #7 (finalize→noti CEO cũ mark-read). Run #479.0c2f9f6— khóa sửa giá đề xuất PRO/CCM sau gửi-duyệt (anh Kiệt/chị Trà "duyệt là fix"): screenshot drafter=PRO điền Min/Max SAU khi chị Trà duyệt. Root: 2 handler cố-ý "KHÔNG ràng Phase" (Mig 54). Fix ĐẢO: non-admin chỉ sửa Nháp/TraLai, đã-gửi-duyệt/đã-duyệt/từ-chối → ConflictException; Admin override. BE (PeSuggestedPriceFeatures) + FE (PeDetailTabsSuggestedPriceRowsgate&& isEditablePhase2-app) + 4 test (spec-change: sửaSeedPeAsyncdefault ChoDuyet→DangSoanThao). Run #480.- Delete-sau-duyệt = ĐÃ chặn sẵn — không cần fix: FE nút Xóa chỉ hiện
DangSoanThao+ BE delete-guard block non-draft. chị Trà chắc test phiếu Nháp. - Checkbox "ko được" (anh Chương) = browser cache (gotcha #77): verify prod bundle
0MU-kb4NBYTE-LEVEL chứa fix ("BỎ tick"), "✅ static" cũ MẤT; index.html no-cache đúng + no-service-worker → incognito = golden-test.
Lessons
- verify-deployed-artifact-byte-level (gotcha #77 +
feedback_verify_deployed_artifact_byte_level): cache≠deploy — curl-grep bundle prod tìm marker fix; incognito golden. Tiết-kiệm giờ debug sai hướng. - #53 return-garble ×3 (
feedback_agent_return_garble_recover): investigator + cicd×2 trả text-memory-curation thay verdict; WORK + diary ĐÚNG → recover từ agent-memory KHÔNG re-spawn; instruction-fix "return verdict" ăn lần-3 (không 100%). - 2-tier-permission (grant-vs-exercise): config = cấp quyền, runtime = thực-thi — tách rõ (Designer AllowApproverFinalize vs phiếu applyLevelFinalize).
- spec-change→update-test-cũ (rules §7): đảo "KHÔNG ràng Phase" → sửa SeedPeAsync seed-phase để 15 test cũ sống + 4 test mới.
State (verified)
Mig 59 · 88 bảng · 440 test (45D+395I, +6 S96) · gotcha 77 · menu 54 · bundle admin COYAX-yQ/user 0MU-kb4N (Run #480) · prod 21 NCC / 17 user.
Carry / NEXT
- 🔴 anh: restart CLI · UAT incognito checkbox anh Chương · cho số-phiếu + user vụ "lỗi phân quyền vào phiếu" (nhiều khả năng config: user chưa gán approver Cấp phiếu đang chờ).
- 🔴 em: cicd-monitor S-tag-drift S97/S98→S96 reconcile (closeout này) · monthly re-tier mega-line (giờ 4-blurb S96/S95/S94/S93) · Supplier-schema-mở-rộng backlog (khi anh chốt).
- Pending product (carry): Section B cột Dự-án · Ngưỡng giá CEO Mig 54 · "C" chuyển phiếu→dự án.