gigafibre-fsm/docs/features
louispaulb 2c3d7e9814 Pont legacy : coords GPS fiables (delivery→SL→RQA→Mapbox) + routage routier réel (Mapbox Matrix)
Pont (legacy-dispatch-sync.js) :
- Import des coordonnées par job via cascade : table legacy `delivery` (point de service exact,
  JOIN ticket.delivery_id) > Service Location ERPNext > géocodage RQA > géocodage Mapbox.
  Validation bornes Québec (coord()). Couverture 153/172 (89%).
- Géocodage RQA corrigé : retrait du générique de voie (Rue/Rang/Chemin absent de
  odonyme_recompose_normal) + code postal non accolé au terme (sinon ilike ne matche jamais).
- Repli Mapbox geocoding pour rues trop récentes pour le RQA (MAPBOX_TOKEN).
- Backfill + UPGRADE : coords delivery écrasent des coords SL moins précises (jamais l'inverse).
- Comptabilité honnête : vérifie r.ok sur create/update (erp ne throw pas) → errors + error_samples.
- Verrou de sérialisation sync() : tick + runs manuels ne se chevauchent plus (frappe_pg).
- Subject tronqué à 140 (champ Data) → corrige CharacterLengthExceededError sur jobs sans SL.
- Observabilité : coord_src tally + error_samples dans le résumé.

Ops Planification (éditeur de journée) :
- travelBetween() consulte une matrice Mapbox Matrix chargée à l'ouverture (loadDayRoute) →
  temps de trajet ROUTIERS RÉELS ; réordonnancement instantané sans nouvelle requête.
  Repli haversine si Mapbox indispo. Indicateur 🚗 réel vs 📏 vol d'oiseau.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-06 14:43:34 -04:00
..
billing-payments.md feat(portal): passwordless magic-link login — retire ERPNext /login 2026-04-22 13:25:28 -04:00
cpe-management.md docs: bring all docs in sync with the May 2026 reality 2026-05-05 20:10:40 -04:00
customer-portal.md fix(tech): restore Gemini-native scanner + port equipment UX into ops 2026-04-22 15:56:38 -04:00
dispatch.md docs: bring all docs in sync with the May 2026 reality 2026-05-05 20:10:40 -04:00
flow-editor.md docs: reorganize into architecture/features/reference/archive folders 2026-04-22 11:51:33 -04:00
legacy-dispatch-bridge.md Pont legacy : coords GPS fiables (delivery→SL→RQA→Mapbox) + routage routier réel (Mapbox Matrix) 2026-06-06 14:43:34 -04:00
README.md feat(dispatch): pont legacy(osTicket)→Dispatch Job pour les tickets « Tech Targo » 2026-06-06 09:33:53 -04:00
roster.md roster(planif/dispatch): On-Hold bloqué, alerte hors-quart, deep-link Dispatch, aviser client (#58) 2026-06-06 09:13:17 -04:00
tech-mobile.md fix(tech): restore Gemini-native scanner + port equipment UX into ops 2026-04-22 15:56:38 -04:00
vision-ocr.md docs: reorganize into architecture/features/reference/archive folders 2026-04-22 11:51:33 -04:00

Features

One doc per business capability. Each describes the user-facing behaviour, the ERPNext doctypes touched, the API endpoints involved, and the failure modes. Open the one that matches the feature you're changing.

Doc Owns
dispatch.md Ops dispatch board: drag-and-drop scheduling, tech assignment with skill tags, travel-time optimization, magic-link SMS issuance, live SSE updates
roster.md Planification (Roster AI): grille hebdo ressources × jours, garde live, solveur OR-Tools, scoring priorité (maîtrise⊕vitesse⊕coût), panneau « jobs à assigner » (drag-drop + aperçu occupation), timeline ressource, dialogues d'impact, booking roster-aware
legacy-dispatch-bridge.md Pont legacy→dispatch: tire régulièrement les tickets osTicket « Tech Targo » (staff 3301) de la MariaDB legacy → Dispatch Job ERPNext (idempotent via legacy_ticket_id), mapping client/Service Location/type/date, endpoints preview/run, scheduler opt-in
tech-mobile.md Field tech app (three surfaces: SSR /t/{jwt}, transitional apps/field/, unified /ops/#/j/*). Native camera → Gemini scanner, equipment install/remove, JWT auth, offline queue
customer-portal.md Passwordless customer self-service at portal.gigafibre.ca: magic-link email (24h JWT), invoice + ticket view, Stripe-linked payment flows
billing-payments.md Stripe integration (Checkout, Billing Portal, webhook), subscription lifecycle, invoice generation, payment reconciliation, PPA (Plan de paiement automatique), Klarna BNPL
cpe-management.md CPE fleet: GenieACS (TR-069) provisioning + diagnostics, TP-Link XX230v / Deco deep probe via modem-bridge, 3-way diagnostic-swap workflow
vision-ocr.md Camera-based scanning via Gemini 2.5 Flash — barcode, equipment label, invoice OCR. Hub endpoints /vision/*, useScanner composable, offline queue, AI_API_KEY rotation policy, ERPNext relationships triggered by a scan
flow-editor.md Agent-flows module: Flow Template + Flow Run doctypes, trigger catalogue, step types, runtime contract, UI editor at /ops/#/agent-flows

Cross-module map: see ../architecture/module-interactions.md for the full call graph + sequence diagrams.

Back to docs/README.md · roadmap.md