Phase 9 stabilize sequential batch S32: - Plan A2 DONE: RAG re-ingest 166 files / 2988 chunks / 75.7s. Verify gotcha #52 query rerank 0.906 (was 0.516 < 0.7 threshold). Phase 10 backlog query rerank 0.758 semantic match good. - Plan A3 DONE: MEMORY curate 3 agents OVER 25KB threshold. Implementer 38.4 -> 27.5KB (5 verbose S25-S29 entries archived q2 - Patterns 1-19 + 12-bis + 16-bis foundation preserved). Investigator 27.7 -> 19KB (4 verbose S25-S26-S29 entries archived q2). CICD Monitor 27 -> 24.2KB (Run #231 PARTIAL detail archived q2 - S29 wrap summary preserves key findings). Reviewer 24.39KB unchanged (self-curated S32 startup). Total 117.9 -> 95.7KB (-22KB ~18%). - Plan B-Wrap spec BW1-BW7 documented detailed (migration-todos D-Bis section): BW1 happy path step advance + BW2 terminal gen ma HD + BW3 skipToFinal F2 admin opt-in + BW4 ForbiddenException + BW5 ApplicableType=Contract validation (Reviewer S29 MAJOR catch) + BW6 Mig 32+33 schema persistence UNIQUE composite + BW7 V1 fallback ConflictException. Defer dedicated session ~2h chot anh main S32 (test infra IChangelogService + IContractCodeGenerator mocks first-time). - Plan C1 ops status update: backup-sql.ps1 ready (register Task Scheduler manual cmd documented). win-acme cert api.solutions.com.vn notAfter=2026-07-23 (auto-renew ~2026-06-23 NOT 2026-06-18 stale STATUS.md note). SMTP + Rotate creds BLOCKED chờ anh main coordinate. Refs: docs/STATUS.md S31 wrap. docs/HANDOFF.md S31. gotcha #52 qdrant-client search removed (RAG layer stable post-S31 fix + S32 re-ingest gotchas hit). gotcha #51 INFRASTRUCTURE vs DEMO seed (Phase 10.3 enum extend caution). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
8.8 KiB
Investigator Agent — Archive Recent Activity Q2 2026-05 (S25-S29 verbose audit)
Archived: 2026-05-26 S32 em main proxy curate session (post-S31 RAG fix). Scope: 4 verbose Recent activity entries — moved from MEMORY.md để giữ slim < 25KB threshold (was 27.7KB → target ~22KB). Rule §6.5 compliance: KHÔNG cắt narrative — full verbose entries preserved cho cross-session audit. KEEP in MEMORY: S32 startup (latest), S29 wrap summary (Plan CA + Plan B 2 spawn aggregate), S28 Layer A governance, S27 retrospective, S25 wrap (Bug 1+2 audit summary), S22 curate session, S11 setup baseline. Patterns + Active workflow schemas foundation preserved untouched.
Archive entries (FIFO chronological — earliest first)
2026-05-19 (S25 t1 spawn audit 2 bug critical UAT — Changelog logging missing)
Em main report 2 bug UAT: (1) Budget Adjust 2×click → "Lịch sử thay đổi" KHÔNG show 2 entry. (2) Return Assignee mode F1 click → "Lịch sử thay đổi" KHÔNG show return action. Audit 5Q: Q1-DB state Prod SSH fail (auth), fallback code inspect. Q2-Budget handler: PurchaseEvaluationFeatures.cs:379-387 ĐÃ log changelog EntityType=Header + Action=Update + summary diff → code ĐÚNG, likelihood FE filter bug or UAT DB stale. Q3-Return handler: PurchaseEvaluationWorkflowService.cs:215-378 ApplyReturnModeAsync ZERO changelog log — 4 mode branches (OneLevel/OneStep/Assignee/Drafter) mutate pointers only, return summary, caller TransitionAsync:100 LogTransitionAsync only logs phase transition KHÔNG log mode side-effect. Q4-Schema: PurchaseEvaluationChangelog.cs support EntityType=Workflow(5) enum but ZERO code populate — schema incomplete missing Kind/ChangeType subtype enum to disambiguate "budget adjust" vs "detail edit" vs "return mode" (all Header/Workflow entity cùng Action.Update). Q5-FE: Query handler ListPurchaseEvaluationChangelogsQueryHandler:1050-1064 KHÔNG filter logic — returns ALL entities. FE query component unknown (fe-user source not easily searchable) but likely filter EntityType == (Supplier|Detail|Quote) omit Header+Workflow → Bug 1 Budget (Header type) hidden, Bug 2 Return (Workflow type unlogged vậy). Root cause B1: FE filter skip Header updates OR Schema gap (Header.Update collision: budget vs section 2 edit). Root cause B2: Handler intentionally skip logging (no companion audit table like PurchaseEvaluationApprovals for return history). Fix path B1: Option A (add Kind enum — 30 LOC schema+handlers) vs B (extend EntityType — 20 LOC) vs C (FE filter conditional show Budget — 10 LOC FE). Fix path B2: Add db.PurchaseEvaluationChangelogs.Add() per mode (15-25 LOC 1 file). Cross-ref pattern memory: S23 t3 lookup bug (Level.Order collision per-NV Mig 29) — schema Mig 29 OR-of-N refactor created similar subtype ambiguity. Surprise: EntityType.Workflow=5 enum value design-only, unused 4+ mig history. Recommendation: B2 fix first (clear win, 1 file BE), then B1 design (schema + cross-module pattern audit Contracts). Token ~28k.
2026-05-21 (S26 spawn Plan AG 5Q audit — PE List tree view feedback Tra Sol)
Bro UAT 2026-05-21 screenshot phàn nàn UI Duyệt NCC flat list "đám rừng" + propose Outlook-style folder template. Em main spawn Investigator audit 5Q: Q1 prod data scale (SSH auth fail, fallback code inspect — ~50-200 projects × 5-15 PE typical). Q2 Project entity Master/Project.cs:5-14 extends AuditableEntity với Code+Name+dates+Budget+PM+Note, MISSING MaxLength + navigation tới PE → ready for Phase 2 ProjectPackage table mở rộng. Q3 PE List structure PurchaseEvaluationsListPage.tsx:133 3-panel grid lg:grid-cols-[340px_1fr_360px] flat <ul><li> line 199-252 + pageSize 50 + filter type/phase/awId/search. Q4 shadcn fe-user component GAP THIẾU Accordion/Collapsible/Tree/Card/Badge (chỉ Button/Dialog/Input/Label/Select/Textarea) → Phase 1 fallback HTML <details>/<summary> native + inline badge <div> (verified S24 Plan AA pattern). Q5 Mig 32 prep naming AddProjectPackageTable follow cumulative pattern. Recommend Approach C Hybrid: Phase 1 FE-only group view ~160 LOC × 2 app (1-2 ngày) + Phase 2 ProjectPackage schema (3-5 ngày defer post-UAT). Implementer Case 2 cookie-cutter mirror 2 app ACCEPT. Token ~30k.
2026-05-21 (S26 spawn Plan AI RAG distribution research — 4 study cases industry-validated)
Bro plan setup RAG cho 5 dự án cùng máy localhost share infrastructure. Investigator deep research 7Q: Anthropic patterns + community tools + multi-tenant architecture + distribution mechanism + auth + cost + sync. Findings 4 study cases: (1) Cursor — Merkle tree + Turbopuffer + 92% similarity reuse pattern, secret key derived Git commit hash, per-team index sharing cut indexing hours→seconds. (2) Cline Memory Bank — markdown + JIT retrieval + git-native sync. (3) Continue.dev Hub — slug-based YAML config sharing centralized. (4) Sourcegraph Cody — interesting anti-pattern, BỎ embeddings sang Search API + graph IR scale 100K+ repos enterprise (alternative if good search infra sẵn). Multi-tenant 3 patterns: Single index (pool, cheap), Per-tenant isolated (silo, expensive), Hybrid base+delta (Cursor pattern). Distribution combo winner cho 5-dev team: FastMCP HTTP server VPS Hetzner $15/tháng + git-sync embeddings snapshots committed to private repo. Auth JWT RS256 + role scopes + document-level ACL. Cost reality 5 dev ~$20/month vs cloud Qdrant $50/month. Sync git-based weekly cron (real-time chỉ cần khi team > 10 dev). Surprise: Voyage AI 200M tokens/month free tier cover 5 devs comfortably — coi như chỉ tốn $15 VPS. Anthropic standards 9/9 matched + community best practices 6/7 matched (Sourcegraph alternative N/A cho memory-heavy). Plan AI architecture chốt với em main: User-level Global MCP (Pattern C — 1 server localhost serve 5 project) thay vì team VPS pattern (anh single dev 5 dự án). Token ~40k.
2026-05-22 (Plan B Contract V2 wire pre-flight audit — Q1-Q5 + Bonus re-chunk)
Em main spawn Investigator pre-flight Plan B priority HIGH. 5Q audit + Bonus chunk refinement. Tag schema: [audit, phase-9, contract]. Findings: (Q1) Contract.cs:8-58 25 fields, V1 ready (WorkflowDefinitionId line 22 + CurrentWorkflowStepIndex line 39 + Phase line 12 + RejectedAtStepIndex line 40) MISSING ApprovalWorkflowId Guid? + CurrentApprovalLevelOrder int? → need Mig 32 add. (Q2) ContractPhase.cs:14-28 12 values ready ChoDuyet=10 + TraLai=98 + TuChoi=99 mirror PE. ContractWorkflowService.cs:23-219 220 LOC V1 ONLY. NO V2 branch. Match Dept+PositionLevel line 113-126. Gen mã HĐ line 148-155 trigger last step → Phase=DaPhatHanh (terminal khác PE DaDuyet). (Q3) Prod: 7 Contracts 100% V1Pinned (Mig 21 flat WorkflowDefinitionId), 6 in-workflow Phase 2-8 → MUST coexist V1+V2, KHÔNG drop V1. ApprovalWorkflows Prod: 2 rows ApplicableType=1 (DuyetNcc) ZERO ApplicableType=3 (Contract) chưa seed. (Q4) Mig 22 20260508053749_AddApprovalWorkflowsV2.cs:14-127 3 CREATE TABLE shared cho cả PE+Contract, Mig 32 chỉ cần ADD COLUMN tại Contracts. Mig 23 20260508072821_AddApprovalWorkflowIdToPurchaseEvaluation.cs:14-31 template 15 LOC cookie-cutter rename Pe→Contract. Mig 24 20260508074937_AddCurrentApprovalLevelOrderToPe.cs:14-17 3 LOC. ApproveV2Async PurchaseEvaluationWorkflowService.cs:446-634 189 LOC clone mẫu — load AW.Steps.Levels + match actorId ∈ pendingLevelGroup.ApproverUserId (line 484-495) + UPSERT opinion (line 522-546) + advance level/step (line 605-633) + skipToFinal F2 (line 561-602). Branch entry pattern line 167-171 ternary if (evaluation.ApprovalWorkflowId is Guid awId) ApproveV2Async else ApproveV1Legacy. (Q5) Risk LOW — schema 80% shared. F1-F4 7 flags Mig 29+30+31 trên ApprovalWorkflowLevels (entity line 86-114) inherits FREE Contract. Risk MEDIUM: ContractType discriminator — 1 workflow serve ALL 7 ContractType vs per-type? PE chỉ 2 type. Defer Q em main. Bonus re-chunk 6 chunks: A1 entity 5 LOC (em main) + A2 Mig 32 cookie-cutter (Implementer) + B Service ternary 189 LOC clone adapt gen mã HĐ terminal (em main critical cross-stack) + C Mig 33 ContractLevelOpinions cookie-cutter (Implementer) + D FE-User Workspace Select V2 (Implementer mirror) + E FE Section 5 LevelOpinionsV2 dynamic (Implementer mirror). Surprises: (a) ApprovalWorkflows Prod ZERO ApplicableType=3 — recommend Chunk A2 include DbInitializer seed sample. (b) RejectedAtStepIndex Contract line 40 DEPRECATED chưa marked obsolete drift với PE line 50. (c) ContractType 7 variants vs ApprovalWorkflow generic ApplicableType=3 — future Mig 34 có thể cần ContractTypes int[] filter nếu Solutions cần per-type workflow. Recommendation: PROCEED coexist V1+V2 pattern, 6 chunk re-chunk. Token ~25K. source_path: solution_erp/audit/investigator-plan-b-contract-v2-preflight-2026-05-22.