[CLAUDE] Docs: S152 closeout — bookend hình B trọn 2 đầu + owner (30)(31)(32) + queue memory-ops TRỌN (squash 20 wal:)
All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 5m30s

- Owner 3-quyết: (30) JUMP để-nguyên-theo-nhịp · (31) 4 persona +NEVER-block (restart ĐÃ THOẢ) · (32) vòng 1→5 AUTO — lô consent gỡ 9 site (5 H1 + ring1-tự-bắt + 3 trio; E-013 EXT)
- Memory-ops TRỌN: A1-A4/D1/D2/R1/B-series — A7 392/392 · mfe 20/20-100% lần đầu · lead-gap drain 24.728→16.485B · strike-ledger + WARN-latch (-Ack = owner-action)
- V4 sleep AUTO đầu: 1 shard thật/16 KÊU · ring4 đầu-đời TRƯỢT-4/5 → 4 fix gist (scribe sub-ring4-close vì return-only)
- Thư model re-stamp: 59ce1d0f → 9c909007 published (G-024a) — adap-report Đính-chính @S152 + sweep 13 bề-mặt LIVE
- Bookend @close: stale 6 FLAG + gap 2 FLAG → vá 8/8; ring2 8/8 ĐẠT (4-A pin-bản-cắt → slot 33) · ring1 48Đ/5T/59-claim
- M9 13 đơn-vị diary (3 S151-deep hồi-tố) · #53 ×10-chắc → tally 60-cận-dưới + errata subject-1b85713
- Session-log 2 run= + completeness-gate 5-vòng ĐẠT · HANDOFF segment S152 (carry 3-đóng/3-mới/23-giữ; slot 33/34)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
pqhuy1987
2026-07-26 01:58:30 +07:00
parent 1b85713bb6
commit c2d01f0dce
96 changed files with 4334 additions and 199 deletions

View File

@ -95,3 +95,7 @@ Dynamic class purged. PALETTE array full literal `as const` cycle `index % lengt
## 🔄 Curate trigger
Size > ~30KB → archive to L2 (tiered v1). Commit scope (em main commits): `FE-Admin` · `FE-User`.
## S152 (2026-07-25) — R1 retention-note 2 ranh auto-refuse [M9 on-behalf lead — queue memory-ops]
- **(a) Việc < 30 min / trivial:** fix 1-dòng CSS / label-polish (lớp Run #303/#304-era) = em-main solo nhanh hơn spawn-cost mình REFUSE nhận đúng role-file; nhận việc trivial = đốt spawn ích.
- **(b) KHÔNG hạ chuẩn "lower bar" kiểu Smart-Friend nể-nang:** bị giục "làm nhanh" vẫn giữ sàn mirror-SHA ×2-app + npm build ×2 PASS; thiếu 1 trong 2 = trả lại chứ không ship. Tag `[s152, r1-retention, auto-refuse-trivial-30min, no-lower-bar-smart-friend]`

View File

@ -53,3 +53,24 @@
- **R3 [cao] #53 = failure-mode cố hữu của slice-lớn-mirror-1-spawn:** ×2 liên tiếp (S57bis truncated giữa mirror; S65 died-empty fan-out); work thường ĐÃ land disk → recovery đọc disk + em-main self-gate quét sót; mitigation per-app stage. → substring:"died-empty #53" · → substring:"mirror-2-app-trong-1-spawn"
- **R4 [vừa] Vòng đời divergence 2 app:** admin-only hợp lệ nhưng thường bị kéo CONVERGE khi user-side cần (S52/S53→S54 reassign; S78 focus-mode tình cờ trùng) → thiết kế để converge rẻ: BE capability-flag; mirror luôn PRESERVE props phía đích. → substring:"converge lại sau intentional divergence" · → substring:"Tình cờ trùng fe-user"
- **R5 [vừa] Wiring delta ngoài Pattern 16-bis:** menu-only = 2/4-place; menuKey mirror BE string + đúng THỨ TỰ BE; route prefix mới (`/office/`) hợp lệ cạnh flat routes; types/menu.ts key:string → không mirror union; leaf perm admin auto BE All[]. → substring:"gotcha#50" · → substring:"key:string NOT typed-union"
## CỤM BỔ SUNG [coverage-diff @S152 D2 — máy-trích nguyên-văn + lead-review; KHÔNG phải re-distill, distill-gen giữ]
> Token load-bearing có trong verbatim `2026-H1.md` mà gist thiếu — mỗi dòng = token + TRÍCH NGUYÊN-VĂN dòng chứa nó (Ctrl-F token trong verbatim để đọc trọn). Chuẩn gate: gotcha#/Mig/file-ref/guard phải sống trong gist.
- gotcha **#70** · trích: "- **E2 #70 stale-echo guard:** 2 ô PRO `adjustMut` (row3 NS-kỳ-này :1548 + row8 GT-còn-lại :1649) chỉ `saving={adjustMut.isPending}``|| peFetching`"
- Mig **Mig 60** · trích: "PROD LIVE. Đối xứng fix endsBeforeCeo (Mig 60). EDIT1 mở rộng `PeFinalizeChip.tsx` (2 app) + EDIT2 wire `phase={p.phase}` ở 6 call-site."
- file-ref **App.tsx** · trích: "(C) **4-place ×2 app:** page(mirror) + App.tsx import+`<Route path='/office/dashboard'>` (NEW `/office/` prefix convention — page file ở pages/office"
- file-ref **DepartmentsPage.tsx** · trích: "rtmentInput auto-inherit via Omit · (2) DepartmentsPage.tsx: import Select + FormState/emptyForm +`parentId:string` ('' khi rỗng) + load-all query `['"
- file-ref **ItTicketsPage.tsx** · trích: "All[]→admin auto. **Task C reassign:** ItTicketsPage.tsx top-comment updated DIVERGES fe-user. Per-card Pencil button (cạnh 👤 assignee) → Dialog (siz"
- file-ref **Layout.tsx** · trích: "string exact, after OffChamCong) · (2) Layout.tsx staticMap +Off_AttendanceReport:'/attendance/report' (4th place gotcha #50). `types/menu.ts` = Menu"
- file-ref **PeDetailTabs.tsx** · trích: "4 edit `PeDetailTabs.tsx` (SHA-pair) + 2 wording `types/purchaseEvaluation.ts` (DIVERGED — KHÔNG SHA-pair, edit identical 2 file)."
- file-ref **PeFinalizeChip.tsx** · trích: "endsBeforeCeo (Mig 60). EDIT1 mở rộng `PeFinalizeChip.tsx` (2 app) + EDIT2 wire `phase={p.phase}` ở 6 call-site."
- file-ref **PeWorkflowPanel.tsx** · trích: "4 chuỗi-edit `PeWorkflowPanel.tsx` × {admin,user} = 8 hunk. PROD LIVE UAT (anh Kiệt xem trực tiếp). File 2 app byte-identical trước+sau → SHA-pair đún"
- file-ref **PeWorkspaceCreateView.tsx** · trích: "esentation+wiring `PeDetailTabs.tsx` (+`PeWorkspaceCreateView.tsx` typo). BE thêm `note` body song song; FE chốt UX rồi."
- file-ref **ProjectsPage.tsx** · trích: "rojectInput auto-inherit via Omit · (2) ProjectsPage.tsx (single-Dialog CRUD, NO separate pages): FormState +4 `string` (form dùng string, convert on"
- file-ref **PurchaseEvaluationsListPage.tsx** · trích: "- **PurchaseEvaluationsListPage.tsx** STRUCTURAL port: bỏ 3-panel grid → list-state `mx-auto max-w-5xl` panel (4-level tree giữ verbatim) + focus-stat"
- file-ref **SupplierImportDialog.tsx** · trích: "NEW `components/master/SupplierImportDialog.tsx` (folder `master/` MỚI cả 2 app) + wire `pages/master/SuppliersPage.tsx` (nút 'Import Excel NCC' outli"
- file-ref **SuppliersPage.tsx** · trích: "er/` MỚI cả 2 app) + wire `pages/master/SuppliersPage.tsx` (nút 'Import Excel NCC' outline cạnh 'Thêm NCC' trong PageHeader actions flex + render dial"
- file-ref **menuKeys.ts** · trích: "2 prior). Only 2 of 4-place needed: (1) menuKeys.ts +OffAttendanceReport='Off_AttendanceReport' (mirror BE string exact, after OffChamCong) · (2) Layo"
- file-ref **realtime.ts** · trích: "ting warn: @import CSS-order + >500KB + realtime.ts dynamic. NO BE touch. Full precedent. Tag `[supplier-import-excel, multipart-preview-confirm, enum"

View File

@ -0,0 +1,49 @@
# _INDEX — implementer-frontend archive (map, dựng @S152 A2)
> Con-trỏ substring — mở file archive tương-ứng rồi Ctrl-F chuỗi trong substring:"...". KHÔNG line-hint (additive append dịch dòng).
> Dựng @S152 theo queue memory-ops (refine S151 A2); mọi substring verify count==1 lúc ghi.
- 2026-H1.md · 🆕 2026-07-12 — Supplier import Excel FE (Phase B Approach A) ×2 app byte-identical (lead chốt UX; BE · substring:"🆕 2026-07-12 — Supplier import Excel FE (Phase B Approach A) ×2 app by"
- 2026-H1.md · 🆕 S97-badge (2026-07-01) — PE chip '✅ Đã được CEO duyệt' khi phiếu ĐÃ DUYỆT đi hết lên CEO (anh Kiệt · substring:"khi phiếu ĐÃ DUYỆT đi hết lên CEO (anh Kiệt FDC UAT, em-main chốt)"
- 2026-H1.md · 🆕 S97-Part2 (2026-07-01) — FE gate endsBeforeCeo runtime (hook 1-dòng, on-behalf H2-proposed @S98) · substring:"🆕 S97-Part2 (2026-07-01) — FE gate endsBeforeCeo runtime (hook 1-dòng,"
- 2026-H1.md · 🆕 S97 (2026-07-01) — PE finalize wording + đảo default checkbox opt-out→opt-in ×2 app (anh Kiệt FDC · substring:"🆕 S97 (2026-07-01) — PE finalize wording + đảo default checkbox opt-ou"
- 2026-H1.md · 🆕 S88 D2 (2026-06-25) — PE multi-winner OUTWARD FE ×2 app (BE đã đổi: create→LIST, list DTO winner n · substring:"🆕 S88 D2 (2026-06-25) — PE multi-winner OUTWARD FE ×2 app (BE đã đổi:"
- 2026-H1.md · 🆕 S87+ (2026-06-25) — FROZEN PE behavior-preserving cleanup ×2 app (em-main chốt, coord BE null-safe · substring:"🆕 S87+ (2026-06-25) — FROZEN PE behavior-preserving cleanup ×2 app (em"
- 2026-H1.md · S79 (2026-06-19) — PE detail: live thousand-sep + ghi chú giá PRO/CCM + typo (×2 app) · substring:"S79 (2026-06-19) — PE detail: live thousand-sep + ghi chú giá PRO/CCM"
- 2026-H1.md · S78 (2026-06-19) — PE 'focus mode' redesign mirror fe-user→fe-admin (CONVERGE, em-main chốt UX) · substring:"redesign mirror fe-user→fe-admin (CONVERGE, em-main chốt UX)"
- 2026-H1.md · S76 (2026-06-19) — PE budget MA TRẬN 3 cột + bảng lưới `<table>` + badge quyền NS (anh Kiệt FDC) · substring:"S76 (2026-06-19) — PE budget MA TRẬN 3 cột + bảng lưới `<table>` + bad"
- 2026-H1.md · Recent activity FIFO (pre-2026-06-17, archived verbatim) · substring:"Recent activity FIFO (pre-2026-06-17, archived verbatim)"
- 2026-H1.md · BE contract (Read-only DTO · substring:"- **BE contract (Read-only DTO"
- 2026-H1.md · Mirror lesson (tái xác nhận S97-badge · substring:"- **Mirror lesson (tái xác nhận S97-badge"
- 2026-H1.md · SHA256 ×2 pair: · substring:"- **SHA256 ×2 pair:** SupplierImportDialog `6313529c…`, SuppliersPage `e9143d93…`. Build PASS ×"
- 2026-H1.md · EDIT1 component: · substring:"- **EDIT1 component:"
- 2026-H1.md · ⚠️ GOTCHA TYPE (đã trải · substring:"- **⚠️ GOTCHA TYPE (đã trải"
- 2026-H1.md · EDIT2 6 site (grep `PeFinalizeChip endsBeforeCeo` = 6, hết · substring:"- **EDIT2 6 site (grep `PeFinalizeChip endsBeforeCeo` = 6, hết"
- 2026-H1.md · E1 default checkbox: · substring:"- **E1 default checkbox:"
- 2026-H1.md · E2 reset onSuccess: · substring:"- **E2 reset onSuccess:"
- 2026-H1.md · E3 helper text ternary · substring:"- **E3 helper text ternary"
- 2026-H1.md · E4a title · substring:"- **E4a title"
- 2026-H1.md · GOTCHA 'không trình tới' 2 chỗ: · substring:"- **E4a title** (~:329): static string → template literal `` `Quy trình kết thúc tại ${fin"
- 2026-H1.md · SHA256 IDENTICAL ×2 = `bcf812fd…` · substring:"- **SHA256 IDENTICAL ×2 = `bcf812fd…`"
- 2026-H1.md · E1 CreateContractDialog (PeDetailTabs ~:2144 · substring:"- **E1 CreateContractDialog (PeDetailTabs ~:2144"
- 2026-H1.md · E2 PeListPanel label (~:168 · substring:"- **E2 PeListPanel label (~:168"
- 2026-H1.md · E3 type (DIVERGE 2 file · substring:"- **E3 type (DIVERGE 2 file"
- 2026-H1.md · E1 HoSoLink clear: · substring:"- **E1 HoSoLink clear:"
- 2026-H1.md · E2 #70 stale-echo guard: · substring:"- **E2 #70 stale-echo guard:"
- 2026-H1.md · E3 stale comment :2507: · substring:"- **E3 stale comment :2507:"
- 2026-H1.md · E4 type wording (2 file · substring:"- **E4 type wording (2 file"
- 2026-H1.md · SHA256 PeDetailTabs ×2 = `36292924…` · substring:"- **SHA256 PeDetailTabs ×2 = `36292924…`"
- 2026-H1.md · A live phân cách: · substring:"- **A live phân cách:"
- 2026-H1.md · B ghi chú giá: · substring:"- **B ghi chú giá:"
- 2026-H1.md · Type DIVERGE 2 app · substring:"- **Type DIVERGE 2 app"
- 2026-H1.md · PeWorkflowPanel.tsx · substring:"- **PeWorkflowPanel.tsx"
- 2026-H1.md · PurchaseEvaluationsListPage.tsx · substring:"- **PurchaseEvaluationsListPage.tsx"
- 2026-H1.md · PRESERVE fe-admin props · substring:"- **PRESERVE fe-admin props"
- 2026-H1.md · SHA256 IDENTICAL ×2 pair · substring:"- **SHA256 IDENTICAL ×2 pair"
- 2026-H1.md · Part 1 mirror · substring:"- **Part 1 mirror"
- 2026-H1.md · Part 3 mirror: · substring:"- **Part 3 mirror:"
- 2026-H1.md · Bảng lưới (em-main, anh phản hồi 'chưa chia cột giống Excel' · substring:"- **Bảng lưới (em-main, anh phản hồi"
- 2026-H1.md · cwd-misland: · substring:"- **cwd-misland:"
- 2026-H1.md · 2026-06-16 (Department parentId — cây tổ chức, fe-admin ONLY · substring:"- **2026-06-16 (Department parentId — cây tổ chức, fe-admin ONLY"
- 2026-H1.md · 2026-06-11 (S57bis PE WorkItem FE ×2 app — PARTIAL, on-behalf em main ghi hộ, H2-proposed · substring:"- **2026-06-11 (S57bis PE WorkItem FE ×2 app — PARTIAL, on-behalf em main ghi hộ"
- 2026-H1.md · 2026-06-09 (S55 HMW P2 — Project +4 optional master fields · substring:"- **2026-06-09 (S55 HMW P2 — Project +4 optional master fields"