Files
G-Launcher/Doc/README.md
T

62 lines
6.4 KiB
Markdown
Raw Normal View History

# 📚 G-Launcher Developer & AI Memory Documentation (`Doc/`)
> แหล่งรวบรวมข้อมูลสถาปัตยกรรม กฎการพัฒนา รายละเอียดระบบ และประวัติการทำโปรเจกต์
> **(ใช้สำหรับนักพัฒนาและให้ AI อ่านทบทวนบริบททุกครั้งหลังเกิดการ Compact)**
---
## 🎯 สรุปข้อมูลหลักที่ห้ามลืม (Master Quick Reference)
| หัวข้อ | ข้อมูลสำคัญ |
| :--- | :--- |
| **ชื่อโปรเจกต์** | **G-Launcher** (Go + Wails v3 + React 19 + Vite) |
| **เจ้าของโปรเจกต์** | **GaCy** |
| **Remote Repository** | `https://gaytea.cod-algieba.ts.net/GaCy/G-Launcher.git` |
| **Active Branch** | **`Dev`** เท่านั้น (ห้าม push ตรงเข้า main หรือ branch อื่น) |
| **โครงสร้างรากฐาน** | ผสมผสาน UI/Proxy จาก `Firefly_Launcher` + Core Tools/Rollback จาก `horoyoi-san/game-Launcher` |
| **กฎเหล็กอันดับ 1** | **แก้ระบบหลังบ้าน (Go Backend) ก่อน UI เสมอ** (`go vet ./...` ต้องผ่านก่อนแก้ Frontend) |
| **กฎเหล็กอันดับ 2** | **ห้าม Hardcode URL / IP / Path สัมบูรณ์** (รวมไว้ที่ [`pkg/constant/constant.go`](../pkg/constant/constant.go)) |
| **กฎเหล็กอันดับ 3** | **ระบบอัปเดต:** โหลดลง Temp -> Build ใน Temp -> แทนที่ตัวเก่า -> ลบ Temp ทิ้ง 100% |
---
## 📑 สารบัญเอกสารในโฟลเดอร์นี้
### 📌 เอกสารส่งต่อสถานะหลักและสัญญาทางเทคนิค (Core Handoff & Technical Contracts)
1. [**G-LAUNCHER-HANDOFF.md**](./G-LAUNCHER-HANDOFF.md)
* 🌟 **เอกสารหลักที่ต้องอ่านเป็นไฟล์แรกหลัง Compact:** สรุปสถานะงานแบบแยกชั้น (โค้ด/บิลด์/ดีพลอย/ยืนยันผล), กับดัก 5 ข้อที่ห้ามพลาด, และ Checklist ก่อน Commit
2. [**updater-temp-lifecycle.md**](./updater-temp-lifecycle.md)
* สัญญาทางเทคนิคของระบบอัปเดต 4 ขั้นตอน: การจัดการ Temp Workspace, การเลี่ยง Windows Process Lock, และระบบ Atomic Rollback
3. [**wails3-ipc-bindings-contract.md**](./wails3-ipc-bindings-contract.md)
* สัญญาการสื่อสาร Wails v3 IPC, ระบบ Type-Safe Bindings, และเหตุผลทางสถาปัตยกรรมที่ต้องทำ Go Backend ก่อน Frontend UI
4. [**diff-patching-engine.md**](./diff-patching-engine.md)
* กลไกการแพตช์ไฟล์ตัวเกมด้วย HPatchz (`.hdiff`), Zift (`.ziff`), การสกัดเครื่องมือจาก Embed Assets, และระบบ Safe Backup
5. [**git-runtime-mingit.md**](./git-runtime-mingit.md)
* สถาปัตยกรรม Portable MinGit: การตรวจจับและดาวน์โหลดอัตโนมัติโดยไม่ต้องใช้สิทธิ์ Administrator และการป้องกัน Terminal Hang
6. [**game-selection-persistence.md**](./game-selection-persistence.md)
* ระบบบันทึกพาธตัวเกมแบบทนทานต่อ Crash ด้วย Windows API `MoveFileEx` เพื่อป้องกันปัญหาไฟล์ JSON กลายเป็น 0 ไบต์
7. [**thai-localization-mod.md**](./thai-localization-mod.md)
* ระบบแปลภาษาไทย 2 ระดับ: Launcher UI (i18next) และ Game Modding (การแพตช์ไบต์ใน ExcelData พร้อมระบบกู้คืน)
8. [**upstream-merge-audit.md**](./upstream-merge-audit.md)
* ตารางแจกแจงที่มาของโค้ด (File Attribution Matrix) จากทั้ง Firefly Launcher และ Horoyoi-san
### 🏛️ เอกสารสถาปัตยกรรมและกฎการพัฒนาทั่วไป
9. [**ARCHITECTURE.md**](./ARCHITECTURE.md)
* สถาปัตยกรรมโครงสร้างโปรเจกต์ระดับสูง Wails v3, Frontend React 19, และ Backend Services ทั้ง 5 ตัว
10. [**DEVELOPMENT_RULES.md**](./DEVELOPMENT_RULES.md)
* กฎ 6 ข้อในการพัฒนา และบทเรียนจาก Horoyoi-san & โปรเจกต์เดิม (Ananta / GaC-hkrpg-go)
11. [**UPDATER_SYSTEM.md**](./UPDATER_SYSTEM.md)
* ภาพรวมและ Sequence Diagram ของระบบ Auto-Updater และ Local Build
12. [**HISTORY_AND_LOGS.md**](./HISTORY_AND_LOGS.md)
* ไทม์ไลน์และประวัติการพัฒนาตั้งแต่เริ่มรวม 2 Repos จนถึงปัจจุบัน
---
## 🤖 คำแนะนำสำหรับ AI Agent (เมื่อตื่นขึ้นมาหลัง Compact)
หากพบว่าความจำใน context ถูกย่อ (compacted):
1. **อ่านไฟล์ในโฟลเดอร์นี้ก่อนเริ่มทำงานเสมอ** เพื่อคืนบริบทของโปรเจกต์ทั้งหมด
2. เช็คว่ากำลังอยู่บน branch `Dev` หรือไม่ ด้วยคำสั่ง `git status`
3. ก่อน commit โค้ดใดๆ ต้องรัน:
* `go vet ./...` (ต้องผ่าน 100%)
* `npm --prefix frontend run build` (ต้องผ่าน 100%)
4. สื่อสารกับผู้ใช้เป็นภาษาไทยที่กระชับ ตรงประเด็น และรายงานผลการทำงานอย่างชัดเจน