# Dispatch Log

## 2026-10-01T00:42:05Z
You are the Project Orchestrator (orchestrator_5) for FreeExile.

Your working directory is: `c:\Projects\FreeExile\.agents\teamwork\orchestrator_5`
Your persistent files are:
- `c:\Projects\FreeExile\.agents\teamwork\orchestrator_5\BRIEFING.md`
- `c:\Projects\FreeExile\.agents\teamwork\orchestrator_5\plan.md`
- `c:\Projects\FreeExile\.agents\teamwork\orchestrator_5\progress.md`

Read the authoritative user request in `c:\Projects\FreeExile\.agents\teamwork\ORIGINAL_REQUEST.md` under section `## 2026-10-01T00:42:05Z`.

## Mission
Triển khai toàn diện hệ thống Chat Multi-Channel độc lập phân tán cho FreeExile có khả năng chịu tải 1.000.000 CCU (Concurrent Users), tách biệt hoàn toàn khỏi Game Simulation Loop (Zone Server 30Hz) nhằm bảo đảm zero latency cho cả combat và tin nhắn.

## Architecture & Technology Stack Directive
- Pub/Sub & Fan-out Engine: Hybrid Redis Cluster Pub/Sub kết hợp In-Memory Connection Ring Buffer (tương thích tối đa với stack hiện có của FreeExile).
- Message Transport: Đa luồng độc lập khỏi World Loop (QUIC / WebSocket stream riêng biệt), cô lập tải I/O để không ảnh hưởng nhịp tick 30Hz của Zone Server.
- Target Protocol: [proto/chat.proto](file:///c:/Projects/FreeExile/proto/chat.proto) (ChatMessage, ItemLinkSnapshot, SendChatRequest, SendChatResponse, QueryItemSnapshotRequest).
- Architecture Reference: [docs/architecture/CHAT_AND_SOCIAL_ARCHITECTURE_2026.md](file:///c:/Projects/FreeExile/docs/architecture/CHAT_AND_SOCIAL_ARCHITECTURE_2026.md).

## Requirements

### R1. Kiến Trúc Chat Gateway & Distributed Pub/Sub Cluster (1M CCU Ready)
Xây dựng cụm dịch vụ Chat Server Microservice độc lập (server/chat/chat_service.py, chat_cluster_router.py, channel_manager.py) hỗ trợ cơ chế phân tán ngang (Horizontal Scale) qua Redis Cluster / Redis PubSub / Message Bus:
- Hỗ trợ đầy đủ các kênh: World (Thế Giới), Zone (Khu Vực / AOI), Guild (Bang Hội), Party (Đội Ngũ), Whisper (Mật Thư 1-1), System (Hệ Thống), Recruit (Chiêu Mộ), Feedback (Góp Ý GM).
- Phân luồng độc lập khỏi World Loop (QUIC / WebSocket stream riêng biệt), cô lập tải I/O để không ảnh hưởng nhịp tick 30Hz của Zone Server.
- Quản lý session kết nối connection pooler hiệu năng cao, tối ưu RAM và buffer cho hàng trăm ngàn đến triệu kết nối đồng thời.

### R2. Lõi Lọc Từ Ngữ Nhạy Cảm & Giám Sát An Ninh Đa Tầng (Moderation & Anti-RMT)
Hiện thực hóa server/chat/moderation.py và module kiểm duyệt:
- Tầng 1 (Đồng bộ siêu tốc < 0.1ms): Thuật toán Aho-Corasick Trie kết hợp Unicode NFKC normalization, homoglyph folding, leetspeak decoder (d.m, @, 0, !), tự động che chắn bằng dấu sao (***) mà không drop tin nhắn.
- Tầng 2 (Bất đồng bộ - Async Sentinel): Phát hiện dấu hiệu RMT (giao dịch tiền thật, chợ đen, số điện thoại VN 09xx/08xx/03xx/07xx, Zalo/Telegram, chuyển khoản ATM/MoMo) tính điểm rủi ro moderation_risk_score và kích hoạt tự động cấm chat (Auto-Mute).

### R3. Cơ Chế Khoe Đồ Ký Số An Toàn Tuyệt Đối (HMAC-SHA256 Item Hyperlinking)
Hiện thực hóa server/chat/item_link_service.py tích hợp kho đồ và bộ nhớ đệm snapshot:
- Xác thực quyền sở hữu vật phẩm từ player inventory trước khi cho phép khoe.
- Ký số dữ liệu vật phẩm (UUID, Stats, Rarity, Crafter) bằng HMAC-SHA256 bí mật từ server để triệt tiêu hoàn toàn nguy cơ hacker spoof tạo đồ giả Thái Cổ.
- Lưu cache snapshot tạm thời (TTL 24h) để người chơi khác nhấp vào xem tooltip chi tiết không gây truy vấn đè database.

### R4. Tích Hợp Client WebApp UI & Tooltip 2.5D
Tích hợp giao diện Chat vào WebApp Client (client/src/chat/ChatManager.ts & UI HTML/CSS DOM):
- Giao diện thanh chat đa tab (Thế Giới, Khu Vực, Bang, Đội, Mật), bộ đệm tin nhắn tối đa 100 tin/kênh.
- Hỗ trợ click vào link đồ đạc [Thanh Phong Huyền Kiếm +15] mở Modal Tooltip hiển thị phẩm cấp, ngũ hành, chỉ số chi tiết.
- Anti-spam client side cooldown và hiển thị cảnh báo khi gửi quá nhanh.

### R5. Kịch Bản Stress Test & Benchmark Tải Trọng Cực Hạn (1,000,000 CCU Simulation)
Xây dựng công cụ kiểm chứng tải trọng (tools/stress/chat_load_benchmark.py):
- Mô phỏng tải phân tán nhiều node với fan-out rate, đo lường độ trễ p50, p95, p99 (< 15ms).
- Kiểm tra tràn bộ nhớ (Memory leak), thread contention và tính ổn định khi broadcast kênh World với hàng chục ngàn tin nhắn/giây.

## Acceptance Criteria

### 1. Phân Tách Kiến Trúc & Độ Trễ Zero Latency
- [ ] Chat Server chạy dưới dạng process / service độc lập, giao tiếp với Zone Server qua IPC/PubSub mà không can thiệp vào vòng lặp tick 30Hz.
- [ ] Độ trễ broadcast nội bộ (internal pub/sub latency) đạt p99 < 15ms dưới tải kiểm thử.

### 2. Kiểm Duyệt & Lọc Nội Dung Đa Ngôn Ngữ
- [ ] 100% test case trong tests/unit/test_chat_and_moderation.py và các test bổ sung nâng cao (tiếng Việt có dấu, không dấu, telex, leetspeak, RMT tele/zalo) đều pass.
- [ ] Thời gian xử lý lọc Tầng 1 đạt < 0.2ms / tin nhắn.

### 3. Khoe Đồ Bảo Mật (Item Hyperlink Security)
- [ ] Gói tin khoe đồ giả mạo chữ ký HMAC bị từ chối 100% (is_valid == False).
- [ ] Tra cứu snapshot vật phẩm trả về đúng stats gốc và phản hồi trong < 2ms từ Redis/Memory Cache.

### 4. Vệ Sinh Mã Nguồn & TDD Khép Kín
- [ ] Toàn bộ code Python tuân thủ mypy --strict, @dataclass(slots=True, frozen=True) cho message DTOs, file <= 350-500 dòng theo chuẩn GEMINI.md.
- [ ] Test suite tự động pass 100% không có bất kỳ regression nào.
