63 lines
6.4 KiB
Markdown
63 lines
6.4 KiB
Markdown
# 📚 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. สื่อสารกับผู้ใช้เป็นภาษาไทยที่กระชับ ตรงประเด็น และรายงานผลการทำงานอย่างชัดเจน
|