|
|
81b59f0389
|
[CLAUDE] Workflow: adopt presence-not-age selector guardrail + rec-3 hmw.js STOP-HARD (S115)
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m23s
Adopt AI_INFRA 2026-07-13 broadcast ab6c387e (presence-not-age selector,
type=update) + directed 6c32df89 rec-3, via /fable-clone 5-lane reviewer
ensemble (wf_b621aac4-f0b) -> spec -> /fable-real deep-pass (PASS-WITH-FIXES,
M1+M2 applied) -> HMW execute (em-main solo; governance single-writer D9).
D2 (hmw.js): unknown-role fail-soft-WARN -> up-front STOP-HARD throw (before
parallel; preserves null/'' role-less inherit-lead path). node --check + stub
7/7. Doc-sync 5 live lines (ultra-on/README/harness-11-engine/runbook).
D3 (memory-archive-gate.ps1): value_protect advisory-flag -> pre-selection
HARD-SKIP (value-primary; heading-only spans; non-contiguous byte accum) +
value-floor WARN. Fault-inject ALL PASS + real regression A7 242/242. DRY-RUN.
D1 (reinject-ledger.md): presence re-verify stamp + 3 honest-notes + BUILD-GAP.
Re-verify: reinject (i) + MFE age-band (iii) already COMPLIANT; only the
archive-gate age-trace needed hardening. D3 = defense-in-depth codify, NOT
leak-closure (9-token grep unchanged; em-main value-scan stays the guarantee).
adap-report + email AI_INFRA (8b9dc5165d5a); inbox STAGE-2 processed. No new
User-Mark (codify-only). #53 garble x1 (lane-4) recovered from disk, 0 loss.
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-13 12:25:24 +07:00 |
|
|
|
de3536d47e
|
wal: flush 20260713T0950
|
2026-07-13 09:50:21 +07:00 |
|
|
|
66bd127cd3
|
wal: flush 20260712T2347
|
2026-07-12 23:47:05 +07:00 |
|
|
|
16a199f031
|
[CLAUDE] Docs: S114 PE multi-NCC per hạng mục closeout (STATUS/HANDOFF/gotcha #81/Mig 65/session-log)
Closeout feature multi-NCC per hạng mục (ship d436af2):
- STATUS/HANDOFF: S114 blurb + CURRENT STATE canonical Mig 64→65 · test 477→486 · gotcha 80→81 · bundle D51OYyGV/BVdssm5S.
- gotcha #81: derived-invariant re-derive sót DELETE writer (DeleteQuote/DeleteDetail) → IsWinner kẹt stale → HĐ giaTri=0 phantom (Bước 4 fable-clone verify bắt; fix helper PeWinnerInvariant test-before).
- ef-core skill: +Mig 65 BackfillPeQuoteIsSelectedAndWinnerInvariant row.
- session log 2026-07-12-S114 + 2 reviewer diary harvest (verify run) + run-trace fold.
- cicd on-behalf record (garble #53 ×5 → em-main-solo deploy verify).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-12 23:45:08 +07:00 |
|
|
|
d436af2971
|
[CLAUDE] PurchaseEvaluation: multi-NCC per hạng mục — chọn ≥2 NCC-TP trúng thầu/1 hạng mục (mỗi nhà 1 giá riêng)
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m17s
Đổi winner-truth từ whole-supplier Supplier.IsWinner (Mig 58 liên-danh) sang per-hạng-mục
Quote.IsSelected (Mig 12 dormant hook → nay nguồn-sự-thật); Supplier.IsWinner = DERIVED (== Any IsSelected).
Anh Kiệt LOCKED D1=SUM(IsSelected) · D2=THAY-THẾ · D3=giá-chào-gốc · D4=1HĐ/NCC. 0 bảng/cột mới.
BE:
- SelectWinnerCommand + POST /select-winner: body {supplierIds} → {detailId, supplierIds} (per hạng mục).
- Re-key 5 financial-SUM → WHERE IsSelected: winnerQuoteTotal, submit-guard, CCM-threshold, giaTri, budget-B.
- giaTri bỏ shortcut isSingle→detailsSum (single đổi budget→bid theo D4).
- Derive IsWinner invariant ở MỌI writer: SelectWinner + UpsertQuote + seed + DeleteQuote/DeleteDetail (helper PeWinnerInvariant, fix Bước 4).
- GIỮ IsWinner-derived cho winner-names/existence + CreateContract winners-list.
- Migration BackfillPeQuoteIsSelectedAndWinnerInvariant (data-only 2-chiều IsWinner↔IsSelected, Down no-op).
FE 2-app (PeDetailTabs SHA-identical): HangMucCard per-cell winner grid Detail×NCC + toggle per-detail; NccSelectorRow hạ-cấp read-only summary; giữ derived display.
Test: 7 file update + 8 test mới (per-hạng-mục total, giaTri single-partial, threshold-crossing, derive-invariant, delete-path). 486 PASS.
Flow: fable-clone invest ensemble → anh Kiệt 4-decision → fable-clone review ensemble (6 adjustment) → hmw implement (disk-recover #53) → fable-clone verify (bắt MUST bug delete-path → fix test-before).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-12 22:22:09 +07:00 |
|
|
|
8a1b0d4901
|
wal: flush 20260712T2156
|
2026-07-12 21:56:29 +07:00 |
|
|
|
44ba05e5cf
|
wal: flush 20260712T2132
|
2026-07-12 21:32:24 +07:00 |
|
|
|
53e8d1689d
|
wal: flush 20260712T2114
|
2026-07-12 21:14:52 +07:00 |
|
|
|
e05763f46c
|
wal: flush 20260712T2045
|
2026-07-12 20:45:57 +07:00 |
|
|
|
c20fa5f3a0
|
wal: flush 20260712T2026
|
2026-07-12 20:26:38 +07:00 |
|
|
|
aa655cb412
|
wal: flush 20260712T2009
|
2026-07-12 20:09:13 +07:00 |
|
|
|
a3e9e14219
|
wal: flush 20260712T1939
|
2026-07-12 19:39:33 +07:00 |
|
|
|
8304d081f3
|
wal: flush 20260712T1926
|
2026-07-12 19:26:19 +07:00 |
|
|
|
ccdcbe79f0
|
[CLAUDE] Docs: S113 closeout — Supplier import v2 SHIP prod (Run #497) + Mig 64/477 test/gotcha #80
- STATUS/HANDOFF: S113 mega-line + state (Mig 63->64, test 458->477, gotcha 79->80, prod 22->37 NCC, bundle acprMqfB/Ck3BTDdA Run #497)
- gotcha #80: ! null-forgiving tren external-parsed data -> NRE an (build 0/0 khong bat; chi test-before-critical bat)
- ef-core skill: Mig 64 row + pointer-flush (session-start H1 drift, kill recurring latest-Mig class)
- session log 2026-07-12-S113-supplier-import-v2.md
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-12 19:24:49 +07:00 |
|
|
|
0efc22364b
|
wal: flush 20260712T1905
|
2026-07-12 19:05:05 +07:00 |
|
|
|
5fa11b588a
|
[CLAUDE] Supplier: import v2 — Mig 64 publish/draft + dedup-MST + template + file mẫu
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m14s
- Mig 64 AddSupplierPublishState: +IsPublic (draft/public); backfill 22 prod->public; filtered-unique doi [Code]<>'' (cho phep nhieu nhap Code=''); no new table (89).
- Import v2: dedup MST-primary + Code-backstop (chong 500 unique-violation); re-bake 30 token header THAT byte-exact (LayoutValid khop file that); nhap Ma NCC per-row (=Code); thieu Ma NCC->nhap (IsPublic=false); MST thieu->canh bao mem (MstMissing).
- PublishSupplierCommand rieng (ne #73 clobber); GET /suppliers/import/template (BE-gen xlsx 30-col).
- FE 2-app SHA-mirror: badge Public/Nhap; nut Cong bo; filter; nut Tai file mau; cot Ma editable; canh bao MST. Picker PE + tao HD loc published=true (an nhap -> ma HD khong dinh Code rong). CreateSupplier set IsPublic=true.
- authz D3: import/preview/confirm/template/publish = Policy Suppliers.Update (khop FE PermissionGuard, het 403).
- Tests +19 (477 PASS): dedup T1-T7, publish-guard, list-filter, all-or-nothing, LayoutValid. Fix null-Code NRE (path R4 loi).
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
|
2026-07-12 19:03:37 +07:00 |
|
|
|
41f29acf68
|
wal: flush 20260712T1900
|
2026-07-12 19:00:31 +07:00 |
|
|
|
d53145cb27
|
wal: flush 20260712T1845
|
2026-07-12 18:45:36 +07:00 |
|
|
|
58f1c5fdbc
|
wal: flush 20260712T1824
|
2026-07-12 18:24:13 +07:00 |
|
|
|
461be04bc4
|
wal: flush 20260712T1812
|
2026-07-12 18:12:03 +07:00 |
|
|
|
b5bc030e6b
|
wal: flush 20260712T1757
|
2026-07-12 17:57:45 +07:00 |
|
|
|
b942e52226
|
wal: flush 20260712T1732
|
2026-07-12 17:32:50 +07:00 |
|
|
|
2b54293679
|
wal: flush 20260712T1711
|
2026-07-12 17:11:07 +07:00 |
|
|
|
8fa2fcccb2
|
[CLAUDE] Docs: S112 session-end — Tests canonical 440→458 + In-Progress S112 + bundle live-pointer hoist #496 (Cixlt_MA/BhBOG1dn) + measured 21K→55K reconcile [H1 flags] + investigator-codebase fable-clone harvest + close-review run.md synthesis [H2 gate]
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-12 16:51:21 +07:00 |
|
|
|
f8376cfcf4
|
wal: flush 20260712T1646
|
2026-07-12 16:46:06 +07:00 |
|
|
|
58b20ea441
|
wal: flush 20260712T1634
|
2026-07-12 16:34:04 +07:00 |
|
|
|
0d912ad184
|
[CLAUDE] Docs: S112 closeout — Supplier-import + PE-signoff SHIP prod (Run #496 PASS) + harness_floor 30K→100K/measured→55K + 3 fable-clone run-trace + 12-agent diary harvest + session log
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-12 16:32:37 +07:00 |
|
|
|
8cd2d82ded
|
wal: flush 20260712T1626
|
2026-07-12 16:26:03 +07:00 |
|
|
|
be9476da6d
|
wal: flush 20260712T1615
|
2026-07-12 16:15:44 +07:00 |
|
|
|
e100ef065b
|
[CLAUDE] Supplier: Excel-import Phase B (upload NCC preview/confirm) + Mig 63
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m25s
Import Excel 'Database NCC': upload→preview classify (New/Update/Skip/Error)→confirm all-or-nothing upsert-by-Code (OrdinalIgnoreCase dedup, fill-nulls-safe). Mig 63 +SourceUpdatedAt/By (2 nullable). Parser layout-locked header-fingerprint NFC-normalized + absolute-cell-index + #REF!-null + NAS-backslash-raw. Type-lạ→NhaCungCap. FE dialog fe-admin+fe-user byte-identical. 10 test SupplierExcelImportServiceTests.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-12 16:13:46 +07:00 |
|
|
|
a829d0df99
|
[CLAUDE] PurchaseEvaluation: A1 người-tạo ký ô cấp mình + EDGE-5 khóa terminal + opinion-history
A1: ApplyDrafterBypassOnSubmitAsync bypass CHỈ NV cấp dưới creator (order<minOwn), creator ký tay ô mình qua ApproveV2Async (bỏ auto-ký-hộ), giữ skip-NV S60. EDGE-5: guard đầu TransitionAsync chặn non-admin transition từ DaDuyet/TuChoi (admin+system exempt). History: log ý-kiến cũ→PurchaseEvaluationChangelog trước ghi đè (no migration). Tests: 4 bypass→A1 + 8 mới (happy/non-contiguous/EDGE-5/history), 458 PASS. UAT: phiếu 1-bước creator-là-cấp-cuối nay cần bấm Duyệt (bỏ auto-terminal-on-submit, đúng bám-quy-trình).
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-12 16:13:46 +07:00 |
|
|
|
0352b44811
|
wal: flush 20260712T1557
|
2026-07-12 15:57:58 +07:00 |
|
|
|
cf15a97a41
|
wal: flush 20260712T1555
|
2026-07-12 15:55:29 +07:00 |
|
|
|
4c05431ceb
|
wal: flush 20260712T1528
|
2026-07-12 15:28:41 +07:00 |
|
|
|
e766c88bd7
|
wal: flush 20260712T1507
|
2026-07-12 15:07:51 +07:00 |
|
|
|
2121a69fe1
|
wal: flush 20260712T1504
|
2026-07-12 15:04:01 +07:00 |
|
|
|
d19ea13ae1
|
wal: flush 20260712T1454
|
2026-07-12 14:54:18 +07:00 |
|
|
|
d95bb0e210
|
wal: flush 20260712T1442
|
2026-07-12 14:42:00 +07:00 |
|
|
|
264ca2e8fe
|
wal: flush 20260712T1435
|
2026-07-12 14:35:10 +07:00 |
|
|
|
06e846ad73
|
wal: flush 20260712T1423
|
2026-07-12 14:23:36 +07:00 |
|
|
|
d1709040f8
|
wal: flush 20260712T1419
|
2026-07-12 14:19:19 +07:00 |
|
|
|
a57cb1dec4
|
wal: flush 20260712T1357
|
2026-07-12 13:57:40 +07:00 |
|
|
|
adc1ba660e
|
wal: flush 20260712T1350
|
2026-07-12 13:50:19 +07:00 |
|
|
|
cf11faf1ec
|
wal: flush 20260712T1338
|
2026-07-12 13:38:40 +07:00 |
|
|
|
286450f67b
|
wal: flush 20260712T1324
|
2026-07-12 13:24:03 +07:00 |
|
|
|
460a440326
|
wal: flush 20260712T1315
|
2026-07-12 13:15:28 +07:00 |
|
|
|
ec81c5cf18
|
wal: flush 20260712T1201
|
2026-07-12 12:01:47 +07:00 |
|
|
|
e9afe77fd6
|
[CLAUDE] Docs: S111 closeout — mega-line STATUS/HANDOFF (H22 WAL adopted: hook VERIFIED-RUNTIME ×2 hot-reload ENV-DEP, mark AH-6 RC-…11-43-45, D10 AS-6-taxonomy-đổi #495, squash §5.0 dogfood K=2) + session log + architecture B1-pointer paths-ignore (H1 FLAG-A) + monitor diary @end ×3 (H1 CHỐT-1-LOW-fixed · H2 GATE-PASS-5/5-0/16-orphan · cicd #495-PASS-FROZEN×6 tự-curate) + WAL flush
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-12 12:00:13 +07:00 |
|
|
|
8aa3869637
|
[CLAUDE] Docs: S111 adopt H22 WAL session-continuity — sổ WAL ≤40 + Stop-hook wal-flush.ps1 persist-only VERIFIED-RUNTIME ×2 (12071c5/67be443 hot-reload ENV-DEPENDENT) + /pause·/tiep 1-đường + BƯỚC 0.7/§5.0/§6.4 + FLIP run-trace ≥3-task + engine PHẦN N + detector C5 + mark RC-…12-07-2026-11-43-45 + D10 paths-ignore anh-directed + email 9cdcda2f3c83 (invest/reviewer Fable per-invocation 0-garble · WF wf_5ba3daf6-fe0 3-Opus RUN-TRACE · reviewer PASS_WITH_FIXES 8/8-fix · squash §5.0 dogfood-THẬT K=2)
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m11s
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-12 11:45:14 +07:00 |
|
|
|
318a271930
|
[CLAUDE] Docs: S111 session-start — 2 monitor RE-REPORT (H1 PASS_WITH_FLAGS · H2 ALL-CLEAN) + diary self-compact ×2 md5-verified + STATUS:39 mark-proposal stale-flip (đã stamped S110)
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
|
2026-07-12 10:37:28 +07:00 |
|