Skip to content
GitLab
Projects Groups Topics Snippets
  • /
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Register
  • Sign in
  • X X-Plane Mission Launcher
  • Project information
    • Project information
    • Activity
    • Labels
    • Members
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributor statistics
    • Graph
    • Compare revisions
  • Issues 0
    • Issues 0
    • List
    • Boards
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Artifacts
    • Schedules
  • Deployments
    • Deployments
    • Environments
    • Releases
  • Packages and registries
    • Packages and registries
    • Package Registry
    • Container Registry
    • Terraform modules
  • Monitor
    • Monitor
    • Incidents
  • Analytics
    • Analytics
    • Value stream
    • CI/CD
    • Repository
  • Wiki
    • Wiki
  • Snippets
    • Snippets
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • X-Plane SimDev
  • X-Plane Mission Launcher
  • Merge requests
  • !4

feat(core): modularize client-agent & main process with pure auto-detect and SQLite persistence

  • Review changes

  • Download
  • Patches
  • Plain diff
Merged Ahmad Nawawi requested to merge dev-nawawi into dev-master Nov 04, 2026
  • Overview 0
  • Commits 10
  • Pipelines 0
  • Changes 33

📌 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.exe secara manual.
  • Mendeteksi pointer registri resmi di %LOCALAPPDATA%\x-plane_install_12.txt (fallback ke x-plane_install_11.txt).
  • Memindai direktori umum di seluruh partisi drive aktif (C:\, D:\, E:\, F:\).
  • Fallback override via station_agent.ini hanya 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 perintah kCmdMap.
    • SimulatorConnector.cpp: Helper terpadu httpSend() untuk REST API SAR Plugin (:8087) dan Core Web API (:8086), serta pemeriksaan port isTcpPortListening.
    • ProcessManager.cpp: Pure auto-detect path, proses spawn CreateProcessW, 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.exe berukuran 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 /22 untuk menembus Windows Defender Firewall stateful filtering.
    • station/stationLogger.ts: Format waktu Jakarta WIB terpadu via getWibParts(), rotasi log fisik, dan buffer in-memory.
    • station/stationTcp.ts: Persistent bidirectional NDJSON TCP socket handling di port 49102 dengan deteksi offline seketika (< 5 ms).
    • station/stationUdp.ts: UDP broadcast discovery listener di port 8086.

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 trainees dan missions di userData/launcher.sqlite dengan 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, dan docs/references/sar-mission-plugin.md.

🔍 Rekam Jejak Commit (Commit History)

  1. 1969643 - feat(client-agent): integrate REST JSON forwarder and plugin health monitoring into native StationAgent
  2. 018ed99 - fix(client-agent): fix HTTP stream buffering and missionLoaded key in plugin health check
  3. 2c0cf91 - docs: translate project instructions to English
  4. 0cbb0ff - fix(missions): calibrate alpine search scenario to SAR terrain coordinates
  5. 0a44629 - refactor(renderer): modularize manage station page into dedicated components
  6. 672d94d - refactor(main): decouple station service into focused network and logging modules
  7. 738cf91 - refactor(client-agent): modularize C++ agent architecture and rebuild binary
  8. acd213e - fix(client-agent): restore pure auto-detection for X-Plane installation path
  9. 0ed9998 - refactor(core): streamline codebase and decouple station IPC handlers
  10. ee1c530 - docs: update AGENTS.md and technical project documentation

🛡️ Verifikasi Gerbang Kualitas (Quality Gates)

  • TypeScript Typecheck: npm run typecheck lolos 0 errors (node & web).
  • Linter (ESLint + Mermaid): npm run lint lolos 0 errors & 0 warnings.
  • Mermaid Diagrams: npm run lint:mermaid memvalidasi 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 build sukses membuat paket Electron (out/).
  • UI Verification: Terverifikasi langsung via windows-mcp pada desktop.
Assignee
Assign to
Reviewers
Request review from
Time tracking
Source branch: dev-nawawi