[CLAUDE] Docs+Memory: S35 wrap — FE forms + G-H2 BE CRUD + FE Admin deploy prod end-to-end
Cumulative S35 3 commit + 3 CI Run #242/#243/#244 ALL PASS: - `c3cd343` FE inline forms 5 satellite × 2 app cookie-cutter (+1758 LOC) - `909655c` G-H2 BE CRUD HrmConfig 16 endpoint (+576 LOC NEW) - `021674a` G-H2 FE Admin HrmConfigsPage declarative (+1388 LOC) ## Updates this commit (docs CI skip per gotcha #41) - docs/STATUS.md S35 wrap header (cumulative 3 chunk + Multi-agent ROI ~250K) - docs/HANDOFF.md S35 brief + S36 backlog 6 option - docs/gotchas.md +#53 sub-agent truncation/stall pattern S35 × 3 occurrence + Quick reference 28 - docs/changelog/sessions/2026-05-28-s35-fe-inline-forms-g-h2.md NEW session log - 4 sub-agent MEMORY auto-updated entry (Implementer + CICD + Reviewer + Investigator S35 spawns) ## Patterns reinforced cumulative S35 - Pattern 12-ter (within-module N-satellite) 6× cumulative - Pattern 12-bis (cross-module catalog mega) 3× cumulative - Pattern 16-bis (4-place mirror cross-app) 6× — staticMap 4th place mandatory (gotcha #50) - Smart Friend 9× cumulative clean (S22+S25+S29×2+S33×2+S35×3) - NEW: Declarative KIND_CONFIG Record pattern (single-page multi-kind CRUD reuse) ## Smart Friend Implementer 3 catch S35 (anti-pattern prevention) 1. Chunk 2 MaxLength validator vs EF config mismatch → aligned EF source-of-truth 2. Chunk 2 HRM entities NO HasQueryFilter → explicit .Where(!IsDeleted) 8 site 3. Chunk 3 em main spec gap Layout staticMap miss → Implementer enforced Pattern 16-bis 4-place ## State chốt S35 - 35 mig unchanged · 71 tables · ~185 endpoints (+16 HRM Configs) - 43 FE pages (+1 HrmConfigsPage) · 130 test PASS unchanged - 53 gotcha (+1 #53) · 27 memory user-level · 6 skills · 4 sub-agents ## Multi-agent ROI S35 ~250K - Implementer 3 spawn ~80K (3 cookie-cutter chunk + Smart Friend × 3 catch) - Investigator 1 spawn ~8K (G-H2 BE CRUD pre-flight + NamGroup MISS verdict) - Reviewer 3 spawn ~60K (Smart Friend 9× clean, 2 truncated + 1 tight brief PASS) - CICD 4 spawn ~70K (warm-up + 3 deploy verify, 1 stalled em main fallback) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@ -1,6 +1,66 @@
|
||||
# HANDOFF — Brief 5 phút cho session tiếp theo
|
||||
|
||||
**Last updated:** 2026-05-27 (Session 34 FULL — **🎯 Plan 1+2+3+4 ALL DONE: Curate + G-O1 Danh bạ + Phase 1.5 batch 6/6 + G-H2 Mig 35 schema foundation. BE CRUD + FE forms HrmConfig defer S35**)
|
||||
**Last updated:** 2026-05-28 (Session 35 — **🎯 S35 3 chunk push ALL DONE deploy prod: FE inline forms 5 satellite + G-H2 BE CRUD 16 endpoint + G-H2 FE Admin HrmConfigsPage declarative**)
|
||||
|
||||
**S35 (2026-05-28):** Anh main authorize Option A "FE forms + G-H2 BE+FE combo" sequence + "warm-up Implementer + CICD". Cumulative end-to-end **3 commit** pushed remote `63dd9ec..021674a` + **3 CI Run ALL PASS** (#242 + #243 + #244).
|
||||
|
||||
**Commits S35 (3 push):**
|
||||
1. `c3cd343` Chunk 1 — FE inline forms 5 satellite × 2 app (+1758 LOC, Run #242 PASS 3m30s)
|
||||
2. `909655c` Chunk 2 — G-H2 BE CRUD HrmConfig 16 endpoint (+576 LOC NEW, Run #243 PASS 3m43s)
|
||||
3. `021674a` Chunk 3 — G-H2 FE Admin HrmConfigsPage declarative (+1388 LOC, Run #244 PASS 3m38s em main fallback verify)
|
||||
|
||||
**Multi-agent ROI S35 ~250K:**
|
||||
- 🟨 Implementer 3 spawn ~80K (3 cookie-cutter chunk + Smart Friend × 3 catch S35)
|
||||
- 🟦 Investigator 1 spawn ~8K (Plan G-H2 BE CRUD pre-flight: NamGroup MISS verdict — SOL clean-room mạnh hơn)
|
||||
- 🟥 Reviewer 3 spawn ~60K (Smart Friend 9× cumulative clean: 2 truncated mid-MEMORY-update, 1 tight brief PASS clean)
|
||||
- 🟩 CICD 4 spawn ~70K (Run #241 warm-up + #242 + #243 PASS + #244 stalled em main fallback)
|
||||
|
||||
**Smart Friend Implementer 3 catch S35 (Pattern preserved):**
|
||||
1. Chunk 2 MaxLength validator vs EF config mismatch → aligned to EF source-of-truth (LeaveType/OtPolicy Code=50, Name=200, Description=500)
|
||||
2. Chunk 2 HRM entities NO HasQueryFilter (vs Master 9 file have) → explicit `.Where(!IsDeleted)` 8 List/Conflict-check site
|
||||
3. Chunk 3 em main spec line 24 GAP: Layout staticMap "no resolve issue" — WRONG. Implementer verified `MenuItem.cs` NO Url field + `resolvePath()` regex chỉ match `Ct_*/Wf_*/Pe_*/PeWf_*/AwV2_*` → silent sidebar drop gotcha #50. Enforced staticMap mirror Pattern 16-bis 6× cumulative
|
||||
|
||||
**NEW capability prod S35 (end-to-end UAT-ready):**
|
||||
- (a) Admin login `eoffice.solutions.com.vn/employees` → pick NV/2026/0007 → Section 2-6 (Công tác/Đào tạo/Thân nhân/Kỹ năng/Hồ sơ) inline `+ Thêm` button expand AddForm + per-row Pencil/Trash. 15 BE endpoint wire CRUD live.
|
||||
- (b) Admin login `eoffice.solutions.com.vn/hrm/configs/leave-types` → 4 sub-tab + table 5 row LeaveType seed + Dialog modal CRUD `+ Thêm`. Switch tab → /hrm/configs/holidays (10 row) → /shifts (3 row) → /ot-policies (1 row). 16 BE endpoint wire CRUD live.
|
||||
|
||||
**NEW gotcha #53 sub-agent truncation/stall pattern S35 × 3 occurrence:**
|
||||
- Reviewer FE forms (push #1) cut mid-Cat-1 after "PERFECT"
|
||||
- Reviewer BE CRUD (push #2) cut mid-MEMORY trim
|
||||
- CICD Run #244 verify (push #3) stalled 600s watchdog after VPS mtime cross-check
|
||||
- Mitigation verified: tight brief ≤ 8K (Reviewer FE Admin chunk 3 PASS clean no truncation 5K return)
|
||||
- Em main grep verify manual Cat 2-6 + commit confidence preserved
|
||||
|
||||
**State chốt S35:**
|
||||
- 35 mig unchanged · 71 tables unchanged · ~185 endpoints (+16 HRM Configs)
|
||||
- 43 FE pages (+1 HrmConfigsPage) · 69 menu keys unchanged
|
||||
- **130 test PASS unchanged** (UAT mode no test add 3 chunk)
|
||||
- **53 gotcha (+1 #53)** · 27 memory user-level · 6 skills · 4 sub-agents
|
||||
|
||||
**Bundle hash rotation S35 cumulative:**
|
||||
- fe-admin: `RNTX6Fvo` (Run #241 start) → `BhR0MmLN` (Run #242) → `BhR0MmLN` (Run #243 BE unchanged) → `Bl6e54yi` (Run #244)
|
||||
- fe-user: `29A1LuMm` → `DIdNaB6W` → `DIdNaB6W` → `DHmW2tUF`
|
||||
|
||||
**4 sub-agent reuse-able S36 via fresh spawn (agentId S35 invalid post-session-end):**
|
||||
- 🟦 Investigator last spawn `a42bd882c367f6e47` (S35 G-H2 BE CRUD audit)
|
||||
- 🟨 Implementer last spawn `a1aeda2fcbbc19eeb` (S35 G-H2 FE Admin)
|
||||
- 🟥 Reviewer last spawn `a6b42cc3c1423e699` (S35 G-H2 FE Admin tight 5K PASS)
|
||||
- 🟩 CICD last spawn `a3dfb05e2deee8f0f` (S35 Run #244 stalled mid-MEMORY)
|
||||
|
||||
**⚠️ Next session S36 — anh main pick:**
|
||||
1. **Plan G-O2 Phòng họp BookingCalendar** (~3-4h Mig 36 — FullCalendar lib NEW dep) — standalone tiếp Phase 10.2 Office
|
||||
2. **Phase 10.3 G-O3-O6 Workflow Apps** (4 plan đề xuất nghỉ phép/đăng ký OT/đăng ký công tác/dự án — depends G-H2 catalog ready)
|
||||
3. **Phase 9 Ops** anh main coordinate (SMTP + Rotate creds + UAT 2-3 user 1 tuần)
|
||||
4. **Curate 4 MEMORY post-S35 spawn** (Reviewer + CICD borderline) ~20 phút em main proxy
|
||||
5. **Test bundle G-H2 BE CRUD** (~30 phút Implementer Case 3 — codeGen UNIQUE Conflict + composite Year+Date + soft delete restore)
|
||||
6. **Audit cron 2026-06-01** (còn 4 ngày — cumulative skill + doc drift mig 33→35, test 111→130, gotcha 52→53)
|
||||
|
||||
**Recommend sequence S36:**
|
||||
1. Curate 4 MEMORY (~20 phút) — clear context before heavy work S36
|
||||
2. Plan G-O2 Phòng họp BookingCalendar (~3-4h) — standalone independent
|
||||
3. Plan G-O3-O6 Workflow Apps batch (~6-8h) — series workflow app reuse V2
|
||||
|
||||
**Last updated S34 FULL (prev):** 2026-05-27 (Session 34 FULL — **🎯 Plan 1+2+3+4 ALL DONE: Curate + G-O1 Danh bạ + Phase 1.5 batch 6/6 + G-H2 Mig 35 schema foundation. BE CRUD + FE forms HrmConfig defer S35**)
|
||||
|
||||
**S34 FULL (2026-05-27):** Anh main authorize "1 → 2 → 3 → 4" sequence sau S34 init + "OK làm tiếp đi nhé" tiếp Plan 4. Cumulative end-to-end **6 commit** pushed remote `edba4ae..07b3f3b` + 4 CI Run (#238/#239/#240 PASS + #241 Plan 4 Mig 35 pending verify).
|
||||
|
||||
|
||||
@ -2,7 +2,9 @@
|
||||
|
||||
> **Update rule:** trước khi bắt đầu 1 task → ghi row vào `🔥 In Progress`. Xong → chuyển sang `✅ Recently Done`.
|
||||
|
||||
**Last updated:** 2026-05-27 (Session 34 FULL — **🎯 Plan 1+2+3+4 ALL DONE end-to-end: Curate 4 MEMORY + Plan G-O1 Danh bạ + Phase 1.5 batch 6/6 + Plan G-H2 Mig 35 schema foundation**: cumulative **6 commit S34** push remote `edba4ae..07b3f3b` + 4 CI Run PASS (#238 Plan 2 + #239 Plan 3 batch + #240 Item 3 satellite + #241 Plan 4 Mig 35 - pending verify). **Plan 1 Curate** 4 MEMORY 118KB→101KB (-15%, 4 archive q3.md). **Plan 2 G-O1 Danh bạ** end-to-end: BE `Application/Office/DirectoryFeatures.cs` + FE 2 app card grid mirror SHA256 IDENTICAL + 34 row prod live + Run #238 PASS. **Plan 3 Phase 1.5 batch 6/6:** Item 6 menuKeys sync × 2 + Item 2 bool→bool? safe partial + Item 1 per-action policy Hrm_HoSo.{R/C/U/D} + Item 4 test +10 [Fact] 130 PASS + Item 5 UAT smoke nv.test 403 employees + 200 directory (gotcha #44 ACTIVE) + Item 3 BE 5 satellite CRUD scaffold 15 endpoint Pattern 12-ter NEW (~621 LOC + 164 LOC controller extend). **Plan 4 G-H2 Mig 35 schema foundation** (BE CRUD + FE forms defer S35): em main solo 4 entity (LeaveType + Holiday + ShiftPattern + OtPolicy) + 4 EF Config UNIQUE indexes + IApplicationDbContext + ApplicationDbContext +4 DbSet + Mig 35 3-file rule + `SeedHrmConfigsAsync` ~120 LOC seed 19 sample row (5 LeaveType + 10 Holiday VN 2026 + 3 Shift + 1 OtPolicy STANDARD) + MenuKeys `HrmConfig` sub-group + 4 leaf Order=2 + FE 2 app menuKeys sync 5 const. **Multi-agent ROI S34 ~150K total**: 🟨 Implementer 3 spawn ~80K (Plan 2 FE 2 app cookie-cutter + Plan 3 Item 4 test bundle Case 3 + Plan 3 Item 3 BE 5 satellite Case 2) + 🟩 CICD 2 spawn ~40K (Run #238 + Run #239 partial → em main fallback) + 👤 em main solo ~30K (BE Task 1+2 G-O1 + Phase 1.5 Items 6+2+1+5 + Plan 4 Mig 35 schema + DbInitializer seed + Permission menu + 6 commit/push batch + UAT smoke + STATUS/HANDOFF wrap). 🟦 Investigator + 🟥 Reviewer: 0 spawn S34 (chưa cần — Implementer Case 2+3 + em main solo đủ). **5 patterns reinforced cumulative S34**: Pattern 16-bis 4-place mirror cross-app 5× + Pattern 12-bis cross-module mirror preserved + Pattern 12-ter NEW (within-module 5× satellite scaffold) + Smart Friend 6× clean preserved no NEW catches + Per-NV admin opt-in policy match prior PE + bool→bool? safe partial Pattern NEW cross-project + Pattern 11 test infra helper cookie-cutter reinforced. **NEW capability prod end-to-end S34:** (a) Sidebar Văn phòng số > Danh bạ /directory shows 34 row card grid + (b) `/api/employees/{id}/work-history|education|family-relations|skills|documents` 15 endpoint scaffold ready (admin/Hrm role wire qua per-action policy Hrm_HoSo.*) + (c) 4 catalog HRM seeded prod sample (LeaveTypes/Holidays/Shifts/OtPolicies) ready cho Workflow Apps Phase 10.3 reference. **State chốt S34:** **35 mig (+1 Mig 35)** · **71 tables (+4 HRM Configs)** · **~169 endpoints (+15 satellite + 1 directory)** · **42 FE pages (+2 Directory × 2 app)** · **69 menu keys (+Off+OffDanhBa+HrmConfig+4 leaf)** · **130 test PASS (+10)** · **52 gotcha unchanged** · 26 memory user-level · 6 skills · 4 sub-agents (post-spawn MEMORY borderline curate next session).
|
||||
**Last updated:** 2026-05-28 (Session 35 — **🎯 S35 3 chunk push ALL DONE end-to-end deploy prod: FE inline forms 5 satellite + G-H2 BE CRUD 16 endpoint + G-H2 FE Admin HrmConfigsPage**: cumulative **3 commit S35** push remote `63dd9ec..021674a` + **3 CI Run ALL PASS #242/#243/#244**. **Chunk 1 FE inline forms** (`c3cd343` Run #242 3m30s PASS): Implementer Case 2 cookie-cutter mirror Pattern 12-ter × 16-bis. EmployeesListPage.tsx 573→1200 LOC (+627) × 2 app SHA256 IDENTICAL `802d01fd1ee79925` + types/employee.ts +53 × 2 app + 5 inline Form component (WorkHistory/Education/FamilyRelation/Skill/Document) + 3 DRY helpers (FormField + FormFooter + RowActions × 45 usage) + 15 useMutation × 2 app + DRY `invalidate()` helper × 15 calls. Wire 15 endpoint S34 BE inline expandable form Add/Edit/Delete (NOT modal/drawer). gotcha #44 mitigation ACTIVE per-action policy Hrm_HoSo. Bundle hash rotate `RNTX6Fvo→BhR0MmLN` + `29A1LuMm→DIdNaB6W`. **Chunk 2 G-H2 BE CRUD 16 endpoint** (`909655c` Run #243 3m43s PASS): Implementer Case 2 mega Pattern 12-bis 3× cumulative. HrmConfigFeatures.cs NEW 439 LOC 4 region cookie-cutter mirror Catalogs (LeaveTypes/Holidays/Shifts/OtPolicies) + HrmConfigsController.cs NEW 137 LOC URL `/api/hrm-configs/{kind}` × 4 verb = 16 endpoint + Class `[Authorize]` + write `[Authorize(Roles="Admin")]` 12 attribute + 8 Conflict UNIQUE check (4 Create + 4 Update với composite Year+Date Holiday exclude-self) + 8 AbstractValidator + 44 RuleFor. **Smart Friend Implementer caught 2 spec drift**: (a) MaxLength validator vs EF config mismatch → aligned to EF source-of-truth (Code 20→50, Name 100→200, Description 500), (b) HRM entities NO HasQueryFilter (vs Master 9 file have) → explicit `.Where(!IsDeleted)` 8 site. 4 GET smoke 19 row prod live (5+10+3+1). Bundle hash UNCHANGED 2 app (anti-pattern verify BE-only). **Chunk 3 G-H2 FE Admin HrmConfigsPage** (`021674a` Run #244 3m38s PASS): Implementer Case 2 declarative single-page mirror Pattern 12-bis × 16-bis 9× cumulative. types/hrm-config.ts NEW 98 LOC × 2 app SHA256 IDENTICAL `228917e5fac2cdc6` + HrmConfigsPage.tsx NEW ~470 LOC × 2 app SHA256 IDENTICAL `6378fbc71ff90260` + App.tsx +3 LOC × 2 app (route + Navigate redirect default) + Layout.tsx +6 LOC staticMap × 2 app. **Smart Friend Implementer 3rd catch S35**: em main spec line 24 GAP "Layout staticMap no resolve issue" — WRONG. Implementer verified `MenuItem.cs` NO Url field + `resolvePath()` regex chỉ match `Ct_*/Wf_*/Pe_*/PeWf_*/AwV2_*` (KHÔNG `Hrm_Config_*`) → silent sidebar drop gotcha #50. Enforced staticMap mirror Pattern 16-bis 6× foundation reinforced. Declarative `KIND_CONFIG` Record × 4 kind + FieldDef extend types (text/textarea/checkbox/number/date/time/select/multiselect-weekday cho Shift WorkDays). Bundle hash rotate `BhR0MmLN→Bl6e54yi` admin + `DIdNaB6W→DHmW2tUF` user. **Multi-agent ROI S35 ~250K total**: 🟨 Implementer 3 spawn ~80K (3 cookie-cutter chunk + Smart Friend × 3 catch) + 🟦 Investigator 1 spawn ~8K (Plan G-H2 BE CRUD pre-flight audit + NamGroup ref MISS verdict — SOL clean-room design MẠNH HƠN, KHÔNG cần port) + 🟥 Reviewer 3 spawn ~60K (3 pre-commit verify Smart Friend cumulative 9× clean S22+S25+S29×2+S33×2+S35×3, Cat 1-6 PASS tất cả chunk) + 🟩 CICD 4 spawn ~70K (warm-up Run #241 + Run #242 + Run #243 + Run #244 stalled em main fallback). **NEW gotcha #53 sub-agent truncation/stall pattern** S35 × 3 occurrence (Reviewer × 2 mid-MEMORY-update + CICD × 1 stalled 600s watchdog) — mitigation: tight brief ≤ 8K + em main grep verify manual + curate MEMORY pre-spawn nếu > 25KB + remove "BEFORE stop with detailed MEMORY" directive khi MEMORY borderline. **NEW capability prod end-to-end S35**: (a) Admin login eoffice/employees → 5 satellite section inline Add/Edit/Delete form expandable cho 33 EmployeeProfile sample + (b) Admin login /hrm/configs/leave-types → table 5 row + sub-tab 4 kind switcher (LeaveTypes/Holidays/Shifts/OtPolicies) Dialog modal CRUD. **State chốt S35**: **35 mig unchanged** · **71 tables unchanged** · **~185 endpoints (+16 HRM Configs)** · **43 FE pages (+1 HrmConfigsPage)** · **69 menu keys unchanged** · **130 test PASS unchanged** (UAT mode no test add 3 chunk) · **53 gotcha (+1 #53 sub-agent truncation)** · 27 memory user-level · 6 skills · 4 sub-agents (Reviewer + CICD borderline post-spawn MEMORY entries S35).)
|
||||
|
||||
**Last updated S34 FULL (prev):** 2026-05-27 (Session 34 FULL — **🎯 Plan 1+2+3+4 ALL DONE end-to-end: Curate 4 MEMORY + Plan G-O1 Danh bạ + Phase 1.5 batch 6/6 + Plan G-H2 Mig 35 schema foundation**: cumulative **6 commit S34** push remote `edba4ae..07b3f3b` + 4 CI Run PASS (#238 Plan 2 + #239 Plan 3 batch + #240 Item 3 satellite + #241 Plan 4 Mig 35 - pending verify). **Plan 1 Curate** 4 MEMORY 118KB→101KB (-15%, 4 archive q3.md). **Plan 2 G-O1 Danh bạ** end-to-end: BE `Application/Office/DirectoryFeatures.cs` + FE 2 app card grid mirror SHA256 IDENTICAL + 34 row prod live + Run #238 PASS. **Plan 3 Phase 1.5 batch 6/6:** Item 6 menuKeys sync × 2 + Item 2 bool→bool? safe partial + Item 1 per-action policy Hrm_HoSo.{R/C/U/D} + Item 4 test +10 [Fact] 130 PASS + Item 5 UAT smoke nv.test 403 employees + 200 directory (gotcha #44 ACTIVE) + Item 3 BE 5 satellite CRUD scaffold 15 endpoint Pattern 12-ter NEW (~621 LOC + 164 LOC controller extend). **Plan 4 G-H2 Mig 35 schema foundation** (BE CRUD + FE forms defer S35): em main solo 4 entity (LeaveType + Holiday + ShiftPattern + OtPolicy) + 4 EF Config UNIQUE indexes + IApplicationDbContext + ApplicationDbContext +4 DbSet + Mig 35 3-file rule + `SeedHrmConfigsAsync` ~120 LOC seed 19 sample row (5 LeaveType + 10 Holiday VN 2026 + 3 Shift + 1 OtPolicy STANDARD) + MenuKeys `HrmConfig` sub-group + 4 leaf Order=2 + FE 2 app menuKeys sync 5 const. **Multi-agent ROI S34 ~150K total**: 🟨 Implementer 3 spawn ~80K (Plan 2 FE 2 app cookie-cutter + Plan 3 Item 4 test bundle Case 3 + Plan 3 Item 3 BE 5 satellite Case 2) + 🟩 CICD 2 spawn ~40K (Run #238 + Run #239 partial → em main fallback) + 👤 em main solo ~30K (BE Task 1+2 G-O1 + Phase 1.5 Items 6+2+1+5 + Plan 4 Mig 35 schema + DbInitializer seed + Permission menu + 6 commit/push batch + UAT smoke + STATUS/HANDOFF wrap). 🟦 Investigator + 🟥 Reviewer: 0 spawn S34 (chưa cần — Implementer Case 2+3 + em main solo đủ). **5 patterns reinforced cumulative S34**: Pattern 16-bis 4-place mirror cross-app 5× + Pattern 12-bis cross-module mirror preserved + Pattern 12-ter NEW (within-module 5× satellite scaffold) + Smart Friend 6× clean preserved no NEW catches + Per-NV admin opt-in policy match prior PE + bool→bool? safe partial Pattern NEW cross-project + Pattern 11 test infra helper cookie-cutter reinforced. **NEW capability prod end-to-end S34:** (a) Sidebar Văn phòng số > Danh bạ /directory shows 34 row card grid + (b) `/api/employees/{id}/work-history|education|family-relations|skills|documents` 15 endpoint scaffold ready (admin/Hrm role wire qua per-action policy Hrm_HoSo.*) + (c) 4 catalog HRM seeded prod sample (LeaveTypes/Holidays/Shifts/OtPolicies) ready cho Workflow Apps Phase 10.3 reference. **State chốt S34:** **35 mig (+1 Mig 35)** · **71 tables (+4 HRM Configs)** · **~169 endpoints (+15 satellite + 1 directory)** · **42 FE pages (+2 Directory × 2 app)** · **69 menu keys (+Off+OffDanhBa+HrmConfig+4 leaf)** · **130 test PASS (+10)** · **52 gotcha unchanged** · 26 memory user-level · 6 skills · 4 sub-agents (post-spawn MEMORY borderline curate next session).
|
||||
|
||||
**Last updated S33 (prev):** 2026-05-26 (Session 33 — **🎯 Plan B G-H1 Hồ sơ Nhân sự FOUNDATION DEPLOYED PROD + Plan C B-Wrap +9 tests + Drift patch**)
|
||||
|
||||
|
||||
234
docs/changelog/sessions/2026-05-28-s35-fe-inline-forms-g-h2.md
Normal file
234
docs/changelog/sessions/2026-05-28-s35-fe-inline-forms-g-h2.md
Normal file
@ -0,0 +1,234 @@
|
||||
# Session 35 — FE inline forms 5 satellite + G-H2 BE CRUD + G-H2 FE Admin end-to-end deploy prod
|
||||
|
||||
**Date:** 2026-05-28
|
||||
**Duration:** ~5h (setup + 3 chunk execute + wrap)
|
||||
**Branch:** `main`
|
||||
**Push range:** `63dd9ec..021674a` (3 commits)
|
||||
**CI Runs:** #242 + #243 + #244 ALL PASS
|
||||
|
||||
## Context
|
||||
|
||||
Anh main chốt Option A "FE forms + G-H2 BE+FE combo" sequence sau setup 10-mục report + "warm-up Implementer + CICD ngay". Em main thực thi cumulative 3 chunk push + docs wrap end-of-session.
|
||||
|
||||
## Plan execution timeline
|
||||
|
||||
### Setup (~30 phút)
|
||||
10-mục report đầu session: MD/RAG context load + audit 4 MEMORY (3/4 borderline post-S34) + 6 skill verify + 130 test PASS verified + RAG 7 projects 38,849 chunks live + skill cron next 2026-06-01 + 4 sub-agent definitions ready.
|
||||
|
||||
**Drift fix S35 init:**
|
||||
- MEMORY.md user-level index thiếu Pattern 12-ter S34 entry → +1 line patch
|
||||
- Sub-agent agentId từ S34 historical, fresh spawn S35
|
||||
|
||||
### Chunk 1 — FE inline forms 5 satellite (~1.5h)
|
||||
|
||||
**🟩 CICD warm-up `a0fc1bac73362b086`** ~15K:
|
||||
- Verify Run #241 PASS (S34 last `07b3f3b`) — Mig 35 prod + 19 sample seed + 3 domain 200 + bundle hash baseline S35 `RNTX6Fvo`/`29A1LuMm`
|
||||
|
||||
**🟨 Implementer Case 2 `a4ca1a2333ca5a4f2`** ~30K (over budget heavy page rewrite 1200 LOC):
|
||||
- `fe-admin/src/pages/hrm/EmployeesListPage.tsx` 573→1200 LOC (+627, +110%)
|
||||
- `fe-user/...` mirror SHA256 IDENTICAL `802d01fd1ee79925`
|
||||
- `types/employee.ts` +53 LOC × 2 app mirror `db29156a61af76e9`
|
||||
- 5 inline Form component: WorkHistory + Education + FamilyRelation + Skill + Document
|
||||
- 3 DRY helpers: FormField + FormFooter + RowActions × 45 usage site
|
||||
- 15 useMutation per app (5 sat × 3 verb) + DRY `invalidate()` helper × 15 calls
|
||||
- Section component extend `actions?` prop backward-compat
|
||||
- Wire 15 BE endpoint S34 (POST/PUT/DELETE × 5 satellite path)
|
||||
- npm build × 2 PASS (fe-admin 31.57s + fe-user 23.39s, 0 TS error)
|
||||
- Pattern 12-ter cumulative 6× (FE side reinforcement)
|
||||
- 0 ambiguity encountered (spec deterministic 100%)
|
||||
|
||||
**🟥 Reviewer pre-commit `affe62cdb8f58bf0e`** ~15K **TRUNCATED** mid-Cat-1:
|
||||
- Output cut after "Cat 1 PERFECT — all 5 Update calls send `id` in body matching BE UpdateXCommand"
|
||||
- Em main fallback verify Cat 2-6 manual qua Grep:
|
||||
- Cat 2 SHA256 mirror IDENTICAL × 4 file (diff exit 0)
|
||||
- Cat 3 git status anti-fiddle clean
|
||||
- Cat 4 DRY helper `invalidate()` × 15 calls = match mutations
|
||||
- Cat 5 `confirm()` × 6 (5 sat + 1 header) · 0 Mock/alert/TODO
|
||||
- Cat 6 RowActions/FormFooter/FormField × 45 usage
|
||||
- Verdict: PASS (Smart Friend 7× cumulative clean preserved)
|
||||
|
||||
**Commit `c3cd343` push** → CI Run #242 SUCCESS 3m30s:
|
||||
- 130 test baseline preserve (FE-only)
|
||||
- Bundle hash rotate × 2: `RNTX6Fvo→BhR0MmLN` admin + `29A1LuMm→DIdNaB6W` user
|
||||
- CSS hash also rotated
|
||||
- 3 prod domain 200 OK
|
||||
- VPS mtime 09:42
|
||||
|
||||
**Polling lesson CICD MEMORY saved:** Bundle hash verify MUST AFTER status=Success — premature poll showed stale baseline pre-rotate.
|
||||
|
||||
### Chunk 2 — G-H2 BE CRUD 16 endpoint (~5 phút Implementer under-budget)
|
||||
|
||||
**🟦 Investigator `a42bd882c367f6e47`** ~8K parallel pre-flight:
|
||||
- Plan CA Chunk B SOL Catalogs precedent: 948 LOC byte-identical mirror 2 app, Pattern 16-bis × 12-bis 4-place mirror
|
||||
- NamGroup HRM ref **MISS** — KHÔNG có entity dedicated cho 4 HRM catalog. SOL Mig 35 design MẠNH HƠN clean-room (IsPaid/RequiresAttachment/composite UNIQUE/3-tier multiplier/Luật LĐ VN cap). KHÔNG cần port.
|
||||
- SOL Master pattern: Catalogs mega 334 LOC + 1 controller — recommend **Option B mega 1 file**
|
||||
- LOC estimate FE Task 4: ~920 mirror Chunk B 948
|
||||
- EF Configuration 4 file riêng đã có sẵn S34
|
||||
- Anti-pattern caught: NamGroup `TimeOffConfig` embed JSON approver — SOL nên V2 `ApprovalWorkflow` pattern khi G-O4
|
||||
|
||||
**🟨 Implementer Case 2 `a6593cad1afc52333`** ~25K:
|
||||
- `src/Backend/SolutionErp.Application/Hrm/HrmConfigFeatures.cs` NEW 439 LOC mega
|
||||
- `src/Backend/SolutionErp.Api/Controllers/HrmConfigsController.cs` NEW 137 LOC
|
||||
- 4 region cookie-cutter (LeaveTypes/Holidays/Shifts/OtPolicies) × (DTO + List + Create + Update + Delete + Validator) = 4 DTO + 4 List query + 8 Validator + 8 Conflict UNIQUE check + 4 soft delete
|
||||
- URL `/api/hrm-configs/{kind}` × 4 verb = **16 endpoint**
|
||||
- Class `[Authorize]` + write `[Authorize(Roles="Admin")]` 12 attribute
|
||||
- Composite UNIQUE Holiday (Year, Date) Update với `x.Id != req.Id` exclude-self
|
||||
- `dotnet build` PASS 0 err + `dotnet test` 130 baseline preserve
|
||||
|
||||
**Smart Friend Implementer 2 catch S35 BE CRUD:**
|
||||
1. **MaxLength validator vs EF config mismatch** — Spec `Code MaximumLength(20)` vs EF `HasMaxLength(50)`. Aligned validator to EF source-of-truth (LeaveType/OtPolicy Code=50, ShiftPattern Code=20, Name=200, Description=500). Avoid runtime truncation error khi admin paste longer code.
|
||||
2. **HRM entities NO HasQueryFilter** — Master/Catalogs config có `HasQueryFilter(!IsDeleted)` 9 file. 4 HRM Config files KHÔNG có. Added explicit `.Where(x => !x.IsDeleted)` 8 site (4 List query + 4 Conflict-check) prevent surfacing deleted rows.
|
||||
|
||||
**🟥 Reviewer pre-commit `a536143b528605fef`** ~15K **TRUNCATED** mid-MEMORY-trim:
|
||||
- Output cut: "MEMORY size warning shown (24.6KB exceeds 24.4KB). Let me append a concise entry but trim verbose older ones."
|
||||
- Em main fallback verify Cat 1-6 manual:
|
||||
- Cat 1 Wire BE: 8 Conflict check (4 Create + 4 Update với composite Year+Date `x.Id != req.Id` exclude-self) ✓
|
||||
- Cat 2 URL routing: 16 endpoint kebab-case kind consistent
|
||||
- Cat 3 Anti-fiddle: 2 NEW BE file + sub-agent MEMORY auto
|
||||
- Cat 4 Authorization: 12 `[Authorize(Roles="Admin")]` = 4×3 write verb
|
||||
- Cat 5 Validator: 8 AbstractValidator + 44 RuleFor + 0 Mock/TODO
|
||||
- Cat 6 Cookie-cutter Pattern 12-bis mega consistent
|
||||
- Smart Friend 8× cumulative clean preserved
|
||||
|
||||
**Commit `909655c` push** → CI Run #243 SUCCESS 3m43s:
|
||||
- Bundle hash UNCHANGED × 2 (anti-pattern verify: BE-only no spurious FE rebuild)
|
||||
- 4 GET endpoint smoke 19 row prod live (5 LeaveType + 10 Holiday VN 2026 + 3 Shift + 1 OtPolicy STANDARD)
|
||||
- 3 prod domain 200 OK
|
||||
- Mig prod TOP 1 unchanged (no Mig delta)
|
||||
|
||||
### Chunk 3 — G-H2 FE Admin HrmConfigsPage (~6 phút Implementer + 1 phút Reviewer)
|
||||
|
||||
**🟨 Implementer Case 2 `a1aeda2fcbbc19eeb`** ~25K:
|
||||
- `fe-{admin,user}/src/types/hrm-config.ts` NEW 98 LOC × 2 app SHA256 IDENTICAL `228917e5fac2cdc6`
|
||||
- `fe-{admin,user}/src/pages/hrm/HrmConfigsPage.tsx` NEW ~470 LOC × 2 app SHA256 IDENTICAL `6378fbc71ff90260`
|
||||
- `fe-{admin,user}/src/App.tsx` +3 LOC × 2 app (route + Navigate redirect default `/hrm/configs` → `leave-types`)
|
||||
- `fe-{admin,user}/src/components/Layout.tsx` +6 LOC staticMap × 2 app (4 entry `Hrm_Config_*`)
|
||||
- Declarative `KIND_CONFIG` Record × 4 kind + FieldDef type extend (text/textarea/checkbox/number/date/time/select/multiselect-weekday cho Shift WorkDays)
|
||||
- 4 kind sub-tab navigation + Dialog modal CRUD + per-kind RowRenderer
|
||||
- npm build × 2 PASS (fe-admin 14.33s + fe-user 744ms, 0 TS error)
|
||||
- Pattern 12-bis × 16-bis 9× cumulative successful
|
||||
- Pattern 16-bis 6× cumulative (staticMap 4th place enforce)
|
||||
|
||||
**Smart Friend Implementer 3rd catch S35 (CRITICAL):**
|
||||
- **Em main spec line 24 GAP** "Layout staticMap (no resolve issue — `/hrm/configs/:kind` URL match menu key `Hrm_Config_*` 4 leaf seeded S34 đã có URL ...)" — **WRONG**
|
||||
- Implementer verified:
|
||||
- `MenuItem.cs` Domain entity NO `Url` field → FE-only routing
|
||||
- `resolvePath()` Layout.tsx chỉ staticMap + regex `Ct_*/Wf_*/Pe_*/PeWf_*/AwV2_*` → KHÔNG match `Hrm_Config_*`
|
||||
- Without staticMap → MenuLeaf line ~198 `if (!path) return null` → silent sidebar drop (gotcha #50)
|
||||
- Per Pattern 16-bis cumulative discipline (gotcha #50 5× prior), Implementer enforced staticMap mirror +6 LOC × 2 app
|
||||
- Pattern foundation overrides single-spec-instance scope when conflict — Smart Friend anti-pattern prevention
|
||||
|
||||
**🟥 Reviewer pre-commit `a6b42cc3c1423e699`** ~5K **PASS CLEAN không truncated** (tight brief verified):
|
||||
- Tight scope brief ≤ 10K explicit "DO NOT curate MEMORY heavy"
|
||||
- 7 tool uses, 52s, 5K total token return
|
||||
- Cat A Wire BE 16 endpoint PASS (api.get/post/put/delete + URL `/hrm-configs/${kind}` literal)
|
||||
- Cat B Anti-fiddle PASS (8 file expected + sub-agent MEMORY auto)
|
||||
- Cat C staticMap consistency PASS (resolvePath regex DOES NOT match `Hrm_Config_*` — Smart Friend catch CORRECT, 4 entry mirror identical 2 app)
|
||||
- Cat D TS6 erasableSyntaxOnly PASS (0 enum, 11 type alias + 4 union literal)
|
||||
- 0 critical / 0 major / 2 minor defer
|
||||
- Smart Friend 9× cumulative clean — TIGHT BRIEF MITIGATION SUCCESS
|
||||
|
||||
**Commit `021674a` push** → CI Run #244 SUCCESS 3m38s (em main fallback verify):
|
||||
- 🟩 CICD `a3dfb05e2deee8f0f` **STALLED 600s watchdog** after "VPS mtime cross-check confirms ship at 10:05"
|
||||
- Em main fallback curl verify: 3 prod domain 200 OK + bundle hash rotate × 2 confirmed
|
||||
- fe-admin `BhR0MmLN→Bl6e54yi`
|
||||
- fe-user `DIdNaB6W→DHmW2tUF`
|
||||
|
||||
## Multi-agent ROI S35 ~250K total
|
||||
|
||||
| Agent | Spawn count | Token est | Quality |
|
||||
|---|---|---|---|
|
||||
| 🟨 Implementer Case 2 | 3 | ~80K | 3 cookie-cutter chunk + Smart Friend × 3 catch (MaxLength + HasQueryFilter + staticMap) |
|
||||
| 🟦 Investigator | 1 | ~8K | Plan G-H2 BE CRUD pre-flight + NamGroup MISS verdict + LOC estimate |
|
||||
| 🟥 Reviewer | 3 | ~60K | Smart Friend 9× cumulative clean (2 truncated mid-MEMORY + 1 tight brief PASS) |
|
||||
| 🟩 CICD | 4 | ~70K | Warm-up + 3 deploy verify (1 stalled em main fallback) |
|
||||
| 👤 Em main | — | ~280K | Setup + spec design × 3 + commit × 3 + push × 3 + manual verify fallback × 3 + docs wrap |
|
||||
|
||||
## NEW gotcha #53 — Sub-agent truncation/stall pattern
|
||||
|
||||
**Pattern empirical S35:** 3 sub-agent spawn (Reviewer × 2 + CICD × 1) bị truncated / stalled trong final "Update MEMORY.md BEFORE stop" step. Output return PASS verdict snippet visible nhưng structured findings không đầy đủ.
|
||||
|
||||
**Root cause hypothesis:**
|
||||
1. Sub-agent context window approach limit khi cumulative tool output + 100K spawn budget
|
||||
2. MEMORY.md ~25-31KB borderline triggers Edit/Write large operation late-stage → token overflow streaming
|
||||
3. Stream watchdog 600s timeout không recover (CICD case)
|
||||
|
||||
**Mitigation verified S35:**
|
||||
- **Tight brief scope ≤ 8K + 4 cat tight** → Reviewer chunk 3 FE Admin PASS clean 5K return
|
||||
- **Em main manual verify post-truncation** Cat 2-6 grep-based (5 phút faster than re-spawn)
|
||||
- **Curate MEMORY pre-spawn nếu > 25KB** (4 agent MEMORY S35 post-spawn borderline cumulative)
|
||||
- **Spec ghi rõ "short append MEMORY only, NO curate"** khi MEMORY borderline
|
||||
|
||||
**Saved gotcha #53 + Quick reference 28 trong gotchas.md.**
|
||||
|
||||
## Patterns reinforced cumulative S35
|
||||
|
||||
| Pattern | Reinforcement | Reference |
|
||||
|---|---|---|
|
||||
| Pattern 12-ter (within-module N-satellite) | 6× cumulative (5 sat S34 + FE forms S35) | feedback_within_module_n_satellite_scaffold |
|
||||
| Pattern 12-bis (cross-module catalog mega) | 3× cumulative (S29 Plan B + Chunk C + S35 G-H2) | docs/changelog/sessions/2026-05-22-s29-plan-ca-plan-b-contract-v2-wire.md |
|
||||
| Pattern 16-bis (4-place mirror cross-app) | 6× cumulative — staticMap 4th place mandatory | gotcha #50 + S33-S34-S35 reinforcement |
|
||||
| Smart Friend | 9× cumulative clean (S22+S25+S29×2+S33×2+S35×3) | Implementer Smart Friend default |
|
||||
| **NEW: Declarative KIND_CONFIG Record** | 2× pattern (Master/Catalogs + HRM/Configs) | Reusable cross-module single-page multi-kind CRUD |
|
||||
|
||||
## State delta S35
|
||||
|
||||
| Metric | S34 wrap | S35 wrap | Δ |
|
||||
|---|---|---|---|
|
||||
| Migrations | 35 | 35 | 0 |
|
||||
| Tables | 71 | 71 | 0 |
|
||||
| Endpoints | ~169 | ~185 | +16 (HRM Configs) |
|
||||
| FE pages | 42 | 43 | +1 (HrmConfigsPage) |
|
||||
| Menu keys | 69 | 69 | 0 |
|
||||
| Tests | 130 | 130 | 0 (UAT mode no test add) |
|
||||
| Gotchas | 52 | 53 | +1 (#53 sub-agent truncation) |
|
||||
| Memory user-level | 26 → 27 | 27 | unchanged S35 (Pattern 12-ter add S34, MEMORY.md drift fix S35 init +1 entry) |
|
||||
| Skills | 6 | 6 | 0 |
|
||||
| Sub-agents | 4 | 4 | 0 |
|
||||
| Active prod users | 34 | 34 | 0 |
|
||||
| Commits S35 | — | 3 | `c3cd343` + `909655c` + `021674a` |
|
||||
| CI Runs S35 | — | 3 | #242 + #243 + #244 ALL PASS |
|
||||
| Bundle hash rotate | — | 2× | fe-admin BhR0MmLN→Bl6e54yi · fe-user DIdNaB6W→DHmW2tUF |
|
||||
|
||||
## NEW capability prod end-to-end S35 (UAT-ready)
|
||||
|
||||
### Capability 1 — Hồ sơ NV satellite CRUD inline forms
|
||||
- Admin login `eoffice.solutions.com.vn/employees`
|
||||
- Pick `NV/2026/0007 BOD 1 - Director` (1 in 33 sample)
|
||||
- Section 2-6 click `+ Thêm` → inline AddForm expand
|
||||
- Per-row Pencil → inline EditForm replace row
|
||||
- Per-row Trash → `confirm()` native + DELETE API
|
||||
- 15 BE endpoint wire CRUD live (5 satellite × POST/PUT/DELETE)
|
||||
|
||||
### Capability 2 — Cấu hình HRM 4 catalog
|
||||
- Admin login `eoffice.solutions.com.vn/hrm/configs/leave-types`
|
||||
- 4 sub-tab navigation: Loại phép / Ngày lễ / Ca làm việc / Chính sách OT
|
||||
- Table per-kind với columns config riêng
|
||||
- `+ Thêm` → Dialog modal form (declarative FieldDef render — text/number/date/time/checkbox/select/multiselect-weekday)
|
||||
- Pencil → Dialog Edit pre-fill
|
||||
- Trash → confirm() + DELETE
|
||||
- 16 BE endpoint wire CRUD live (`/api/hrm-configs/{kind}` × 4 verb)
|
||||
- 19 row seed prod (5+10+3+1) admin manage
|
||||
|
||||
## Defer S36+ backlog
|
||||
|
||||
1. **Plan G-O2 Phòng họp BookingCalendar** (~3-4h Mig 36 — FullCalendar lib NEW dep) standalone
|
||||
2. **Phase 10.3 G-O3-O6 Workflow Apps** (4 plan workflow LeaveRequest/OtRequest/BusinessTrip/Project — depends G-H2 catalog ready)
|
||||
3. **Curate 4 MEMORY post-S35 spawn** (Reviewer + CICD borderline)
|
||||
4. **Test bundle G-H2 BE CRUD** (~30 phút Implementer Case 3 — UNIQUE Conflict + composite Year+Date + soft delete restore)
|
||||
5. **Audit cron 2026-06-01** (cumulative mig 33→35 + test 111→130 + gotcha 52→53 docs drift batch)
|
||||
6. **Phase 9 Ops** anh main coordinate (SMTP + Rotate creds + UAT 2-3 user 1 tuần)
|
||||
7. **Phase 1.5 Item 3 BE permission per-action satellite** (current scope `[Authorize(Policy="Hrm_HoSo.Create")]` class-level on satellite endpoints — verify Drafter 403 silent per-action mitigation)
|
||||
|
||||
## Reference
|
||||
|
||||
- `docs/STATUS.md` S35 header
|
||||
- `docs/HANDOFF.md` S35 brief
|
||||
- `docs/gotchas.md` #53 NEW sub-agent truncation pattern
|
||||
- 3 commit: `c3cd343` (FE forms) + `909655c` (BE CRUD) + `021674a` (FE Admin)
|
||||
- 3 CI Run: #242 + #243 + #244 ALL PASS
|
||||
- 4 agent last spawn agentId (post-session-end invalid):
|
||||
- Investigator `a42bd882c367f6e47`
|
||||
- Implementer `a1aeda2fcbbc19eeb`
|
||||
- Reviewer `a6b42cc3c1423e699`
|
||||
- CICD `a3dfb05e2deee8f0f` (stalled at end)
|
||||
@ -956,6 +956,40 @@ for h in resp.points: # ← .points không phải iterable trực tiếp
|
||||
|
||||
**Phòng tránh:** Pin `qdrant-client` version trong deps (`==1.x.y`). Hoặc thêm health-check startup: `assert hasattr(_qdrant, 'query_points'), "upgrade qdrant-client"`. **KHÔNG dùng `except Exception: continue` che-mờ lỗi API** — ít nhất log warning.
|
||||
|
||||
### 53. Sub-agent truncation / stall pattern khi heavy MEMORY update phase end-of-task — Reviewer + CICD bị cut mid-sentence ở Update MEMORY.md step (Session 35 × 3 occurrence)
|
||||
|
||||
**Triệu chứng:** Sub-agent (Reviewer + CICD spawn ~100K token budget, ~30+ tool uses) chạy adversarial checks / smoke verify hoàn chỉnh, returning verdict PASS qua snippet visible, NHƯNG output bị truncate ở final "Update MEMORY.md BEFORE stop" step. Em main không nhận structured verdict đầy đủ.
|
||||
|
||||
**Pattern empirical S35:**
|
||||
- Reviewer FE forms (1200 LOC + 60 mutation): Cat 1 "wire BE PERFECT" + 33 tool uses → truncated mid-MEMORY append
|
||||
- Reviewer BE CRUD (576 LOC + 16 endpoint): "MEMORY size warning 24.6KB exceeds 24.4KB. Let me append concise entry but trim verbose..." → truncated mid-trim
|
||||
- CICD Run #244 verify (FE Admin deploy): "VPS mtime cross-check confirms ship at 10:05" → stalled 600s watchdog timeout
|
||||
|
||||
**Root cause hypothesis:**
|
||||
1. Sub-agent context window approaches limit khi cumulative tool output (Read MEMORY ~25KB initial + Read references + Bash output + grep results) + 100K spawn budget
|
||||
2. MEMORY.md size ~25-31KB borderline triggers Edit/Write large operation late-stage → token overflow during streaming
|
||||
3. Stream watchdog 600s timeout không recover (CICD case) — process hung internally
|
||||
|
||||
**Mitigation S35 verified:**
|
||||
- **A. Tight brief scope** — Reviewer FE Admin spawn (~5K token brief, 4 cat tight, "concise findings only") → PASS clean 5K return không truncated. Pattern: brief budget < 8K + scope ≤ 4 cat + explicit "DO NOT curate MEMORY heavy — short append only this time"
|
||||
- **B. Em main manual verify post-truncation** — Cat 2-6 grep-based verify (SHA256 diff exit code + grep count match) takes ~5 phút em main, faster than re-spawn
|
||||
- **C. Curate MEMORY pre-spawn nếu > 25KB** — agent MEMORY > threshold trigger truncation risk. Em main curate proxy archive q3.md trước spawn heavy.
|
||||
- **D. Avoid forcing MEMORY heavy update in agent spec** — phase "Update MEMORY.md BEFORE stop with detailed findings" → switch to "short append 1 entry FIFO most-recent-first, KHÔNG curate old"
|
||||
|
||||
**Cumulative occurrences S35:** 3/8 sub-agent spawn (Reviewer × 2 + CICD × 1 = 37.5% truncation rate at borderline ~25-31KB MEMORY). Heavy task + large MEMORY = correlation point.
|
||||
|
||||
**References:**
|
||||
- S33 Implementer truncation pattern 2/3 (memory `feedback_implementer_truncation_mitigation` user-level — heavy scaffold ≥30 file)
|
||||
- S35 Reviewer FE forms (Session 35 push #1 verify): output cut after Cat 1 PERFECT statement
|
||||
- S35 Reviewer BE CRUD (Session 35 push #2 verify): cut mid-MEMORY trim
|
||||
- S35 CICD Run #244 (Session 35 push #3 verify): stalled 600s watchdog after VPS mtime cross-check
|
||||
|
||||
**Phòng tránh:**
|
||||
1. Tight brief scope ≤ 8K tokens cho Reviewer/CICD nếu task verifiable qua grep/diff em main
|
||||
2. MEMORY pre-spawn audit: nếu > 25KB → curate proxy archive trước spawn
|
||||
3. Agent spec ghi rõ "short append MEMORY only, NO curate", remove "BEFORE stop with detailed" directive khi MEMORY borderline
|
||||
4. Em main backup verify Cat 2-6 manual grep nếu Reviewer truncated mid-verdict
|
||||
|
||||
**References:**
|
||||
- AI_INFRA: `claude-rag/lib/retrieval.py` `vector_search()` function — fixed 2026-05-26 S31
|
||||
- Eval run: `eval/runs/2026-05-26-baseline-v1.1-final.json`
|
||||
@ -993,3 +1027,4 @@ for h in resp.points: # ← .points không phải iterable trực tiếp
|
||||
26. Nếu new Seed method KHÔNG chạy prod dù dotnet build PASS + deploy SUCCESS → check nested inside `if (!demoSeedDisabled)` gate (Plan T S23 t10 flag enabled prod) → INFRASTRUCTURE seed phải PROMOTE OUT of DemoSeed gate (#51). Decision tree: production cần để work end-to-end? YES → ungate
|
||||
25. Nếu UI audit list show `Đã gửi duyệt → Đã gửi duyệt` lặp gây nhầm → drop dual-phase badge khi state machine self-loop, thay Decision badge + next-target hint parse từ comment (#49)
|
||||
27. Nếu RAG `search_memory` trả 0 results dù Qdrant green + BM25 có data → `qdrant-client` upgrade xóa `search()` method, bị nuốt silent. Test: `python -c "from qdrant_client import QdrantClient; c=QdrantClient(url='http://127.0.0.1:6333'); c.search"`. Fix: dùng `query_points(query=...).points` (#52)
|
||||
28. Nếu sub-agent (Reviewer/CICD) return PASS verdict bị cut mid-sentence ở "Update MEMORY.md" step → MEMORY > 25KB triggers truncation risk. Mitigation: tight brief ≤ 8K + em main grep verify manual + curate MEMORY pre-spawn nếu > 25KB (#53)
|
||||
|
||||
Reference in New Issue
Block a user