# 03. Semantic Digest: Lịch Sử Xử Lý Sự Cố Tự Hành, Chống Kẹt & Giao Thức Phím (2026)

- **Mã lưu trữ**: `ARCHIVE-DIGEST-AUTONOMY-HISTORICAL-RCA`
- **Mốc thời gian nén**: `16/09/2026`
- **Các tài liệu gốc đã nén**: Doc 10, 11, 12, 14 (2 bản), 15, 18, 19, 21, 22, 25, 27, 35, 40, 41, 42, 44, 45, 47, 48, 49, 51 (2 bản), 60, 62 (3 bản), 63 (2 bản).
- **Trạng thái**: `[HISTORICAL ARCHIVE — ENCODED INTO SSoT DOC 61 & AGENTS.MD]`

---

## 1. Sự Cố Rúc Bờ Đá Hideout & Đổi Chuẩn Tọa Độ (Doc 45, Doc 60)
- **Hiện trường (14-15/09/2026)**: Khi bật F8 tại Shoreline Hideout, nhân vật tung chiêu tại chỗ rồi lao đầu vào bờ đá phía dưới-phải màn hình, sau đó UnstuckHandler liên tục gửi phím `.` dẫn đến Client.txt báo: `Portals are disabled here.`
- **Nguyên nhân gốc rễ (4-Step RCA)**:
  1. *LMB Skill Binding*: Người chơi gán skill vào LMB; khi ở xa mục tiêu, click LMB sẽ biến thành cast chiêu tại chỗ thay vì di chuyển.
  2. *Fallback Tâm Màn Hình*: Khi không thấy bệ đá Map Device, bot fallback click vào `(960, 540)` (chân nhân vật), tạo thành vòng lặp rúc tường.
  3. *Unstuck trong làng*: UnstuckHandler dùng phím Town Portal `.` ngay trong Hideout, nơi portal bị cấm.
- **Biện pháp khắc phục đã đúc kết**:
  - Cấm tuyệt đối fallback `(960, 540)`. Bắt buộc dùng tọa độ thực nghiệm Shoreline Hideout `(1054, 735)` / `(1170, 802)`.
  - Cấm gửi phím `.` khi ở Town/Hideout (`INV-FSM-UNSTUCK-NO-TOWN-PORTAL`).
  - Áp dụng thời gian chờ hồi phục tối thiểu 3000ms (`INV-FSM-FAIL-BACKOFF`).

---

## 2. Sự Cố Xung Đột Phím U & Hai Não Điều Khiển (Dual-Brain Conflict - Doc 61, 62)
- **Hiện trường**: Python Mapping Coordinator gửi phím `U` để mở Map Device, trong khi C++ Core đang chạy FSM Approach.
- **Nguyên nhân gốc rễ**:
  - Phím `U` trong POE2 chỉ mở World Map xem-only của Campaign (Act 1-3), không mở được khay nạp Waystone của Map Device.
  - Hai não (C++ FSM 120Hz và Python Coordinator 1Hz) cùng gửi lệnh click khiến con trỏ chuột nhảy giật giữa 2 tọa độ.
- **Biện pháp khắc phục**:
  - `INV-KEY-NO-U-FOR-MAP-DEVICE`: Cấm gửi phím `U` tại Map Device. Mở Map Device phải dùng phím **F** khi đứng sát cự ly $\le 18u$.
  - `INV-BRAIN-CONFLICT-GATEKEEPER`: C++ Core từ chối Opcode 96 (`TRIGGER_WORLD_MAP_TRAVEL`) khi ở Hideout.
  - Python Coordinator tự động bỏ qua Stage 2 nếu C++ Core đang quản lý Map Device (`IsActive()`).

---

## 3. Khắc Phục WASD Micro-Tap & Chuột Tương Đối (Doc 61, Doc 62)
- **WASD Micro-Tap**: Việc nhấp nhả phím 75ms/85ms làm nhân vật chỉ xoay đầu mà không kích hoạt hoạt ảnh bước đi của POE2. Khắc phục: `INV-WASD-MIN-DWELL` nâng dwell time lên $\ge 300ms$ (ngắn) và $\ge 1000ms$ (dài).
- **Chuột Tương Đối trong UI**: `KMBoxNet::MoveMouse(rx, ry)` nhận delta tương đối, nhưng các handler UI lại truyền nhầm tọa độ tuyệt đối pixel (ví dụ `1054, 735`), làm con trỏ bay lệch ra ngoài màn hình. Khắc phục: `INV-INPUT-ABS-MOUSE` chuyển 100% click UI sang `MoveMouseSmooth`.
