Files
solution-erp/.claude/agent-memory/cicd-monitor/archive/2026-06.gist.md
pqhuy1987 f36aab8934
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m52s
[CLAUDE] Docs: adopt Harness-9 — L2 archive dark-matter recovery (4 sub) + adap 2-workflow mandate (S70)
3-stage Workflow run-id evidence: investigate wf_be952f3c-97f / implement wf_a58e0d15-beb / audit wf_9520d8cd-4fe.

PART 1 (L2 recovery): 4 over-cap sub (cicd-monitor/investigator-codebase/reviewer/implementer-backend)
curated L1->L2 byte-exact + archive/_INDEX.md (substring sha-keyed pointers, no line-hints)
+ <period>.gist.md (4-field distill, distill-gen:1, verbatim frozen). All 4 MEMORY.md now < 25KB
auto-inject cap (closes P1 curate-debt). ~240KB archive no longer RAG-dark. 0-byte-loss git+sha
verified (Stage C audit + em-main self-gate on 2 reviewer StructuredOutput no-returns). Read-side
gap fixed (MEMORY.md L5 header -> _INDEX). + memory-budget.json (seed-by-measure) +
scripts/measure-agent-memory.ps1 + .ragignore guard.

PART 2/3 (process mandate): every adap = 2 separate workflows (implement + review) + report with
run-id; short-but-needs-confirm still requires review. Codified in .claude/commands/adap-apply.md
+ agents/README.md (Upgrade S70) + session-start.md (§2.1.2 budget-audit, pending-restart).

adap-report + email-back to AI_INFRA (body-hash 7c07b716e775).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-17 23:52:51 +07:00

15 KiB
Raw Blame History

distill-gen, period, source-verbatim, pointer-style, fields-per-line, note
distill-gen period source-verbatim pointer-style fields-per-line note
1 2026-06 (+ tail of late-05 runs that live in 2026-06.md) archive/2026-06.md (39 records, FROZEN — do NOT re-compress this gist) substring (Ctrl-F) back-resolve into archive/2026-06.md; each line ends → substring:"<unique>" VIỆC · KẾT-LUẬN(+commit/sys-truth) · BÀI-HỌC · BẤT-NGỜ · [confidence] compression is a REPORTED number, not a target — every marker below is preserved in full-enough words to re-identify. Markers tagged M#.

CI/CD Monitor — GIST 2026-06 (4-field distilled, read before opening verbatim)

Distilled from archive/2026-06.md. Open that file + Ctrl-F the trailing substring to read the full run-record. M# = checklist-marker survival tag (Stage-C gate, 22 total).

PE cross-stack + budget (S60-S62)

  • VIỆC: PE "vượt ngân sách" soft-warn, PeWorkItemBudgets per-gói-thầu (Mig 50 replaces Budget module). KẾT-LUẬN: PASS, commit 7926c21; sys.tables 93→88 post-S61 Budget-drop, sys.tables(is_ms_shipped=0, excl mighist)=88 correct. BÀI-HỌC: when commit touches no schema, 88 is right — don't FAIL on the 88-vs-93 (88↔93) ambiguity, always cross-ref COMMIT-scope vs ambient count. BẤT-NGỜ M20: table-count 88-vs-93 — narrative-93 is STALE pre-S61; S61 Budget-replace DROPPED 93→88; sys.tables(is_ms_shipped=0)=88 correct post-S61. [cao] → substring:"Run #286 (run_number 286, id400)"
  • VIỆC: PE guard 4-thông-tin mục 3 cross-stack. KẾT-LUẬN: PASS commit 37122f0. BÀI-HỌC: cross-stack guard verify. BẤT-NGỜ M21: PE code column = MaPhieu NOT Code (custom naming — sqlcmd must SELECT MaPhieu). [vừa] → substring:"Run #283 (run_number 283) sha=37122f0"
  • VIỆC: S59 series — đợt6 cross-stack BE (9c330d2), đợt5 FE×2 (faed59f), đợt3 BE-only DbInitializer (bbd1554), đợt2 FE×2 PE-list tree (0eafcd3), CLOSE đóng sổ (69997da). KẾT-LUẬN: all PASS. BÀI-HỌC: multi-đợt same-session FIFO; BE-only=both-bundle-frozen, FE×2=both-rotate. BẤT-NGỜ: none. [vừa] → substring:"Run #280 (run_number 280) sha=69997da"
  • VIỆC M18: S59 FE×2 PE-list tree regroup (56882ac), in the post-wipe window after the DemoSeed tables were cleared. KẾT-LUẬN: PASS commit 56882ac. BÀI-HỌC M18: post-wipe deploy = verify BOTH halves — demo tables stay 0 after app-pool recycle (no accidental re-seed) AND infrastructure/master untouched (don't check only one side). BẤT-NGỜ: recycle did NOT re-populate demo rows (DemoSeed:Disabled holds). [cao] → substring:"Run #273 (run_number 273) sha=56882ac"
  • VIỆC: S59-đợt4 rename WorkItems → 71 hạng mục via prod-SQL + idempotent-seed. KẾT-LUẬN: PASS commit c869d26, WorkItems count=71 EXACT no-dup. BÀI-HỌC M17: rename-via-prod-SQL + idempotent-seed = verify target count EXACT; double = re-added-dup = FAIL (71-no-dup). BẤT-NGỜ: none. [cao] → substring:"Run #276 (run_number 276) sha=c869d26"

#291 FAIL forensic — the CS7036 class (S?, 06-16)

  • VIỆC M6M8M9: TEST-GATE COMPILE BREAK. KẾT-LUẬN: FAIL ~64s, commit 8c8179c; CS7036CreateDepartmentCommand record gained REQUIRED 5th positional ParentId; un-updated call site MasterCatalogFilteredUniqueTests.cs:63 (old 4-arg) breaks whole slnx build → deploy GATED, prod stayed baseline (bundles FROZEN + Mig NOT applied). BÀI-HỌC M6: this is gotcha #65 root-cause canonical = spec-change-miss class (record ctor grows positional param → stale call-site). BẤT-NGỜ: green-elsewhere but one stale test call-site fails entire build; deploy-gate protected prod. [cao] → substring:"Run #291 (run_number 291, id405) sha=8c8179c"

Lock/auth quirks (S58)

  • VIỆC M15: S58 FIX the #381 lock NO-OP. KẾT-LUẬN: PASS commit 5998163; lock-noop → pw-11to12. BÀI-HỌC M15: lock/deactivate-by-email returning 0/-1 = dump actual Users set BEFORE scoring FAIL (don't assume target row exists). BẤT-NGỜ M21: custom Identity table = Users NOT AspNetUsers. [cao] → substring:"Run #382 (run_number 268) sha=5998163"
  • VIỆC: S57bis PE gắn WorkItemId loose-Guid no-FK (Mig 49). KẾT-LUẬN: PASS+1PARTIAL commit dd117b7. BÀI-HỌC: AddColumn+CreateIndex no-new-table. BẤT-NGỜ: partial on one axis. [vừa] → substring:"Run #381 (run_number 267) sha=dd117b7"

Supersede-chain + bundle-frozen/asymmetric/rotate discipline (S55-S59)

  • VIỆC M10M22: SUPERSEDE-CHAIN benign. KẾT-LUẬN: same-SHA run flipped to CANCELLED mid-flight, shipped via 3ebaf… (mem id #385/#386). BÀI-HỌC M10: same-SHA run flipping to cancelled = Gitea concurrency-supersede by newer push, NOT fault; verify merge-base --is-ancestor + diff-empty + the SUCCESSFUL run, do NOT escalate. BẤT-NGỜ M22: mem-labeled run ids (#385/#386) differ from real Gitea task ids — reconcile via run_number. [cao] → substring:"Run #385→#386 SUPERSEDE-CHAIN sha=ea793a4"
  • VIỆC M13: S58 FE-USER visual redesign. KẾT-LUẬN: PASS commit e959f72, asymmetric fe-user-only rotate. BÀI-HỌC M13: asymmetric single-app FE: changed-app hash MUST rotate AND other-app MUST stay frozen (#384 fe-user-only ↔ #378 fe-admin-only — direction flips). BẤT-NGỜ: none. [cao] → substring:"Run #384 (run_number 270) sha=e959f72"
  • VIỆC M12: S56 GOLIVE-HARDEN BE fixes. KẾT-LUẬN: PASS commit a20cde8. BÀI-HỌC M12: BE-only bundle FROZEN = correct, NOT ship-fail; ship-proof = Mig-applied / test-count (not bundle-rotate). BẤT-NGỜ: none. [cao] → substring:"Run #379 (run_number 265) sha=a20cde8"
  • VIỆC: S56 pre-golive re-verify prod truth. KẾT-LUẬN: [audit] no-deploy read-only. BÀI-HỌC: read-only audit pattern (no ship event). BẤT-NGỜ: none. [thấp] → substring:"S56 pre-golive verify — NO deploy"
  • VIỆC M13: S55 Phase-1 FE-Admin visual redesign. KẾT-LUẬN: PASS commit 7feb53e, asymmetric fe-admin-only rotate / other frozen. BÀI-HỌC M13: changed-app rotate + sibling frozen (the admin-side mirror of #384). BẤT-NGỜ: none. [cao] → substring:"Run #378 (run_number 264) sha=7feb53e"
  • VIỆC M14: S55 HMW-P4 real master-data seed (Mig 48: 62 dự án + 71 hạng mục + 3 NCC). KẾT-LUẬN: PASS commit 69cb393. BÀI-HỌC M14: ungated SeedRealMasterDataAsync verify = sqlcmd COUNT spot-check + =N'…' EXACT for unicode (reaches prod by design, idempotent per-code). BẤT-NGỜ: none. [cao] → substring:"Run #377 (run_number 263) sha=69cb393"

SLA / IT-ticket / 411 (S54)

  • VIỆC M16: S54 IT-staff self-reassign ticket. KẾT-LUẬN: PASS commit ca4b602. BÀI-HỌC M16: 411-vs-401 — unauth bodyless PUT/POST returns 411 from IIS BEFORE [Authorize]; resend -d {} (empty body) to get real 401 (paired with #367). BẤT-NGỜ: 411 ≠ unhealthy, it's Content-Length-Required pre-auth. [cao] → substring:"Run #376 (run_number 262) sha=ca4b602"

Earlier P11 / Office / Holiday (S42-S52, dates 05-28→06-08)

  • VIỆC M3M5M11: S50 HMW-Wave2 P11-C Vehicle+Driver (Mig 44/45). KẾT-LUẬN: PASS commit 30a99aa; saw a mid-deploy transient bundle hash (CVbyotwa) before the final one settled. BÀI-HỌC M3: gotcha #41 Discovery#3 — Gitea evaluates push RANGE; ≥1 non-ignored file ⟹ whole range builds (mixed docs+tsx NOT skipped). M5: gotcha #57 — soft-delete UNIQUE index MUST filter WHERE [IsDeleted]=0 (Mig 44/45 filtered-unique). M11 anti-pattern timing: NEVER trust bundle hash until status=success — mid-deploy shows a transient 3rd hash (#371 transient CVbyotwa, #378); always re-confirm hash AFTER status=success + stable 2nd-fetch (anti#3). BẤT-NGỜ: 3rd transient hash exists only during the deploy window. [cao] → substring:"Run #371 (run_number 257) sha=30a99aa"
  • VIỆC: S48 FE-only login subtitle a11y (350b2bf); S45 Mig 43 filter Holiday UNIQUE (0c5a014); S42 P11-B LeaveBalance (82d7fcf); S42 P11-A workflow-picker 2-bug + SetWorkflow (75df04e). KẾT-LUẬN: all PASS. BÀI-HỌC: Holiday filtered-unique = same #57 family; FE-only login = bundle-rotate-only. BẤT-NGỜ: none. [vừa] → substring:"Run #368 (run_number 254) sha=0c5a014"
  • VIỆC M22: S42 P11-A wire ApproveV2 + LevelOpinions. KẾT-LUẬN: PASS commit e7b66cd. BÀI-HỌC: V2 approve wire. BẤT-NGỜ M22: mem-labeled "#250" ≠ real Gitea id — reconcile via run_number (here run_number not in mem label; trust git sha). [vừa] → substring:"Run #364 (mem #250) sha=e7b66cd"
  • VIỆC: S38 SKELETON 5-plan combo (Mig 39+40 dual). KẾT-LUẬN: PASS commit e54a22d. BÀI-HỌC: dual-migration single deploy. BẤT-NGỜ: none. [thấp] → substring:"Run #247 sha=e54a22d"
  • VIỆC M4: ⚠️ VỊ-TRÍ-LẠC entry (FIFO slot between #384/#382; carries #383 dual-role menu detail). KẾT-LUẬN: note. BÀI-HỌC M4: gotcha #44 — dual-role menu-tree /api/menus/me for nv.test (Drafter+CCM must merge both roles' menu keys; #383/#381). BẤT-NGỜ M22: mem run id ≠ real Gitea — this entry was mis-placed in FIFO. [vừa] → substring:"VỊ TRÍ LẠC — entry MỚI 2026-06-11"
  • VIỆC: S37 Proposal Mig 37+38 (/api/proposals 200 + QT-DX-V2-001 AppType=4). KẾT-LUẬN: PASS [archived]. BÀI-HỌC: AppType=4 seed reach prod. BẤT-NGỜ: none. [thấp] → substring:"Archived Run #246 (S37 Proposal Mig 37+38"
  • VIỆC M2: S29 gotcha #51 catch. KẾT-LUẬN: PASS [archived]. BÀI-HỌC M2: gotcha #51 — INFRASTRUCTURE seed (SampleWorkflowsV2) must NOT be nested in if(!demoSeedDisabled); symptom = empty V2 dropdown; hoist fix. BẤT-NGỜ: demo-flag silently gated an infra seed. [cao] → substring:"Archived Run #232 (S29 gotcha #51 catch"

Curated-down from L1 this session (S68-S78, dates 06-16/06-17) — the 10 moved records

  • VIỆC M19: CROSS-STACK PE HoSoLink (Mig 52) + FE-User Hồ-sơ-NS 3-panel + rename Dự-trù→Ngân-sách. KẾT-LUẬN: PASS commit 5a0aaa4; Mig 52 applied (history-top advanced 51→52), sys.columns HoSoLink present, no-new-table 88; bundle BOTH rotate BDwV5d0X/DXkyUjtQ. BÀI-HỌC M19: bundle-hash lineage load-bearing (admin un-froze); nullable-AddColumn cross-stack verify = history-top advance + sys.tables-unchanged + Detail-DTO field-presence via authed GET on REAL phiếu. BẤT-NGỜ: hoSoLink:null for old rows proves DTO-wiring AND backward-compat. [cao] → substring:"Run #293 (run_number 293, id407) sha=5a0aaa4"
  • VIỆC M13: FE-User Hồ-sơ-NS 2-col layout. KẾT-LUẬN: PASS commit 456c7a7; asymmetric user-rotate DbVv6rsf / admin frozen; no-mig stays Mig52. BÀI-HỌC M13: 3rd-consecutive same-page FE-user — re-rotate same page each deploy = NORMAL, sibling-frozen-when-untouched. BẤT-NGỜ: tokens-present this run (vs empty other runs) — both auth paths work. [cao] → substring:"Run #295 (run_number 295, id409) sha=456c7a7"
  • VIỆC M13: FE-User Hồ-sơ-NS cosmetic brand800. KẾT-LUẬN: PASS commit ab4e681; asymmetric user-rotate BumgrwCJ / admin frozen. BÀI-HỌC: health = /health/ready+/health/live (200×2), NOT /health (404 ≠ unhealthy — cross-check skill before flag). BẤT-NGỜ: /health literal is wrong-path. [cao] → substring:"Run #297 (run_number 297, id411) sha=ab4e681"
  • VIỆC M13: FE-Admin MIRROR Hồ-sơ-NS from fe-user (asymmetric NGƯỢC). KẾT-LUẬN: PASS commit 292d64d; admin ROTATE xkSz9BfE / user FROZEN (direction flips vs prior deploy). BÀI-HỌC M13: deploy-2 same-session asymmetric-NGƯỢC = verify prior deploy NOT cancelled + this-app-rotate/other-frozen; admin un-froze from multi-session frozen-streak = EXPECTED. BẤT-NGỜ: poll-parser bug — tr,|grep -A on JSON misanchors → re-query with python3; parser-bug ≠ run-stuck. [cao] → substring:"Run #298 (run_number 298, id412) sha=292d64d"
  • VIỆC M12: TESTS-ONLY BE +23 test (→286). KẾT-LUẬN: PASS commit bcd619d; bundle BOTH FROZEN xkSz9BfE/BumgrwCJ; CI test-gate runs both projects BEFORE build ⟹ status=success ⟹ 23 new passed (286 INFERRED not log-count). BÀI-HỌC M12: BE-only ⟹ both bundles MUST stay frozen (rotate=anomaly); ship-proof=test-count not bundle. BẤT-NGỜ: python3 BROKEN on box (ZKBioTime embed SRE-module-mismatch) → use PowerShell Invoke-RestMethod. [cao] → substring:"Run #299 (id413) sha=bcd619d"
  • VIỆC: FE-both-app PE Link-hồ-sơ file:// render upgrade (keep Copy fallback). KẾT-LUẬN: PASS commit 536dd6b; bundle BOTH rotate CcrZqfht/DniDFUB_; tables88. BÀI-HỌC: pure-FE-both-app = both rotate; file:// browsers may block from https-origin (hence Copy fallback) — not curl-verifiable. BẤT-NGỜ: none. [vừa] → substring:"Run #302 (run_number 302, id416) sha=536dd6b"
  • VIỆC: FE-both-app Hồ-sơ-NS banner text-polish. KẾT-LUẬN: PASS commit 6983609; bundle BOTH rotate D532XZKG/CuFaBoWt. BÀI-HỌC M3: docs-files in same push-range as .tsx do NOT suppress build (range any-non-ignored ⟹ build — Discovery#3 corollary). BẤT-NGỜ: none. [cao] → substring:"Run #303 sha=6983609 PASS"
  • VIỆC M13: FE-both-app 1-line CSS-precedence fix (name text-whitetext-white!). KẾT-LUẬN: PASS commit 37752eb; bundle BOTH rotate CNUv1jxY/CpOskeS1; tables88. BÀI-HỌC: even 1-line both-app change → new content-hash both; Tailwind-v4 @layer precedence (unlayered h2 beat text-white). BẤT-NGỜ: SHA256-identical-between-2-apps is a SOURCE claim (git), not runtime DOM-equality. [cao] → substring:"Run #304 (run_number 304, id418) sha=37752eb"
  • VIỆC: S69 FE-both-app Văn-phòng-số foundation + index.css sync + BE menu-seed Off_Dashboard (NO-EF-mig). KẾT-LUẬN: PASS commit a8bbdae; bundle BOTH rotate Bl2o_kUq/BImrKQNn; no-mig top stays Mig52 (menu-seed = DbInitializer runtime row-insert NOT migration); menu-seed verified via MenuItems SELECT; office-hidden = perm row only-Admin 1/13. BÀI-HỌC: prod CI bundle-hash ≠ local-build-hash is NORMAL (CI rebuild) — FAIL only if NOT-rotated-from-baseline. BẤT-NGỜ: sqlcmd string-literal doubled ''x'' BREAKS in PS → build via [char]39 concat. [cao] → substring:"Run #305 (run_number 305, id419) sha=a8bbdae"
  • VIỆC: S70 FE-only re-skin Văn-phòng-số 10-page PURO. KẾT-LUẬN: PASS commit c556f6c; bundle BOTH rotate Wt54PHYl/B99fMU6X; office-API live (proposals/it-tickets/meeting-rooms/employees 200); office-hidden confirmed Off_Dashboard admin-only / Drafter CanRead=0. BÀI-HỌC: CanRead=0 perm-ROWS exist but ≠ access (menu gates on CanRead=1) — must filter CanRead=1, existence≠access; office-hidden is AMBIENT (FE-only can't touch Permissions seed). BẤT-NGỜ: /api/workflow-apps→404 = wrong-route-guess NOT regression (FE-only can't change BE routing). [cao] → substring:"Run #306 (run_number 306, id420) sha=c556f6c"