Skip to content

Community modules: SIA/VAC + manifest-driven UI (v1.9.1d)#112

Open
4SLSL wants to merge 29 commits into
lyestarzalt:mainfrom
4SLSL:community-modules-1.9.1d
Open

Community modules: SIA/VAC + manifest-driven UI (v1.9.1d)#112
4SLSL wants to merge 29 commits into
lyestarzalt:mainfrom
4SLSL:community-modules-1.9.1d

Conversation

@4SLSL

@4SLSL 4SLSL commented May 27, 2026

Copy link
Copy Markdown

Summary

This PR introduces an optional community module system for X-Dispatch, allowing features to ship as bundled or externally installed packages without bloating the core app boot path.

  • Module manager: install from trusted GitHub catalog or ZIP, enable/disable at runtime, persisted state under userData/community-modules/
  • SIA France (VAC charts): optional bundled module — settings tab, airport VAC tab, map overlay, vac-pdf protocol
  • Phase 2a: manifest-driven settings/airport tabs via contributions + moduleUiRegistry.tsx
  • Phase 2b (skeleton): renderer bundle path resolution; execution not wired yet
  • Docs: registry/MODULES.md for community authors (packaging, current limitations, core wiring requirements)
  • CI: release workflow rerun hardening, ESLint fixes for modules settings UI

Source: 4SLSL/x-dispatch-modules@community-modules-1.9.1d (tag v1.9.1d on 4SLSL/x-dispatch, package.json1.9.1-d).

Note: Multiplayer / JFS4XD is intentionally out of scope for this PR and will land separately.

Test plan

  • Settings → Modules: enable/disable sia-france, verify VAC settings tab and airport VAC tab
  • Map: toggle VAC overlay on a French airport (LFxx)
  • Install module from ZIP (valid x-dispatch-module.json at root)
  • minAppVersion rejection for modules requiring newer app
  • Smoke test core app without any modules enabled

Notes for reviewers

  • Toolbar/map hook IDs are still registered in src/lib/modules/registry.tsx (manifest declares intent; core wires behavior)
  • Happy to split into smaller PRs if preferred

4SLSL and others added 24 commits May 17, 2026 10:29
- Indexation eAIP / amendements VAC, overlay MapLibre, onglet VAC LF*
- Import MBTiles OACI et couches vectorielles (phase 2)
- Téléchargement Magento GraphQL avec compte SIA (identifiants chiffrés)
- Script setup-private-fork.sh pour publier sur un fork GitHub privé

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Use extractArchive (yauzl) for .zip instead of 7-Zip, normalize Windows
paths, surface extraction errors in Settings, and add a 2h timeout.

Co-authored-by: Cursor <cursoragent@cursor.com>
The full eAIP archive ships regional packages as nested .7z files; extract
them before indexing. Relax LF* PDF detection under AD/ and Atlas-VAC paths,
fail install when no VAC are indexed, and reload manifest for status checks.

Co-authored-by: Cursor <cursoragent@cursor.com>
Corrige le rechargement infini React Query, la recherche VAC par ICAO,
la résolution des chemins PDF et l’aperçu PNG dans VacTab.

Co-authored-by: Cursor <cursoragent@cursor.com>
Squirrel rejette les suffixes alphabétiques sans tiret dans le numéro de version.

Co-authored-by: Cursor <cursoragent@cursor.com>
… (v1.8.4b)

Sert les PDF depuis le disque, résout les chemins après extraction eAIP,
et remplace pdf.js par un aperçu PDF natif dans l’onglet aérodrome.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
….4c)

La réindexation ne remplace plus l’index si 0 PDF trouvé, récupère les
dossiers d’extraction manquants et indexe tout PDF LF**** sous l’eAIP.

Co-authored-by: Cursor <cursoragent@cursor.com>
Indexe les planches sous Atlas-VAC/PDF_AIPparSSection/VAC/AD (ex. AD-2.LFPA.pdf)
dans vacIndex et les fiches eAIP AD dans aipIndex, avec affichage des deux compteurs.

Co-authored-by: Cursor <cursoragent@cursor.com>
Affiche les cartes VAC directement dans l'onglet sans lecteur PDF externe,
via pdf.js, cache PNG et repli iframe vac-pdf:// avec zoom.

Co-authored-by: Cursor <cursoragent@cursor.com>
Conserve les commits SIA du fork (VAC, eAIP) tout en récupérant les
correctifs map/main, notifications de mise à jour et la release 1.9.0.

Co-authored-by: Cursor <cursoragent@cursor.com>
Intègre le système de modules communautaires, déplace toute la logique SIA
vers src/modules/sia-france/ et n’active IPC, protocoles et overlays qu’à
l’activation du module dans Réglages → Modules.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
- Sidebar Paramètres : entrée VAC / SIA par module activé
- Import VAC ZIP/dossier pour tout ICAO (4 lettres)
- Suppression fond OACI, MBTiles et overlays vectoriels
- Onglet VAC aérodrome pour tous les aérodromes

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Centralise les onglets réglages et aéroport dans moduleUiRegistry,
déclarés via contributions du manifest plutôt que des tableaux statiques.

Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Déplace SIA/VAC dans sia-france/renderer, registre IPC renderer bundle,
version 1.9.1a et workflow release avec version personnalisée.

Co-authored-by: Cursor <cursoragent@cursor.com>
4SLSL and others added 2 commits May 27, 2026 08:51
Avoid failing when custom_version already matches package files by allowing
no-op commit and reusing existing tag on rerun.

Co-authored-by: Cursor <cursoragent@cursor.com>
Community module architecture docs, CI lint fixes, and release workflow
hardening. Excludes JFS4XD multiplayer (separate future release).

Co-authored-by: Cursor <cursoragent@cursor.com>
@4SLSL
4SLSL force-pushed the community-modules-1.9.1d branch from 88bd6dd to 0dcd4a1 Compare May 27, 2026 06:52
@4SLSL 4SLSL changed the title Community modules (SIA + JFS4XD) and manifest-driven UI — v1.9.1d Community modules: SIA/VAC + manifest-driven UI (v1.9.1d) May 27, 2026
4SLSL and others added 3 commits May 27, 2026 08:54
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Co-authored-by: Cursor <cursoragent@cursor.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: Backlog

Development

Successfully merging this pull request may close these issues.

1 participant