📌 Ringkasan Perubahan (Summary)
Merge Request ini mengintegrasikan seluruh penyempurnaan arsitektur utama dari cabang dev-nawawi ke dev-master, mencakup modularisasi Client Agent native C++, decoupling modul proses utama Electron (IPC, network, logger, persistent TCP), implementasi Pure Auto-Detection path instalasi X-Plane 12 nirkonfigurasi, persistensi database lokal SQLite (node:sqlite), serta pembaruan komprehensif seluruh dokumentasi teknis proyek.
🚀 Fitur & Peningkatan Utama (Key Highlights)
1. Pure Auto-Detection Path X-Plane 12 (Nirkonfigurasi)
-
Zero Configuration: Menghilangkan kewajiban operator memasukkan path instalasi
X-Plane.exesecara manual. - Mendeteksi pointer registri resmi di
%LOCALAPPDATA%\x-plane_install_12.txt(fallback kex-plane_install_11.txt). - Memindai direktori umum di seluruh partisi drive aktif (
C:\,D:\,E:\,F:\). - Fallback override via
station_agent.inihanya dibaca bila pengguna sengaja mengisinya.
2. Modularisasi Biner Native C++ Client Agent (client-agent/)
- Memecah arsitektur C++ Win32 menjadi modul terfokus sesuai prinsip Single Responsibility:
-
StationAgent.cpp: Event loop WinMain tanpa konsol GUI (/SUBSYSTEM:WINDOWS), tabel lookup perintahkCmdMap. -
SimulatorConnector.cpp: Helper terpaduhttpSend()untuk REST API SAR Plugin (:8087) dan Core Web API (:8086), serta pemeriksaan portisTcpPortListening. -
ProcessManager.cpp: Pure auto-detect path, proses spawnCreateProcessW, dan auto-dismissal modal dialog simulator (dismissXPlaneModalIfForeground). -
AgentConfig.cpp: Parser INI dengan fallback auto-detect penuh. -
UdpSocket.cpp,Json.cpp,Util.cpp.
-
- Biner terkompilasi
StationAgent.exeberukuran sangat ringan (~388 KB) dan lulus kompilasi MSVC x64 dengan flag peringatan ketat/W4 /WX /O2.
3. Dekopling Modul Proses Utama Electron (src/main/)
- Memisahkan IPC handler dari orchestration service:
-
station/stationIpc.ts: Decoupled IPC handlers (stations:*). -
station/stationService.ts: Central state orchestration. -
station/stationNetwork.ts: Dual-subnet LAN broadcast & unicast sweep hingga/22untuk menembus Windows Defender Firewall stateful filtering. -
station/stationLogger.ts: Format waktu Jakarta WIB terpadu viagetWibParts(), rotasi log fisik, dan buffer in-memory. -
station/stationTcp.ts: Persistent bidirectional NDJSON TCP socket handling di port49102dengan deteksi offline seketika (< 5 ms). -
station/stationUdp.ts: UDP broadcast discovery listener di port8086.
-
4. Pangkalan Data Lokal SQLite Persisten (node:sqlite)
- Menggunakan engine native Node.js v22
DatabaseSync(src/main/db/dbService.ts) tanpa dependensi build pihak ketiga. - Menyimpan tabel
traineesdanmissionsdiuserData/launcher.sqlitedengan auto-migration dan starter seed data. - Menghadirkan halaman mandiri terdedikasi:
/trainees(Data Taruna) dan/missions(Data Misi SAR).
5. Kalibrasi Skenario SAR & Dokumentasi Komprehensif
- Menyelaraskan skenario Alpine Search (
alpine_search_001) dengan elevasi terrain riil Pegunungan Alpen. - Memperbarui
AGENTS.md,README.md,client-agent/README.md,docs/architecture.md,docs/roadmap.md,docs/laporan-rnd.md, dandocs/references/sar-mission-plugin.md.
🔍 Rekam Jejak Commit (Commit History)
-
1969643-feat(client-agent): integrate REST JSON forwarder and plugin health monitoring into native StationAgent -
018ed99-fix(client-agent): fix HTTP stream buffering and missionLoaded key in plugin health check -
2c0cf91-docs: translate project instructions to English -
0cbb0ff-fix(missions): calibrate alpine search scenario to SAR terrain coordinates -
0a44629-refactor(renderer): modularize manage station page into dedicated components -
672d94d-refactor(main): decouple station service into focused network and logging modules -
738cf91-refactor(client-agent): modularize C++ agent architecture and rebuild binary -
acd213e-fix(client-agent): restore pure auto-detection for X-Plane installation path -
0ed9998-refactor(core): streamline codebase and decouple station IPC handlers -
ee1c530-docs: update AGENTS.md and technical project documentation
🛡 ️ Verifikasi Gerbang Kualitas (Quality Gates)
-
TypeScript Typecheck: npm run typechecklolos 0 errors (node&web). -
Linter (ESLint + Mermaid): npm run lintlolos 0 errors & 0 warnings. -
Mermaid Diagrams: npm run lint:mermaidmemvalidasi 6 diagram pada 5 berkas markdown tanpa error. -
MSVC C++ Build: build-cpp.bat(cl.exe /W4 /WX /O2 /SUBSYSTEM:WINDOWS) lolos 0 errors, 0 warnings. -
Production Bundle Build: npm run buildsukses membuat paket Electron (out/). -
UI Verification: Terverifikasi langsung via windows-mcppada desktop.