Files
solution-erp/docs/HANDOFF.md
pqhuy1987 7fbe05a19c [CLAUDE] Docs: S45 session-end — test-gap + Mig 43 sync
STATUS/HANDOFF S45 (154->181 test, Mig 43) + gotcha #57 (soft-delete UNIQUE must filter [IsDeleted]=0) + session log + root CLAUDE counts + ef-core skill Mig 43 row + flush 3 agent MEMORY (test-specialist proxy after #53 truncation + cicd Run #368 + investigator P11-C recon).

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-01 14:49:28 +07:00

6.8 KiB
Raw Blame History

HANDOFF — Brief 5 phút cho session tiếp theo

Tiering rule (S40): giữ 2-3 session gần nhất. Cũ hơn → docs/changelog/sessions/. Full brief history pre-S40 → docs/_archive/HANDOFF-preS40-fullhistory.md.

Last updated: 2026-06-01 (Session 45 — HRM test-gap stabilization +27 (154→181) + Mig 43 Holiday filtered-unique fix. 2 commit 051b62b+0c5a014, cicd Run #368 PASS prod. Prev: S44 monthly drift audit.)


S45 (2026-06-01) — HRM test-gap stabilization + Holiday drift fix (Mig 43)

2 commit 051b62b (Tests +27) + 0c5a014 (Mig 43) → push → cicd Run #368 PASS, verified prod. 154→181 test.

Done:

  • Đóng 3 test-gap deferred S35-S38 (stabilize before extend): Gap1 Holiday composite UNIQUE (7) + Gap2 EmployeeSatellite FK-invariant/soft-delete/cascade (10) + Gap3 gotcha #44 authz regression HrmConfigs+Employees (10). 🟪 test-specialist viết (return truncated #53 → 👤 em main verify-on-disk + proxy MEMORY).
  • Mig 43 FilterHolidayUniqueIndexByIsDeleted (👤 em main solo) — Gap1 test lòi bug thật: Holiday DB UNIQUE (Year,Date) unfiltered vs handler !IsDeleted → admin xoá + thêm lại ngày lễ cùng date = 500 reachable. Fix .HasFilter("[IsDeleted]=0") (khớp pattern 13×). 🟩 cicd verify filtered index live prod. Table vẫn 91 (index-only), FE bundle unchanged (đúng — BE-only).
  • 🟦 P11-C recon sẵn: Vehicle+Driver = extend HrmConfigs +2 kind declarative (Mig 44), giữ VehicleBooking free-text.

gotcha #57 NEW: soft-delete + UNIQUE → MUST .HasFilter("[IsDeleted]=0"). ⚠️ LeaveType.Code + ShiftPattern.Code vẫn unfiltered (cùng bug, backlog test-before). Process: feedback_background_spawn_visibility (foreground spawn im lặng "looks frozen" → đẩy background + report ngay).

Next S46 (anh pick): P11-C Vehicle+Driver (Mig 44, recon ready) · gotcha #57 fix LeaveType/Shift filtered-unique · P11-D/E/F · Phase 9 Ops.


S44 (2026-06-01) — Monthly drift audit + AI_INFRA bundle 06-01 (docs-only, 2-way VERIFIED)

4 commit ae30f8f5b8736d071c25c5dbcad3, pushed, tree clean. CI-skip (all .md). 154 test unchanged (no code).

Done:

  • Monthly cadence audit (cron 2026-06-01, next 2026-07-01): 🟦 investigator-codebase ground-truth-from-disk scan → 👤 patch 42 count-drift fixes (40→42 mig · 84/59/55/47→91 tables · 130/111→154 test · 52/49→56 gotcha) across CLAUDE.md + docs/CLAUDE.md + ef-core/dependency-audit skills + schema-diagram + database-guide. schema-diagram migration table +Mig 17-42; ef-core history +Mig 27-42; detailed-§ ERD gap (Mig 27-42 modules) flag EXPLICIT → deferred backlog.
  • AI_INFRA bundle 06-01 adopt (full scope): §A RAG T1/T2 auto · §C 7/7 agent-mem L1 ≤16KB + "25KB"→"~30KB tiered" ×7 · §D #4 self-report step → /session-end Phase 6.3 (skip #1 have/#3 helper) · §E/§F report+ledger docs/governance. AI_INFRA RT3 re-verified độc lập → VERIFIED 2-way, ĐÓNG HẲN.
  • Carry-over S40 ĐÓNG (5b8736d): BROADCAST-2 infra-feedback committed (governance trail) + .mcp.json gitignored (machine-path local, no secret).

Lesson: "incremented-per-session" counts drift → re-ground từ code monthly (count files). gotchas.md header KHÔNG có self-count → mỗi cite = downstream copy (patch từng chỗ). → memory feedback_monthly_drift_audit.

Còn lại (AI_INFRA-owned, non-blocking): eval baseline cite 11,922 cũ + SE full re-index (last-index 05-29, S42-S44 stopgap) → AI_INFRA op, batch chung web-MCP migration (ping nếu cần cross_project_search SE tươi sớm).

Next S45 (anh pick): product Phase 11 (P11-C Vehicle+Driver / P11-D ItTicket SLA / P11-E AttendanceReport / P11-F MaTicket) · test-gap backlog (Gap1 Holiday UNIQUE 🔴) · Phase 9 Ops.


S43 (2026-05-30) — Phase 11 P11-B: LeaveBalance business logic

Commit 82d7fcf → Gitea #367 PASS, deployed prod. Agents Max → 0 bug lọt.

Done:

  • Mig 42 AddLeaveBalancesLeaveBalances (User×LeaveType×Year + Entitled/Used/Adjustment, UNIQUE composite + FK LeaveTypes Restrict). 90→91 tables.
  • Trừ phép hook ApproveLeaveRequestHandler terminal DaDuyet — exactly-once (guard chặn re-approve), auto-create từ DaysPerYear, UsedDays+=NumDays, Year=StartDate.Year. Policy cho phép âm + cảnh báo.
  • FK invariant guard Create+Update validate LeaveTypeId tồn tại → Conflict (đóng cửa tránh 500 kẹt đơn lúc deduction FK insert). grep xác nhận 2 write site duy nhất.
  • CQRS GetMy/GetUser/Adjust (admin [Authorize(Roles=Admin)]) + embed balance NGƯỜI TẠO vào leave detail. FE block "Số dư phép" + cảnh báo vượt (kind=leave).
  • Test 144→154 (+11 + repair 2 template terminal FK). Reviewer Max PASS (exactly-once + FK fully closed; 2 minor defer: concurrency no-RowVersion + stale comment).

Carry-over (chưa đụng): M BROADCAST-OUT...md + ?? .mcp.json (từ S40). · RAG S42-S43 chưa index (stopgap store_memory). · cicd flag: skill IIS path stale + agent-memory .md trigger CI.

Next S44 (anh pick): P11-C (Vehicle+Driver Mig 43) / P11-D (ItTicket SLA) / P11-E (AttendanceReport+Excel) / P11-F (MaTicket) · Phase 9 Ops · coord carry-over.


S42-S38 (older) → session logs

  • S42 (2026-05-30) Phase 11 P11-A: Mig 41 WireWorkflowAppsApprovalV2 (4 LevelOpinions + WorkflowAppCodeSequences) + 30 handler 4 module + Max re-review fix 2 FE picker bug. 130→144 test. → docs/changelog/sessions/2026-05-30-S42-S43-phase11-p11a-p11b.md.

  • S41 (2026-05-29) RAG corpus cleanup w/ AI_INFRA: .claude/rag.json exclude **/-anchored fix (gotcha #10) + store_memory reconcile 5/5 (anti-data-loss, at-risk rule) + re-bootstrap 3080→2406 (674 junk, zero-loss verified). Standing infra backlog → AI_INFRA. Concurrency carry-over (BROADCAST-2 + .mcp.json) originated here → resolved S44 (5b8736d). → memory feedback_store_memory_rebootstrap_protection.

  • S40 (2026-05-29) init audit 10-mục + doc consolidation (STATUS/HANDOFF 393KB→9KB zero-loss archive) + AI_INFRA bulletin adopt 4/4 (Tiered Memory v1 + /session-start /session-end slash commands LIVE) + RAG MCP recovery (quit+relaunch FRESH). Concurrency carry-over (BROADCAST 2 + .mcp.json) bắt nguồn đây — vẫn chưa đụng (xem S43).

  • S39 (2026-05-29) infra: Opus 4.8 1M + multi-agent split 4→7 (+investigator/implementer split +test-specialist) + budget +50% + gotcha #54/#55.

  • S38 (2026-05-28) 🎊 Phase 10 COMPLETE 11/11 — Mig 39+40 skeleton combo (Đơn từ/Đặt xe/Ticket/Chấm công/Dashboard NS). ApproveV2+LevelOpinions+LeaveBalance DEFER Phase 11 (→ làm xong S42-S43).

Detail đầy đủ → docs/changelog/sessions/ + docs/_archive/HANDOFF-preS40-fullhistory.md.