From 4194259a32377e4d7feb8b76543d18859a09ec09 Mon Sep 17 00:00:00 2001 From: CAtlas0784 Date: Tue, 13 Oct 2026 18:49:47 +0700 Subject: [PATCH] docs: update README with v1.1.4 changelog, features, and self-healing details --- README.md | 39 +++++++++++++++++++++++++++++++-------- 1 file changed, 31 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 749fcb6..fc9c1c3 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,10 @@ -# Escape Penacony Standalone 📱✨ -## ppSR All-in-One Server & Map Teleporter - Native Android Application +# ppSR & Escape Penacony 📱✨ +## Native Android All-in-One Server & Map Teleporter -**Escape Penacony Standalone** เป็นแอปพลิเคชัน Android แบบ All-in-One ที่รวมทั้ง **ตัวรันเซิร์ฟเวอร์จำลอง ppSR (Embedded Python 3.14)**, **ตัวอัปเดตเซิร์ฟเวอร์ตรงจากต้นทาง AFN**, **ระบบวาร์ปแผนที่ 85 ฉาก**, และ **เครื่องมือปรับแต่งเซิร์ฟเวอร์** ไว้ในแอปเดียวจบ **โดยไม่ต้องใช้สิทธิ์ Root, ไม่ต้องใช้ Shizuku และไม่ต้องติดตั้งแอป com.afn.ppSR แยกต่างหาก** +**ppSR & Escape Penacony** เป็นแอปพลิเคชัน Android แบบ All-in-One ที่รวมทั้ง **ตัวรันเซิร์ฟเวอร์จำลอง ppSR (Embedded Python 3.14)**, **ตัวอัปเดตเซิร์ฟเวอร์ตรงจากต้นทาง AFN**, **ระบบวาร์ปแผนที่ 86 ฉาก**, และ **เครื่องมือปรับแต่งเซิร์ฟเวอร์** ไว้ในแอปเดียวจบ **โดยไม่ต้องใช้สิทธิ์ Root, ไม่ต้องใช้ Shizuku และไม่ต้องติดตั้งแอป com.afn.ppSR แยกต่างหาก** - **Application ID / Package**: `com.catlas.escapepenacony` -- **เวอร์ชันล่าสุด (Current Version)**: `v1.1.1` +- **เวอร์ชันล่าสุด (Current Version)**: `v1.1.4` - **สถาปัตยกรรม (Architecture)**: Native Android (Kotlin + Jetpack Compose + Material Design 3 + Embedded Chaquopy Python 3.14) - **Target ABI**: `arm64-v8a` (Android 8.0+ / API 26+) @@ -32,15 +32,19 @@ ### 3. 🔄 ระบบอัปเดตคู่ (Dual Update System) - **📱 App Updater (อัปเดตตัวแอป APK):** - ตรวจสอบเวอร์ชันล่าสุดของแอปผ่าน GitHub Releases อัตโนมัติในพื้นหลังเมื่อเปิดแอป - - มีปุ่ม **"Check App Update"** ให้กดตรวจหาและดาวน์โหลดติดตั้ง APK เวอร์ชันใหม่ได้ทันทีจากในแอป + - มีปุ่ม **"Check App Update"** พร้อมปุ่มเลือก **Channel Selector** สลับระหว่าง: + - 🟢 **Latest (Stable):** รับเวอร์ชันเสถียร + - 🟡 **Pre-release (Beta):** รับเวอร์ชันทดสอบล่วงหน้า + - ดาวน์โหลดและติดตั้งไฟล์ APK อัปเดตได้ทันทีจากในแอป - **⚙️ ppSR Server Core Updater (อัปเดตไฟล์เซิร์ฟเวอร์):** - ซิงค์ตรงกับ File Garden (`VERSIONS` & `build.zip`) - ตรวจสอบเวอร์ชันที่ติดตั้งเทียบกับเวอร์ชันล่าสุดอย่างแม่นยำ (แสดงสถานะ "You are using the latest version" เมื่อเวอร์ชันตรงกัน) - - ระบบติดตั้งแบบ Staging ป้องกัน Zip Slip และสำรองไฟล์คอนฟิกผู้ใช้ (`persistent.json`, `config.json`) ให้อัตโนมัติ เซฟไม่หาย 100% + - ระบบติดตั้งแบบ Staging ป้องกัน Zip Slip และสำรองไฟล์คอนฟิกผู้ใช้ (`persistent.json`, `config.json`) โดยใช้วิธี **Smart Schema Merge** ไม่เขียนทับบล็อกข้อมูลตัวละคร (`avatar`) ข้อมูลไม่หายและไม่เกิดบั๊ก - เมนู **Select Version Archive** เลือกติดตั้งเวอร์ชันเก่าหรือใหม่ย้อนหลังได้อิสระ ### 4. 🗺️ ตัวเลือกโลกและวาร์ปแผนที่ (Escape Penacony Teleporter) -- ครอบคลุม **8 ดวงดาว 85 ฉาก/แผนที่** จาก `scenes.json` (Astral Express, Space Station, Jarilo-VI, Xianzhou Luofu, Penacony ฯลฯ) +- ครอบคลุม **8 ดวงดาว 86 ฉาก/แผนที่** จาก `scenes.json` (Astral Express, Space Station, Jarilo-VI, Xianzhou Luofu, Penacony, Amphoreus / Planarcadia ฯลฯ) +- **รองรับแมพ Beta ล่าสุด:** เพิ่มฉาก **Moment of Joy (Planarcadia Beta)** [Plane ID: 20572] พร้อมระบบ Scene Cache Auto-Bust - **ระบบค้นหาและฟิลเตอร์:** ค้นหาชื่อฉากหรือ Plane ID และแยกแท็กชัดเจน: - ⚔️ **Combat Ready**: มีเสา Calyx สำหรับต่อสู้ - 🗺️ **Safe Explore**: เสา Calyx ซ่อนที่ความลึก Y=-999999 ปลอดภัยจากการแครช @@ -49,6 +53,12 @@ - **Smart Teleport Flow:** หากเซิร์ฟเวอร์กำลังทำงาน ระบบจะหยุดชั่วคราว $\rightarrow$ เขียนไฟล์ `persistent.json` (UTF-8 No BOM) $\rightarrow$ รีสตาร์ตเซิร์ฟเวอร์ให้ใหม่อัตโนมัติ - **รองรับ 3 ภาษา:** สลับระหว่าง **ภาษาไทย (TH)**, **English (EN)**, และ **简体中文 (ZH)** ได้ทันที +### 5. 🛡️ ระบบป้องกันการแครชและซ่อมแซมตัวเอง (Self-Healing & Crash Guard) +- **SafeDict Runtime:** ห่อหุ้ม `Manager.persistent` ด้วย `SafeDict` คืนค่า Fallback Schema มาตรฐานทันทีหากตรวจพบคีย์ขาดหาย ป้องกัน `KeyError: 'avatar'` (Error 1001_1 / 1001_3) ไม่ให้เซิร์ฟเวอร์หลุด +- **Router Packet Isolation:** ดักจับ Unhandled Exception ใน Handler เพื่อไม่ให้คำขอเดี่ยวของเกมล่ม Thread `read_loop` +- **Persistent Auto-Healing:** ซ่อมแซมและตรวจสอบความสมบูรณ์ของ `persistent.json` อัตโนมัติทันทีที่เปิดแอป และก่อนเริ่มเซิร์ฟเวอร์ +- **Werkzeug Android Patch:** แก้ปัญหา `importlib.metadata.PackageNotFoundError` บน Android WSGI Dispatch Server + --- ## 🏗️ โครงสร้างโปรเจกต์ (Project Structure) @@ -108,7 +118,20 @@ Escape-penacony-standalone/ ไฟล์ APK ที่บิลด์เสร็จแล้วจะอยู่ที่: - `app/build/outputs/apk/release/app-release.apk` -- หรือตัวสำเนาที่ root โฟลเดอร์: `Escape-penacony-standalone-v1.1.0.apk` +- หรือตัวสำเนาที่ root โฟลเดอร์: `Escape-penacony-standalone-v1.1.4.apk` + +--- + +## 📜 บันทึกการเปลี่ยนแปลง (Changelog) + +### v1.1.4 (Build 7) +- **Critical Fix:** แก้ปัญหา Error 1001_1 และ 1001_3 (`KeyError: 'avatar'`) ใน `GetBasicInfoCsReq` ที่ทำให้ Thread `read_loop` เซิร์ฟเวอร์ปิดตัวลง +- **SafeDict Runtime:** ห่อหุ้ม `Manager.persistent` ด้วย `SafeDict` คืนค่า Fallback Schema อัตโนมัติ ป้องกัน `KeyError` สำหรับทุกคีย์ข้อมูลตัวละคร +- **Router Crash Guard:** ดักจับ Unhandled Exceptions ใน Packet Handler ไม่ให้เซิร์ฟเวอร์หลักล่ม +- **Auto-Heal Persistent Storage:** ตรวจสอบและซ่อมแซมไฟล์ `persistent.json` อัตโนมัติเมื่อเปิดแอปและก่อนสตาร์ทเซิร์ฟเวอร์ +- **Smart Update Migration:** ผสานคอนฟิกเดิมของผู้ใช้เข้ากับแม่แบบโครงสร้างที่สมบูรณ์ ป้องกันข้อมูลตัวละครสูญหายตอนอัปเดตเซิร์ฟเวอร์ +- **New Beta Scene:** เพิ่มฉาก "Moment of Joy (Planarcadia Beta)" [Plane ID: 20572] พร้อมระบบ Auto Cache-Bust +- **App Update Channel Selector:** เพิ่มตัวเลือกรับอัปเดตแอปช่องทาง Latest (Stable) หรือ Pre-release (Beta) ---