Anh yêu cầu sau /check-email ai_infra (guide canonical 13 mục "Surgical Precision Minimalism", anh-approved 06-11): chỉnh giao diện eoffice giống guide, GIỮ nhận dạng thương hiệu SOLUTION. 14 file fe-user, visual-only (mirror design system fe-admin S55 + đối chiếu guide; fe-admin/BE untouched): - index.css: heading ladder semibold (bỏ font-bold) + .label-eyebrow uppercase + tnum note. 6 ui primitives (Button/Input/Label/Select/Textarea/Dialog): text-xs font-semibold, control h28-40, rounded-lg, focus ring brand-500, bỏ shadow trang trí — variant/size keys + props/forwardRef STABLE. - 6 shell: DataTable (thead sticky + density px-3 py-2 + tnum + RowActions/ RowActionButton ADDITIVE luôn-hiện không opacity-hover) / Layout (active leaf brand left-rail, logic nav/permission nguyên) / TopBar / PageHeader / PhaseBadge (ring-current/15) / EmptyState. + LoginPage polish nhẹ. - BRAND GIỮ: #1F7DC1 (brand-*) + Be Vietnam Pro + neutral slate (guide cho plug hue riêng — chia sẻ grammar, không chia sẻ vocabulary-màu). Verify: npm build ×2 PASS 0 TS err (fe-user 443ms + fe-admin 8.9s untouched- confirm). Diff-review từng file: functionality keys stable, additive-only. frontend-designer return-truncated gotcha #53 giữa FD2 screenshot → em main disk-recover + self-gate (precedent S55); visual live-check sau deploy. Email AI_INFRA 2026-06-11-ui-ux-design-guide: inbox copy verified hash ✓✓ (whole-file + body), processed sau commit này. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2.1 KiB
broadcasts/ — _index (Harness 3 · single index) — SOLUTION_ERP (self=se)
1 INDEX DUY NHẤT theo dõi MỌI message qua kênh email (in + out). Adopt AI_INFRA Harness 3 (anh 06-07). Mỗi message = 1 dòng. Append-only. Inbound: stick đã-đọc khi xử lý xong. verify =
SHA256(body)bản copy ==content_sha256(frontmatter) == bảnoutboxbên gửi (byte-identical) → ✓ · lệch = ✗ (tamper-flag, điều tra ngay). Folder map:A/outbox/B/<id>(A→B) ⇄B/inbox/A/<id>(B kéo về). 6 folder mỗi chiều (trừ self=se). Fan-out adap broadcast (≠ email directed) →outbox/all/(pull/adap-apply), track ở COMMS-LEDGER OUT — KHÔNG ở index này (index = email mesh in/out). infra-CC row (§N3): message<id>-cc(cc-of:<to>) = bản-2 se gửiai_infragiám sát infra-comms sister↔sister. Ghi rõcc-ofvào cellfrom → to— vd OUTBOUNDse → ai_infra (cc-of:vipix)· INBOUNDvipix → ai_infra (cc-of:se). Cùng status/verify như message thường (whole-file + body-hash đối chứng).
📥 INBOUND (nhận — qua /check-email <from>)
status: pending (ở
inbox/root, chưa xử lý) → processed (đã MOVE vàoinbox/<from>/).
| received | id | from → to | status | folder | sha256(12) | verify |
|---|---|---|---|---|---|---|
| 2026-06-09 | 2026-06-09-namgroup-to-se-ui-design-conventions | namgroup → se | processed | namgroup | 0140b81fb8a6 | ✓ |
| 2026-06-11 | 2026-06-11-ai_infra-to-se-ui-ux-design-guide | ai_infra → se | pending | (root) | d353ee460dba | ✓ |
📤 OUTBOUND (gửi — qua /send-email <to>)
| sent (ISO) | id | from → to | folder | sha256(12) |
|---|---|---|---|---|
| 2026-06-07 | 2026-06-07-se-to-ai_infra-harness-123-handshake | se → ai_infra | outbox/ai_infra | c9656c198500 |
| 2026-06-10 | 2026-06-10-se-to-ai_infra-harness-4-adopt-report | se → ai_infra | outbox/ai_infra | 181ee03ff060 |
| 2026-06-11 | 2026-06-11-se-to-ai_infra-harness-4-runtime-verified | se → ai_infra | outbox/ai_infra | ecf1d58797af |