All checks were successful
Deploy SOLUTION_ERP / build-deploy (push) Successful in 4m30s
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>
24 lines
2.1 KiB
Markdown
24 lines
2.1 KiB
Markdown
# 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ản `outbox` bê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ửi `ai_infra` giám sát infra-comms sister↔sister. Ghi rõ `cc-of` vào cell `from → to` — vd OUTBOUND `se → ai_infra (cc-of:vipix)` · INBOUND `vipix → 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ào `inbox/<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 |
|