diff --git a/docs/HANDOFF.md b/docs/HANDOFF.md index d61a0dd..723dd39 100644 --- a/docs/HANDOFF.md +++ b/docs/HANDOFF.md @@ -2,7 +2,7 @@ > **Tiering rule (S40):** giữ **2-3 session gần nhất**. Cũ hơn → `docs/changelog/sessions/`. Full brief history pre-S40 → `docs/_archive/HANDOFF-preS40-fullhistory.md`. -**Last updated:** 2026-06-29 (S93 — **(1) PE node Dự án hiện MÃ thay tên dài (anh Kiệt FDC) prod-verified Run #473** `8ee8f3e`: BE thread ProjectCode (DTO+3 projection+search) + FE 2-app SHA-mirror (render code+tooltip+sort) NO-MIG; grep bắt site#3 thoát replace_all; test 434; bundle admin `CDn40vpV`/user `CoPmPBg7`. **(2) adopt Harness-16 MFE (memory-fidelity-EVAL) 2-workflow PASS `9580098` 0-prod-code:** WF1 `wf_4c63e1bd` (ground-truth + bắt BLOCKING vocab-fork memory-fidelity≠H6.7) + WF2 `wf_13e3d35a` 3-lane PASS (denom-29-re-derived + READ-ONLY-proof + honesty + verb-trap-defeated); `scripts/mfe-eval.ps1` deterministic NO-API (LEAD coverage-FIT 29/220K=1.5% + age-band + Goodhart 21/9 · SUB đo-thật impl-backend 94%/reviewer 88% · prose→N/A) + judge-SCAFFOLD + budget:mfe + eval/mfe/ seed + engine §H + wire-opt-in + email AI_INFRA. AS-10 dogfood (WF1 residual caught+reverted; WF2 0-residual). #53 recover-from-disk. user-MEMORY compact 23.7→7.8KB. **State: Mig 59 · 88 bảng · 434 test · gotcha 76 · menu 54 · bundle admin `CDn40vpV`/user `CoPmPBg7` · prod 17 user/7 NCC.** **🔴 NEXT anh:** ⚠️ restart CLI (MFE opt-in + wire) · UAT eoffice node Dự án mã · (anh Kiệt) nếu ô khoanh là Hạng-mục→báo em đổi work-item-code. **🔴 NEXT em:** monthly **2026-07-01 GẤP** re-tier mega-line (detector D1 OOM do bloat — STATUS 61K/HANDOFF 46K-char KHÔNG Read/Edit) + ef-core Mig→59 + Budget-removed docs + 3 vocab-fork + curate test-spec/FD L1. **Pending product:** Section B cột Dự-án · Ngưỡng giá CEO Mig 54 · "C" chuyển phiếu→dự án. → log `2026-06-29-S93-pe-projectcode-harness16-mfe.md`) · **Prev S92** (S92 — **Ẩn 5 nhóm menu (Hợp đồng + Danh mục + Nhân sự + Văn phòng số + Cá nhân) CHỈ Admin thấy trên eoffice — em-main-led, 1 commit prod-verified `1408d4e`, BE-only no-migration, HMW-mode ON**: anh `/session-start` thấy WIP S92 uncommitted (hôm nay) → chốt "verify + hoàn thiện + deploy". `RevokeTemporarilyHiddenModulesAsync` mở rộng predicate +Contracts/Ct_* +Master/Suppliers/Projects/Departments/Catalog* (cộng dồn S58 Hrm*/Off*/Personal) + TẮT 2 re-grant (S65 HRM + S69 Office) → revoke = bước permission CUỐI ungated trong SeedAdminPermissionsAsync (durable mỗi restart, gotcha #75) + InReviewScope→chỉ Pe_*. PE giữ nguyên (Pe_* không match predicate; master-data GET any-auth). +AdminOnlyModulesRevokeTests 3. Test 431→**434** (45D+389I). seed-order + predicate coverage verified · **reviewer PASS** (5 attack A-E, 15/15 trên 3 class). **FYI:** role CatalogManager (0 user hiện tại) cũng bị thu Danh mục — intended-by-spec, re-enable cần carve-out predicate. **State: Mig 59 · 88 bảng · 434 test (45D+389I) · gotcha 76 · menu 54 · bundle admin `xz8FdmLN`/user `CA8Rla2w` (JS rotate #69, CSS frozen) · prod 17 user/7 NCC.** cicd **Run #358 PASS** prod-verified (sqlcmd: non-Admin 0 leak / Admin 5 giữ / Pe_* 120 untouched; ship-proof = dll-mtime + w3wp-recycle 08:04Z). **🔴 NEXT anh:** UAT eoffice login user non-admin → xác nhận KHÔNG còn thấy Hợp đồng/Danh mục/Nhân sự/VP số/Cá nhân (chỉ Duyệt NCC + Dashboard) · ⚠️ restart CLI (carry budget v3 + `/user-mark-*` + cadence). **🔴 NEXT em:** monthly 2026-07-01 (2 ngày) — **GẤP re-tier STATUS/HANDOFF mega-line** (STATUS line-6 giờ >25K-token KHÔNG Read/Edit được, S92 phải prepend qua PowerShell) + ef-core SKILL Mig→59 + docs/CLAUDE Budget-removed + 3 vocab-fork alias-map. **Pending product (carry):** Section B cột Dự-án wire · Ngưỡng giá CEO Mig 54 Designer UAT · "C" chuyển phiếu→dự án chờ spec. → log `2026-06-29-S92-admin-only-modules.md`) · **Prev S91** (S91 — **buổi go-live LỚN em-main-led, 4 commit prod-verified + backup local** — go-live 26/06 anh Kiệt SOL-IT Phase-01 PRO+CCM. #1 `159b69d` guide Word bỏ "Từ chối" 2 chỗ + fix 12 caption Hinh→Hình [unpack→XML→repack giữ 13 ảnh]. #2 `ba42c59` wipe go-live [16 PE+16 budgets+94 notif+19 NCC demo xóa, giữ 7 NCC thật+17 user+master, PeSeq→A/001, backup+2-guard+AskUserQuestion-scope]. #3 `55494ad` gate SeedDemoMasterData chống resurrect 18 NCC demo mỗi restart [gotcha #75 root-cause, verify demo_codes=0 qua 2 restart]. #4 `e81e87f` user tự đổi mật khẩu [BE ChangePasswordCommand + POST /auth/change-password Identity-verify-pass-cũ + FE 2-app ChangePasswordDialog/TopBar + 10 test; CS0104 ValidationException ambiguous fix]. +backup local `backups/SolutionErp_golive_clean_2026-06-26.bak` 21MB + accounts.txt 17 tk. **State: Mig 59 · 88 bảng · 431 test · gotcha 76 · menu 54 · bundle admin `DgQyuG7f`/user `BmbQon23` · prod 17 user/7 NCC/0 PE-HĐ.** **🔴 NEXT anh:** ⚠️ restart CLI · review guide docx Word · đóng 2 tab eoffice em mở · UAT đổi-mật-khẩu [avatar→Đổi mật khẩu, ≥12 ký tự] + xác nhận NCC demo không sống-lại. **🔴 NEXT em:** curate test-specialist L1 OVER [carry nhiều session] · monthly 2026-07-01 [re-tier mega-line STATUS/HANDOFF bloat · ef-core SKILL Mig→59 · docs/CLAUDE Budget-removed · 3 vocab-fork alias-map]. **Pending product:** Section B cột Dự-án wire · Ngưỡng giá CEO Mig 54 Designer UAT · "C" chuyển phiếu→dự án chờ spec. **Ops:** tzutil VPS = N/A [R6 fix tầng-serialize] · 5 real-staff pw · email typo anh Chương. **Lessons S91:** wipe-không-bền-nếu-không-gate-reseed [#75] · deploy config từ .example KHÔNG file-gitignored [#76] · Chrome-MCP screenshot kẹt SPA document_idle [#74 carry]. → log `2026-06-26-S91-golive-wipe-changepw-backup.md`) · *(session ≤S90 đã tách → `docs/_archive/STATUS-HANDOFF-tier-S94-2026-06-29.md` + `docs/changelog/sessions/`; re-tier S94)* +**Last updated:** 2026-06-29 (S94 — **anh-directive nâng cap lead 220K→380K** (canonical `memory-budget.json` · SE-override lead KHÔNG còn AI_INFRA-parity, subs giữ 60K/50K · mark H-15 v4-delta `RC-pqhuy1987-29-06-2026-23-25-50` · flush 3 echo · MFE live-read 380K) + **re-tier 2 mega-line** (fix Read-25K/call OOM): STATUS 389→89 · HANDOFF 732→12 dòng · 332KB→**34KB −90%** · ≤S90 → `docs/_archive/STATUS-HANDOFF-tier-S94-2026-06-29.md` **0 byte-loss** · detector 27=baseline · `5f61b03` pushed CI-skip. MFE eval-all baseline: LEAD 29-item/380K=0.92% · SUB ≥85% (impl-backend 94%/impl-frontend 85%/reviewer 88%). **Lesson:** trần budget ⟂ harness Read-25K/call = 2 khóa độc-lập (cap-raise KHÔNG unblock mega-line Read → cần re-tier) · mega-LINE=tooling-breaker (ưu-tiên) vs mega-FILE nhiều-dòng=token-cost · re-tier=archive-không-cắt + assert head+tail==orig. em-main solo (0 sub, 0 fan-out). **State GIỮ NGUYÊN: Mig 59 · 88 bảng · 434 test · gotcha 76 · menu 54 · bundle admin `CDn40vpV`/user `CoPmPBg7` · prod 17 user/7 NCC.** **🔴 NEXT anh:** ⚠️ restart CLI (session-start echo 380K + budget v4 runtime; số canonical đã sống ngay) · UAT eoffice node Dự án mã (carry S93). **🔴 NEXT em:** monthly **2026-07-01 (MAI!)** — ef-core SKILL Mig→59 · docs/CLAUDE Budget-removed · 3 vocab-fork alias-map · re-tier `migration-todos.md` (mega-FILE thứ-3, 807 dòng — không gấp, không vỡ tooling) · FD L1 26.1KB WATCH strike-1 (**test-specialist RESOLVED 7.8KB** — bỏ khỏi carry). **Pending product:** Section B cột Dự-án wire · Ngưỡng giá CEO Mig 54 Designer UAT · "C" chuyển phiếu→dự án chờ spec. → log `2026-06-29-S94-cap-380k-retier-megaline.md`) · **Prev S93** (S93 — **(1) PE node Dự án hiện MÃ thay tên dài (anh Kiệt FDC) prod-verified Run #473** `8ee8f3e`: BE thread ProjectCode (DTO+3 projection+search) + FE 2-app SHA-mirror (render code+tooltip+sort) NO-MIG; grep bắt site#3 thoát replace_all; test 434; bundle admin `CDn40vpV`/user `CoPmPBg7`. **(2) adopt Harness-16 MFE (memory-fidelity-EVAL) 2-workflow PASS `9580098` 0-prod-code:** WF1 `wf_4c63e1bd` (ground-truth + bắt BLOCKING vocab-fork memory-fidelity≠H6.7) + WF2 `wf_13e3d35a` 3-lane PASS (denom-29-re-derived + READ-ONLY-proof + honesty + verb-trap-defeated); `scripts/mfe-eval.ps1` deterministic NO-API (LEAD coverage-FIT 29/220K=1.5% + age-band + Goodhart 21/9 · SUB đo-thật impl-backend 94%/reviewer 88% · prose→N/A) + judge-SCAFFOLD + budget:mfe + eval/mfe/ seed + engine §H + wire-opt-in + email AI_INFRA. AS-10 dogfood (WF1 residual caught+reverted; WF2 0-residual). #53 recover-from-disk. user-MEMORY compact 23.7→7.8KB. **State: Mig 59 · 88 bảng · 434 test · gotcha 76 · menu 54 · bundle admin `CDn40vpV`/user `CoPmPBg7` · prod 17 user/7 NCC.** **🔴 NEXT anh:** ⚠️ restart CLI (MFE opt-in + wire) · UAT eoffice node Dự án mã · (anh Kiệt) nếu ô khoanh là Hạng-mục→báo em đổi work-item-code. **🔴 NEXT em:** monthly **2026-07-01 GẤP** re-tier mega-line (detector D1 OOM do bloat — STATUS 61K/HANDOFF 46K-char KHÔNG Read/Edit) + ef-core Mig→59 + Budget-removed docs + 3 vocab-fork + curate test-spec/FD L1. **Pending product:** Section B cột Dự-án · Ngưỡng giá CEO Mig 54 · "C" chuyển phiếu→dự án. → log `2026-06-29-S93-pe-projectcode-harness16-mfe.md`) · **Prev S92** (S92 — **Ẩn 5 nhóm menu (Hợp đồng + Danh mục + Nhân sự + Văn phòng số + Cá nhân) CHỈ Admin thấy trên eoffice — em-main-led, 1 commit prod-verified `1408d4e`, BE-only no-migration, HMW-mode ON**: anh `/session-start` thấy WIP S92 uncommitted (hôm nay) → chốt "verify + hoàn thiện + deploy". `RevokeTemporarilyHiddenModulesAsync` mở rộng predicate +Contracts/Ct_* +Master/Suppliers/Projects/Departments/Catalog* (cộng dồn S58 Hrm*/Off*/Personal) + TẮT 2 re-grant (S65 HRM + S69 Office) → revoke = bước permission CUỐI ungated trong SeedAdminPermissionsAsync (durable mỗi restart, gotcha #75) + InReviewScope→chỉ Pe_*. PE giữ nguyên (Pe_* không match predicate; master-data GET any-auth). +AdminOnlyModulesRevokeTests 3. Test 431→**434** (45D+389I). seed-order + predicate coverage verified · **reviewer PASS** (5 attack A-E, 15/15 trên 3 class). **FYI:** role CatalogManager (0 user hiện tại) cũng bị thu Danh mục — intended-by-spec, re-enable cần carve-out predicate. **State: Mig 59 · 88 bảng · 434 test (45D+389I) · gotcha 76 · menu 54 · bundle admin `xz8FdmLN`/user `CA8Rla2w` (JS rotate #69, CSS frozen) · prod 17 user/7 NCC.** cicd **Run #358 PASS** prod-verified (sqlcmd: non-Admin 0 leak / Admin 5 giữ / Pe_* 120 untouched; ship-proof = dll-mtime + w3wp-recycle 08:04Z). **🔴 NEXT anh:** UAT eoffice login user non-admin → xác nhận KHÔNG còn thấy Hợp đồng/Danh mục/Nhân sự/VP số/Cá nhân (chỉ Duyệt NCC + Dashboard) · ⚠️ restart CLI (carry budget v3 + `/user-mark-*` + cadence). **🔴 NEXT em:** monthly 2026-07-01 (2 ngày) — **GẤP re-tier STATUS/HANDOFF mega-line** (STATUS line-6 giờ >25K-token KHÔNG Read/Edit được, S92 phải prepend qua PowerShell) + ef-core SKILL Mig→59 + docs/CLAUDE Budget-removed + 3 vocab-fork alias-map. **Pending product (carry):** Section B cột Dự-án wire · Ngưỡng giá CEO Mig 54 Designer UAT · "C" chuyển phiếu→dự án chờ spec. → log `2026-06-29-S92-admin-only-modules.md`) · **Prev S91** (S91 — **buổi go-live LỚN em-main-led, 4 commit prod-verified + backup local** — go-live 26/06 anh Kiệt SOL-IT Phase-01 PRO+CCM. #1 `159b69d` guide Word bỏ "Từ chối" 2 chỗ + fix 12 caption Hinh→Hình [unpack→XML→repack giữ 13 ảnh]. #2 `ba42c59` wipe go-live [16 PE+16 budgets+94 notif+19 NCC demo xóa, giữ 7 NCC thật+17 user+master, PeSeq→A/001, backup+2-guard+AskUserQuestion-scope]. #3 `55494ad` gate SeedDemoMasterData chống resurrect 18 NCC demo mỗi restart [gotcha #75 root-cause, verify demo_codes=0 qua 2 restart]. #4 `e81e87f` user tự đổi mật khẩu [BE ChangePasswordCommand + POST /auth/change-password Identity-verify-pass-cũ + FE 2-app ChangePasswordDialog/TopBar + 10 test; CS0104 ValidationException ambiguous fix]. +backup local `backups/SolutionErp_golive_clean_2026-06-26.bak` 21MB + accounts.txt 17 tk. **State: Mig 59 · 88 bảng · 431 test · gotcha 76 · menu 54 · bundle admin `DgQyuG7f`/user `BmbQon23` · prod 17 user/7 NCC/0 PE-HĐ.** **🔴 NEXT anh:** ⚠️ restart CLI · review guide docx Word · đóng 2 tab eoffice em mở · UAT đổi-mật-khẩu [avatar→Đổi mật khẩu, ≥12 ký tự] + xác nhận NCC demo không sống-lại. **🔴 NEXT em:** curate test-specialist L1 OVER [carry nhiều session] · monthly 2026-07-01 [re-tier mega-line STATUS/HANDOFF bloat · ef-core SKILL Mig→59 · docs/CLAUDE Budget-removed · 3 vocab-fork alias-map]. **Pending product:** Section B cột Dự-án wire · Ngưỡng giá CEO Mig 54 Designer UAT · "C" chuyển phiếu→dự án chờ spec. **Ops:** tzutil VPS = N/A [R6 fix tầng-serialize] · 5 real-staff pw · email typo anh Chương. **Lessons S91:** wipe-không-bền-nếu-không-gate-reseed [#75] · deploy config từ .example KHÔNG file-gitignored [#76] · Chrome-MCP screenshot kẹt SPA document_idle [#74 carry]. → log `2026-06-26-S91-golive-wipe-changepw-backup.md`) · *(session ≤S90 đã tách → `docs/_archive/STATUS-HANDOFF-tier-S94-2026-06-29.md` + `docs/changelog/sessions/`; re-tier S94)* --- diff --git a/docs/STATUS.md b/docs/STATUS.md index 2c56be1..72793f5 100644 --- a/docs/STATUS.md +++ b/docs/STATUS.md @@ -3,7 +3,7 @@ > **Update rule:** trước khi bắt đầu 1 task → ghi row `🔥 In Progress`. Xong → `✅ Recently Done`. > **Tiering rule (S40):** chỉ giữ **state hiện tại + 3 session gần nhất** ở file này. Session cũ hơn → `docs/changelog/sessions/`. Full history pre-S40 → `docs/_archive/STATUS-preS40-fullhistory.md`. (Tránh over-context — xóa double, không cắt nội dung.) -**Last updated:** 2026-06-29 (S93 — **(1) PE cây Duyệt NCC node Dự án hiện MÃ dự án thay tên dài (anh Kiệt FDC) prod-verified Run #473** `8ee8f3e`: BE thread ProjectCode (DTO + 3 projection List/Inbox/ListApproved + search) + FE 2-app SHA-mirror (render `projectCode||projectName`+tooltip+sort) NO-MIG; grep bắt construction-site#3 thoát replace_all (cardinality-grep-all-consumer); build 3× + test 434; bundle admin `xz8FdmLN`→`CDn40vpV`/user `CA8Rla2w`→`CoPmPBg7`. **(2) adopt Harness-16 MFE (memory-fidelity-EVAL) 2-workflow PASS, 0 production code** `9580098`: WF1 `wf_4c63e1bd` (ground-truth + bắt BLOCKING vocab-fork: memory-fidelity = H6.7 memoryDelta-routing ≠ H16 coverage-eval → đặt MFE + alias-map §H KHÔNG seed $aliasSets) + WF2 `wf_13e3d35a` 3-lane PASS (code-gate denom-29-re-derived to-the-digit + READ-ONLY-budget proof 1-write-op + honesty 5-floor + leading-verb-trap adversarial-probed-DEFEATED); `scripts/mfe-eval.ps1` deterministic NO-API ASCII#30 (LEAD coverage-FIT 29-item/220K=1.5% + age-band-flag-not-cut + Goodhart strikes-21/RCA-9 · SUB per-role ĐO-THẬT impl-backend 94%/impl-frontend 85%/reviewer 88% · prose-role→N/A KHÔNG 0%) + judge-SCAFFOLD-only (honest: số chưa-nghĩa tới khi age-mature+independent-judge) + budget:mfe config + eval/mfe/ seed-12-stable-id + engine §H + artifact-row + C3-comment + wire session-start §2.1.6/session-end §L.b(c) opt-in + agents/README S93 + adap-report ×2 + email AI_INFRA hash `da768330`. **AS-10 2nd-fire dogfood:** WF1 3-agent (return-only) residual agent-memory caught+reverted (E-006 recurrence, guard HELD); WF2 explicit-return-only-prompt → 0 residual (instruction-fix). **#53 recover-from-disk** (WF1 sub return-rỗng nhưng ghi diary trước). user-MEMORY compact 23.7→7.8KB (hook). **Lessons:** cardinality-change-grep-all-consumer · vocab-collision-check-on-adopt (2-workflow review bắt, 1-workflow trượt) · AS-10-instruction-fix (prompt override frontmatter + git-diff net) · MFE đóng-vòng detector-D1-OOM-đầu-phiên. **State THẬT: Mig 59 · 88 bảng · 434 test (45D+389I) · gotcha 76 · menu 54 · bundle admin `CDn40vpV`/user `CoPmPBg7` · prod 17 user/7 NCC.** **🔴 NEXT anh:** restart CLI (MFE opt-in + wire session-start/end + agents/README no hot-reload) · UAT eoffice node Dự án hiện mã. **NEXT em:** monthly **2026-07-01 (2 ngày) GẤP** re-tier STATUS/HANDOFF mega-line (detector D1 **OOM do bloat** = tooling vỡ, STATUS line 61K-char/HANDOFF 46K-char KHÔNG Read/Edit) + ef-core SKILL Mig→59 + docs/CLAUDE Budget-removed + 3 vocab-fork alias-map + curate test-specialist/FD L1 WATCH. **Pending product:** Section B cột Dự-án wire · Ngưỡng giá CEO Mig 54 Designer UAT · "C" chuyển phiếu→dự án chờ spec. → log `2026-06-29-S93-pe-projectcode-harness16-mfe.md`) · **Prev S92** (S92 — **Ẩn 5 nhóm menu (Hợp đồng + Danh mục + Nhân sự + Văn phòng số + Cá nhân) CHỈ Admin thấy trên eoffice — em-main-led verify+review+deploy, 1 commit prod-verified `1408d4e`, BE-only no-migration, HMW-mode ON**: anh `/session-start` thấy WIP S92 uncommitted (dated hôm nay) → AskUserQuestion chốt "verify + hoàn thiện + deploy". `RevokeTemporarilyHiddenModulesAsync` mở rộng predicate +Contracts/Ct_* +Master/Suppliers/Projects/Departments/Catalog* (cộng dồn S58 Hrm*/Off*/Personal) + TẮT 2 re-grant public (S65 HRM + S69 Office) → revoke = bước permission CUỐI trong SeedAdminPermissionsAsync (ungated, durable mỗi restart, gotcha #75) + thu hẹp InReviewScope→chỉ Pe_*. **PE giữ nguyên** cho user (Pe_* không match predicate; master-data GET any-auth → form PE vẫn chọn Dự án/NCC/Hạng mục dù menu Danh mục ẩn). +AdminOnlyModulesRevokeTests 3 (non-Admin revoked 4 cờ / Admin untouched / PE preserved). **Verify chain:** test 431→**434** (45D+389I, full-suite 0 fail) · seed-chain-order verified (revoke last + prod-durable) · predicate coverage verified (5 nhóm đủ; Forms/Reports/PurchaseEvaluations sibling top-level giữ-hiện đúng; no over-match) · **reviewer PASS** (5 attack vector A-E independ re-derive, 15/15 trên 3 class, 0 blocking). **FYI intended-by-spec, 0 live impact:** role CatalogManager (hiện **0 user** — S89 xóa hết test user) cũng bị thu Danh mục; re-enable cần carve-out predicate. **State THẬT: Mig 59 · 88 bảng · 434 test (45D+389I) · gotcha 76 · menu 54 · bundle admin `xz8FdmLN`/user `CA8Rla2w` (JS rotate #69, CSS frozen) · prod 17 user/7 NCC.** cicd **Run #358 PASS** prod-verified (sqlcmd: non-Admin 0 leak / Admin 5 giữ / Pe_* 120 untouched; ship-proof = dll-mtime + w3wp-recycle 08:04Z). **🔴 NEXT anh:** UAT eoffice login user non-admin → xác nhận KHÔNG còn thấy Hợp đồng/Danh mục/Nhân sự/VP số/Cá nhân (chỉ Duyệt NCC + Dashboard) · ⚠️ restart CLI (carry budget v3 + `/user-mark-*` + cadence). **NEXT em:** monthly audit 2026-07-01 (2 ngày) re-tier STATUS/HANDOFF mega-line + flush ef-core/Budget docs + vocab alias-map. → log `2026-06-29-S92-admin-only-modules.md`) · **Prev S91** (S91 — **buổi go-live LỚN em-main-led, 4 commit prod-verified + backup local** — go-live chính thức 26/06 anh Kiệt SOL-IT Phase-01 PRO+CCM. **#1 `159b69d`** guide Word bỏ "Từ chối" 2 chỗ + fix 12 caption Hinh→Hình [app gỡ Từ chối S60, guide đã phát công ty stale; unpack→XML→repack giữ 13 ảnh, verify python-docx]. **#2 `ba42c59`** wipe go-live `scripts/s91-wipe-golive.sql`: xóa 16 PE+16 PeWorkItemBudgets+94 notif+19 NCC demo, GIỮ 7 NCC thật+17 user+master, reset PeSeq→**A/001** [backup `SolutionErp_S91_pregolivewipe.bak` + 2 guard PE>16-abort/NCC≠19-rollback + AskUserQuestion scope]. **#3 `55494ad`** gate SeedDemoMasterData sau DemoSeed:Disabled — root-cause: seed ungated per-code resurrect 18 NCC demo mỗi restart → prod skip → verify demo_codes=0 qua 2 restart [gotcha #75]. **#4 `e81e87f`** user tự đổi mật khẩu: BE ChangePasswordCommand + POST /auth/change-password [Identity verify pass-cũ, fail-PasswordMismatch→field CurrentPassword] + FE 2-app ChangePasswordDialog/TopBar + 10 test; fix CS0104 ValidationException ambiguous [FluentValidation vs custom]. + **backup local** `backups/SolutionErp_golive_clean_2026-06-26.bak` 21MB + accounts.txt 17 tk [.gitignore +backups/+*.bak]. **State THẬT: Mig 59 · 88 bảng · 431 test [45D+386I, +10 ChangePassword] · gotcha 76 [+#75 seed-resurrect +#76 deploy-config-từ-.example] · menu 54 · bundle admin `DgQyuG7f`/user `BmbQon23` · prod 17 user/7 NCC/70 dự án/71 hạng mục/0 PE-HĐ.** **Lessons:** wipe-không-bền-nếu-không-gate-reseed [#75 root>symptom] · deploy render Production.json từ .example KHÔNG file-gitignored [#76] · em-main-led security-feature báo-trước + test-specialist + build/test gate thay fan-out [#53 cicd garbled-return→em-main self-verify-prod; test-specialist độc-lập bắt CÙNG CS0104] · Chrome-MCP screenshot kẹt SPA-SignalR document_idle [carry #74, guide-ảnh defer — anh "tự check"]. **🔴 NEXT anh:** ⚠️ restart CLI · review guide docx Word · đóng 2 tab eoffice em mở. **NEXT em:** curate test-specialist L1 OVER [carry] · monthly 2026-07-01 [re-tier mega-line + ef-core Mig→59 + Budget-removed docs/CLAUDE]. → log `2026-06-26-S91-golive-wipe-changepw-backup.md`) · *(session ≤S90 đã tách → `docs/_archive/STATUS-HANDOFF-tier-S94-2026-06-29.md` + `docs/changelog/sessions/`; re-tier S94)* +**Last updated:** 2026-06-29 (S94 — **(1) anh-directive nâng cap lead 220K→380K** (`memory-budget.json` canonical · SE-override lead KHÔNG còn AI_INFRA-parity, subs giữ 60K/50K · mark H-15 **v4-delta** `RC-pqhuy1987-29-06-2026-23-25-50` · flush 3 derived echo ACTIVE-MARKS/session-start §2.1.6/engine §G adopt-delta · MFE verified live-read 380K). **(2) re-tier 2 mega-line** (fix Read-25K/call OOM + token-cost ~169K/220K): STATUS 389→89 dòng (mega-line 59.6K→7.1K char) · HANDOFF 732→12 dòng · live 332KB→**34KB (−90%)** · session ≤S90 → `docs/_archive/STATUS-HANDOFF-tier-S94-2026-06-29.md` **0 byte-loss** (new+archive=orig+995B pointer) · backup git+scratchpad · detector 27=baseline 0-broken-pointer · conservation spot-check PASS. **(3) MFE eval-all baseline** (đầu phiên): LEAD coverage-FIT 29-item/**380K=0.92%** · age-band 0-cut · Goodhart strikes-21/RCA-9 flat=no-lie · SUB per-role ≥85% (cicd/test-spec/FD 100% · impl-backend 94% · impl-frontend 85% · 3 prose-role N/A) · judge-scaffold-only honest. **(4) nạp full Phase-1 read-set** (budget 380K cho phép): +PROJECT-MAP +workflow-contract +migration-todos. **commit `5f61b03` pushed** docs-only CI-skip. **Lesson:** trần budget ⟂ harness **Read-25K/call** = 2 khóa ĐỘC-LẬP — cap-raise KHÔNG unblock mega-line Read (cần re-tier); **mega-LINE = tooling-breaker** (ưu-tiên) vs **mega-FILE nhiều-dòng = chỉ token-cost**; re-tier = **archive-không-cắt + assert head+tail==orig 0-loss**. em-main solo (governance single-writer, 0 sub, 0 fan-out). **State GIỮ NGUYÊN: Mig 59 · 88 bảng · 434 test · gotcha 76 · menu 54 · bundle admin `CDn40vpV`/user `CoPmPBg7` · prod 17 user/7 NCC.** → log `2026-06-29-S94-cap-380k-retier-megaline.md`) · **Prev S93** (S93 — **(1) PE cây Duyệt NCC node Dự án hiện MÃ dự án thay tên dài (anh Kiệt FDC) prod-verified Run #473** `8ee8f3e`: BE thread ProjectCode (DTO + 3 projection List/Inbox/ListApproved + search) + FE 2-app SHA-mirror (render `projectCode||projectName`+tooltip+sort) NO-MIG; grep bắt construction-site#3 thoát replace_all (cardinality-grep-all-consumer); build 3× + test 434; bundle admin `xz8FdmLN`→`CDn40vpV`/user `CA8Rla2w`→`CoPmPBg7`. **(2) adopt Harness-16 MFE (memory-fidelity-EVAL) 2-workflow PASS, 0 production code** `9580098`: WF1 `wf_4c63e1bd` (ground-truth + bắt BLOCKING vocab-fork: memory-fidelity = H6.7 memoryDelta-routing ≠ H16 coverage-eval → đặt MFE + alias-map §H KHÔNG seed $aliasSets) + WF2 `wf_13e3d35a` 3-lane PASS (code-gate denom-29-re-derived to-the-digit + READ-ONLY-budget proof 1-write-op + honesty 5-floor + leading-verb-trap adversarial-probed-DEFEATED); `scripts/mfe-eval.ps1` deterministic NO-API ASCII#30 (LEAD coverage-FIT 29-item/220K=1.5% + age-band-flag-not-cut + Goodhart strikes-21/RCA-9 · SUB per-role ĐO-THẬT impl-backend 94%/impl-frontend 85%/reviewer 88% · prose-role→N/A KHÔNG 0%) + judge-SCAFFOLD-only (honest: số chưa-nghĩa tới khi age-mature+independent-judge) + budget:mfe config + eval/mfe/ seed-12-stable-id + engine §H + artifact-row + C3-comment + wire session-start §2.1.6/session-end §L.b(c) opt-in + agents/README S93 + adap-report ×2 + email AI_INFRA hash `da768330`. **AS-10 2nd-fire dogfood:** WF1 3-agent (return-only) residual agent-memory caught+reverted (E-006 recurrence, guard HELD); WF2 explicit-return-only-prompt → 0 residual (instruction-fix). **#53 recover-from-disk** (WF1 sub return-rỗng nhưng ghi diary trước). user-MEMORY compact 23.7→7.8KB (hook). **Lessons:** cardinality-change-grep-all-consumer · vocab-collision-check-on-adopt (2-workflow review bắt, 1-workflow trượt) · AS-10-instruction-fix (prompt override frontmatter + git-diff net) · MFE đóng-vòng detector-D1-OOM-đầu-phiên. **State THẬT: Mig 59 · 88 bảng · 434 test (45D+389I) · gotcha 76 · menu 54 · bundle admin `CDn40vpV`/user `CoPmPBg7` · prod 17 user/7 NCC.** **🔴 NEXT anh:** restart CLI (MFE opt-in + wire session-start/end + agents/README no hot-reload) · UAT eoffice node Dự án hiện mã. **NEXT em:** monthly **2026-07-01 (2 ngày) GẤP** re-tier STATUS/HANDOFF mega-line (detector D1 **OOM do bloat** = tooling vỡ, STATUS line 61K-char/HANDOFF 46K-char KHÔNG Read/Edit) + ef-core SKILL Mig→59 + docs/CLAUDE Budget-removed + 3 vocab-fork alias-map + curate test-specialist/FD L1 WATCH. **Pending product:** Section B cột Dự-án wire · Ngưỡng giá CEO Mig 54 Designer UAT · "C" chuyển phiếu→dự án chờ spec. → log `2026-06-29-S93-pe-projectcode-harness16-mfe.md`) · **Prev S92** (S92 — **Ẩn 5 nhóm menu (Hợp đồng + Danh mục + Nhân sự + Văn phòng số + Cá nhân) CHỈ Admin thấy trên eoffice — em-main-led verify+review+deploy, 1 commit prod-verified `1408d4e`, BE-only no-migration, HMW-mode ON**: anh `/session-start` thấy WIP S92 uncommitted (dated hôm nay) → AskUserQuestion chốt "verify + hoàn thiện + deploy". `RevokeTemporarilyHiddenModulesAsync` mở rộng predicate +Contracts/Ct_* +Master/Suppliers/Projects/Departments/Catalog* (cộng dồn S58 Hrm*/Off*/Personal) + TẮT 2 re-grant public (S65 HRM + S69 Office) → revoke = bước permission CUỐI trong SeedAdminPermissionsAsync (ungated, durable mỗi restart, gotcha #75) + thu hẹp InReviewScope→chỉ Pe_*. **PE giữ nguyên** cho user (Pe_* không match predicate; master-data GET any-auth → form PE vẫn chọn Dự án/NCC/Hạng mục dù menu Danh mục ẩn). +AdminOnlyModulesRevokeTests 3 (non-Admin revoked 4 cờ / Admin untouched / PE preserved). **Verify chain:** test 431→**434** (45D+389I, full-suite 0 fail) · seed-chain-order verified (revoke last + prod-durable) · predicate coverage verified (5 nhóm đủ; Forms/Reports/PurchaseEvaluations sibling top-level giữ-hiện đúng; no over-match) · **reviewer PASS** (5 attack vector A-E independ re-derive, 15/15 trên 3 class, 0 blocking). **FYI intended-by-spec, 0 live impact:** role CatalogManager (hiện **0 user** — S89 xóa hết test user) cũng bị thu Danh mục; re-enable cần carve-out predicate. **State THẬT: Mig 59 · 88 bảng · 434 test (45D+389I) · gotcha 76 · menu 54 · bundle admin `xz8FdmLN`/user `CA8Rla2w` (JS rotate #69, CSS frozen) · prod 17 user/7 NCC.** cicd **Run #358 PASS** prod-verified (sqlcmd: non-Admin 0 leak / Admin 5 giữ / Pe_* 120 untouched; ship-proof = dll-mtime + w3wp-recycle 08:04Z). **🔴 NEXT anh:** UAT eoffice login user non-admin → xác nhận KHÔNG còn thấy Hợp đồng/Danh mục/Nhân sự/VP số/Cá nhân (chỉ Duyệt NCC + Dashboard) · ⚠️ restart CLI (carry budget v3 + `/user-mark-*` + cadence). **NEXT em:** monthly audit 2026-07-01 (2 ngày) re-tier STATUS/HANDOFF mega-line + flush ef-core/Budget docs + vocab alias-map. → log `2026-06-29-S92-admin-only-modules.md`) · **Prev S91** (S91 — **buổi go-live LỚN em-main-led, 4 commit prod-verified + backup local** — go-live chính thức 26/06 anh Kiệt SOL-IT Phase-01 PRO+CCM. **#1 `159b69d`** guide Word bỏ "Từ chối" 2 chỗ + fix 12 caption Hinh→Hình [app gỡ Từ chối S60, guide đã phát công ty stale; unpack→XML→repack giữ 13 ảnh, verify python-docx]. **#2 `ba42c59`** wipe go-live `scripts/s91-wipe-golive.sql`: xóa 16 PE+16 PeWorkItemBudgets+94 notif+19 NCC demo, GIỮ 7 NCC thật+17 user+master, reset PeSeq→**A/001** [backup `SolutionErp_S91_pregolivewipe.bak` + 2 guard PE>16-abort/NCC≠19-rollback + AskUserQuestion scope]. **#3 `55494ad`** gate SeedDemoMasterData sau DemoSeed:Disabled — root-cause: seed ungated per-code resurrect 18 NCC demo mỗi restart → prod skip → verify demo_codes=0 qua 2 restart [gotcha #75]. **#4 `e81e87f`** user tự đổi mật khẩu: BE ChangePasswordCommand + POST /auth/change-password [Identity verify pass-cũ, fail-PasswordMismatch→field CurrentPassword] + FE 2-app ChangePasswordDialog/TopBar + 10 test; fix CS0104 ValidationException ambiguous [FluentValidation vs custom]. + **backup local** `backups/SolutionErp_golive_clean_2026-06-26.bak` 21MB + accounts.txt 17 tk [.gitignore +backups/+*.bak]. **State THẬT: Mig 59 · 88 bảng · 431 test [45D+386I, +10 ChangePassword] · gotcha 76 [+#75 seed-resurrect +#76 deploy-config-từ-.example] · menu 54 · bundle admin `DgQyuG7f`/user `BmbQon23` · prod 17 user/7 NCC/70 dự án/71 hạng mục/0 PE-HĐ.** **Lessons:** wipe-không-bền-nếu-không-gate-reseed [#75 root>symptom] · deploy render Production.json từ .example KHÔNG file-gitignored [#76] · em-main-led security-feature báo-trước + test-specialist + build/test gate thay fan-out [#53 cicd garbled-return→em-main self-verify-prod; test-specialist độc-lập bắt CÙNG CS0104] · Chrome-MCP screenshot kẹt SPA-SignalR document_idle [carry #74, guide-ảnh defer — anh "tự check"]. **🔴 NEXT anh:** ⚠️ restart CLI · review guide docx Word · đóng 2 tab eoffice em mở. **NEXT em:** curate test-specialist L1 OVER [carry] · monthly 2026-07-01 [re-tier mega-line + ef-core Mig→59 + Budget-removed docs/CLAUDE]. → log `2026-06-26-S91-golive-wipe-changepw-backup.md`) · *(session ≤S90 đã tách → `docs/_archive/STATUS-HANDOFF-tier-S94-2026-06-29.md` + `docs/changelog/sessions/`; re-tier S94)* --- @@ -35,7 +35,7 @@ | Task | Owner | Status | |---|---|---| -| **S94 — re-tier STATUS/HANDOFF mega-line + nâng cap lead 220K→380K (anh-directed)** — trim 2 mega-line (unblock Read-25K/call OOM) + archive session ≤S90 → `_archive` ; cap v4-delta `RC-pqhuy1987-29-06-2026-23-25-50` | 👤 em main | 🔥 in-progress | +| **S94 — cap 220K→380K + re-tier 2 mega-line (anh-directed)** — ✅ DONE, pushed `5f61b03`; chi-tiết ở mega-line đầu file + session log `2026-06-29-S94-*` | 👤 em main | ✅ done (S94 closeout) | --- diff --git a/docs/changelog/sessions/2026-06-29-S94-cap-380k-retier-megaline.md b/docs/changelog/sessions/2026-06-29-S94-cap-380k-retier-megaline.md new file mode 100644 index 0000000..3c0282e --- /dev/null +++ b/docs/changelog/sessions/2026-06-29-S94-cap-380k-retier-megaline.md @@ -0,0 +1,56 @@ +# S94 (2026-06-29) — Nâng cap lead 220K→380K (anh-directed) + re-tier STATUS/HANDOFF mega-line + +> **Loại:** governance/docs, **em-main solo** (0 sub-agent spawn, 0 Workflow fan-out). **0 production code.** HMW-mode ON (armed lại cuối phiên). Model: Opus 4.8 (1M) Max (Fable suspended H5). +> **Commit:** `5f61b03` (docs-only, CI-skip) — pushed `ea075ba..5f61b03`. + +## Bối cảnh + +`/session-start` → `eval-all` (MFE) → anh hỏi "tổng lead hot-load?" → "nạp đầy đủ hết là bao nhiêu?" → phát hiện full canonical read-set ~368K > cap 220K → **anh-directive: "nâng trần 380k, nạp đầy đủ hết"**. + +## Việc done + +### 1. Nâng cap lead 220K→380K (anh-directive, quyền chủ-dự-án) +- `memory-budget.json`: `token_governor.tier1_hotfeed_tokens.lead_tokens` 220000→**380000** + note (SE-override, lead KHÔNG còn AI_INFRA-parity; subs giữ 60K/50K). +- Mark **H-15 v4-delta** stamped `RC-pqhuy1987-29-06-2026-23-25-50` (anh-directed, P4 DACI report-before-stamp). +- Flush 3 derived echo (derived-flush = em-main execution, no-gate): `ACTIVE-MARKS.md` What-cell · `session-start.md §2.1.6` echo · `harness-11-engine.md §G` adopt-delta S94. +- MFE verified live-read `cap = 380000` (FIT 1.53%→0.92%). +- ⚠️ Honest caveat: trần budget ⟂ harness Read-25K/call — cap-raise KHÔNG unblock mega-line Read (cần re-tier). ~368K/380K = ~97% fill = context-rot trade-off owner-accepted. + +### 2. Re-tier STATUS/HANDOFF mega-line (AskUserQuestion → "Re-tier ngay") +- **STATUS.md** 389→**89 dòng** (mega-line:6 59.6K→7.1K char) · **HANDOFF.md** 732→**12 dòng** (mega-line:5 43.9K→5.4K char). +- Live **332KB→34KB (−90%)**. Session ≤S90 → `docs/_archive/STATUS-HANDOFF-tier-S94-2026-06-29.md` (299KB). +- **0 byte-loss:** `new-live + archive = orig + 995B` (chỉ pointer/header thêm). Integrity assert `head+tail==original` PASS cả 2. +- Procedure (PowerShell vì Read kẹt mega-line): backup git+scratchpad → split tại `· **Prev S90**` boundary → archive-KHÔNG-cắt → conservation spot-check → detector re-run. +- Verify: detector **27=baseline** (0 broken-pointer mới) · canonical mig59/test434/gotcha76/table88 **vẫn detect đúng** · conservation YES/no spot-check PASS. +- 3 mega-line bloat phát hiện: STATUS:6 + HANDOFF:5 (mega-LINE = tooling-breaker, fixed) + `migration-todos.md` 807 dòng (mega-FILE = chỉ token-cost, defer). + +### 3. MFE eval-all baseline (đầu phiên, `eval-all`) +- LEAD coverage-FIT: 29-item must-remember / **380K = 0.92%** worst-case (FIT PASS, headroom khổng-lồ). +- age-band: 4 mark, 0 cái >30d-cut (status-driven). +- Goodhart anchor: strikes-21/RCA-9 flat (last_run 21 → no GOODHART-WARN = điểm không nói dối). +- SUB per-role (đo thật): cicd/test-spec/FD 100% · impl-backend 94% · impl-frontend 85% · inv-codebase/reviewer 88% · inv-api 86% · database-agent/harvest-curator/tooling-auditor N/A (prose role-file). +- Judge scaffold-only (honest: số vô-nghĩa tới khi age-mature + independent judge). + +### 4. Nạp full Phase-1 read-set (budget 380K + file gọn cho phép) +- +PROJECT-MAP +workflow-contract +migration-todos (structure). gotchas/schema/rules/architecture = on-demand (task-reference, KHÔNG rot-stuff). + +## Lessons +- **Trần budget ⟂ harness Read-25K/call = 2 khóa độc-lập.** cap-raise KHÔNG unblock mega-line Read → cần re-tier. (→ `feedback_status_handoff_tiering` S94 update) +- **mega-LINE = tooling-breaker (ưu-tiên) vs mega-FILE nhiều-dòng = token-cost.** +- **Re-tier = archive-không-cắt + assert head+tail==orig + conservation-check** = 0 byte-loss đảm-bảo. +- governance/doc single-writer = em-main solo (KHÔNG fan-out — không có gì parallelize). + +## §L closeout +- **§L.a:** 0 RCA (cap = anh-directed không phải lỗi; re-tier verified; MFE clean; 2 tool-error benign recovered). +- **§L.b(c):** archive-gate DRY-RUN — frontend-designer 26.1KB WATCH strike-1 (<2 no-action) · **test-specialist RESOLVED 7.8KB** (carry-curate cũ stale) · A7 GATE PASS 217/217. Sleep 4d<7 skip. +- **§L.b(d)(f):** 0 sub spawn → harvest n-a. +- **§L.b(g):** tooling — session-start.md echo 380K (no hot-reload → restart) · engine adopt-delta · 0 skill/plugin mới · roster 11 unchanged. +- **§L.b(h):** 4 mark Active-High (incl H-15 v4-delta stamped này). 0 mark MỚI (v4 = delta existing). + +## State GIỮ NGUYÊN +Mig 59 · 88 bảng · 434 test (45D+389I) · gotcha 76 · menu 54 · bundle admin `CDn40vpV`/user `CoPmPBg7` · prod 17 user/7 NCC. + +## NEXT +- **Anh:** ⚠️ restart CLI (session-start echo 380K + budget v4 runtime; canonical đã sống ngay) · UAT eoffice node Dự án mã (carry S93). +- **Em (monthly 2026-07-01, MAI):** ef-core SKILL Mig→59 · docs/CLAUDE Budget-removed · 3 vocab-fork alias-map · re-tier `migration-todos.md` (mega-FILE thứ-3) · FD L1 WATCH strike-1. +- **Pending product:** Section B cột Dự-án wire · Ngưỡng giá CEO Mig 54 Designer UAT · "C" chuyển phiếu→dự án chờ spec.