Files
G-Launcher/Doc/upstream-merge-audit.md
T

30 lines
4.1 KiB
Markdown

# 🔍 ผลการตรวจสอบการผสานต้นน้ำ (Upstream Merge & Provenance Audit)
เอกสารนี้บันทึกที่มา (Provenance) ของโค้ดทุกส่วนใน G-Launcher โดยแจกแจงอย่างชัดเจนว่าฟีเจอร์ใดนำมาจาก `Firefly-Shelter/Firefly_Launcher` หรือ `horoyoi-san/game-Launcher`
---
## 1. ตารางแจกแจงที่มาของไฟล์และฟังก์ชัน (File Attribution Matrix)
| ไฟล์ / แพ็กเกจใน G-Launcher | โครงการต้นแบบ | เหตุผลทางวิศวกรรมและสิ่งที่ปรับปรุง |
| :--- | :--- | :--- |
| `frontend/src/` (UI Pages & Components) | **Firefly Launcher** | ดีไซน์ทันสมัย เรียบหรู รองรับ DaisyUI 5 และ TailwindCSS v4 |
| `internal/git-service/git_runtime.go` | **Horoyoi-san** | นำระบบดาวน์โหลด Portable MinGit x64 อัตโนมัติมาใช้ เพื่อรองรับ Zero-Dependency |
| `internal/fs-service/game-selection.go` | **Horoyoi-san** | นำระบบ Atomic Write ด้วย Windows API `MoveFileEx` มาใช้เพื่อป้องกันไฟล์คอนฟิกเสียหาย |
| `internal/diff-service/ziff.go` | **Horoyoi-san** | นำ Wrapper สำหรับเครื่องมือ `zift.exe` มาใช้รองรับไฟล์แพตช์นามสกุล `.ziff` |
| `internal/language-service/thai-patch.go`| **Horoyoi-san** | นำเอ็นจินแก้ไขไฟล์ไบนารี `ExcelData` พร้อมระบบสำรอง `.backup` มาใช้สำหรับม็อดภาษาไทย |
| `scripts/launcher-release.mjs` | **Horoyoi-san** | นำสคริปต์คำนวณเวอร์ชัน SemVer และสร้าง `latest.json` มาใช้ใน CI/CD Release Pipeline |
| `frontend/public/locales/th.json` | **G-Launcher (GaCy)** | เขียนคำแปลภาษาไทยฉบับสมบูรณ์สำหรับทุกหน้าจอ ปุ่ม และเมนูของ Launcher |
| `scripts/bootstrap.ps1` | **G-Launcher (GaCy)** | พัฒนาระบบ Auto-Updater & Local Build ที่ทำงานแบบ **Temp Isolation + Rollback + Purge Temp** |
| `update-and-build.bat` | **G-Launcher (GaCy)** | พัฒนาสคริปต์คลิกเดียวสำหรับผู้ใช้ทั่วไปเพื่ออัปเดตและคอมไพล์โดยไม่ต้องตั้งค่าใดๆ |
| `internal/git-service/launcher.go` | **G-Launcher (GaCy)** | ผสานระบบตรวจสอบผ่าน Manifest SHA-256 และระบบคอมไพล์จากซอร์สโค้ดใน Temp เข้าด้วยกัน |
---
## 2. การจัดการ Naming และ Module Rebranding
เพื่อปฏิบัติตามคำแนะนำของ Horoyoi-san (*"ส่วนชื่อที่เป็น sunbringer หรือชื่อผมค่อยไปเปลี่ยนทีหลังนะ"*):
1. **Module Name:** เปลี่ยนชื่อ Go Module หลักเป็น `g-launcher` ใน `go.mod`
2. **User-Facing Branding:** เปลี่ยนชื่อหน้าต่าง, Title, ข้อความใน UI, และ Metadata ของ Windows Application Manifest เป็น **G-Launcher**
3. **Internal Identifiers:** อนุรักษ์ชื่อโครงสร้างข้อมูลและโปรโตคอลภายในที่จำเป็นต่อการเชื่อมต่อกับระบบเดิมไว้ เพื่อไม่ให้กระทบต่อ Wails Bindings และ Protobuf Serialization