gigafibre-fsm/apps/ops/src
louispaulb d10bb521f7 feat(ops): wireless (airOS/Cambium) Do Stuff parity — n8n bridge + panel
Last F Do Stuff gap was wireless CPEs (signal, signal-AP, CCQ, TX/RX rate,
airMAX capacity). Empirically confirmed the hub cannot reach the CPE mgmt
network (all probes timed out) — so, exactly like the fiber TP-Link path,
this goes through n8n.

- hub: ticket-collab.airosSignal({serial|ip}) + GET /collab/airos-signal.
  Resolves mgmt IP/login from Service Equipment, calls n8n webhook
  get_signal_airos (mirror of F device_ajax/airos_ac_ajax.php: airOS auth +
  status.cgi parse), normalizes signal/signalAp/ccq/tx-rx rate/airMAX
  capacity/model/version/uptime. Degrades gracefully: 404 -> registered:false.
- ops: EquipmentDetail shows a "Do Stuff en direct (sans-fil)" panel for
  wireless equipment (isWireless heuristic), rendering the same tiles + feeding
  "Copier pour le ticket". Shows an "en attente" note until the webhook exists.

Verified: hub live returns {ok:false,registered:false} for a real CPE (SN-772);
SPA build clean, leak-check 0 secrets, deployed (index.c4ccc86f.js). The one
remaining hop is creating the n8n get_signal_airos workflow (spec in docs).

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-07-20 14:22:37 -04:00
..
api feat(geofence): réconciliation véhicule — assistant / mauvaise affectation (suggestions) 2026-07-20 13:28:40 -04:00
boot feat(ops): dispatch auto complet + perf Boîte/rapports + fix session 2026-07-02 08:49:35 -04:00
components feat(ops): wireless (airOS/Cambium) Do Stuff parity — n8n bridge + panel 2026-07-20 14:22:37 -04:00
composables chore(reconcile): commit MES hunks déployés dans les fichiers co-édités (split via git apply --cached) 2026-07-19 20:06:47 -04:00
config feat(ops): « / » = accueil universel adapté au rôle (step 3/3) + consolidation Thème/Équipe→Paramètres 2026-07-19 15:35:33 -04:00
css fix(ops/mobile): Network GPON tient sur mobile (onglets défilants + arbre enroulé + boutons tactiles) 2026-07-04 20:56:11 -04:00
data ops : types de job = source unique (config/job-types) 2026-07-07 21:27:32 -04:00
layouts feat(assistant): désambiguïsation client via options cliquables (un seul champ) 2026-07-20 08:54:53 -04:00
modules fix(realtime): l'app terrain et le panneau pannes SURVIVENT aux redéploiements du hub 2026-07-19 12:26:37 -04:00
pages chore(reconcile): commit MES hunks déployés dans les fichiers co-édités (split via git apply --cached) 2026-07-19 20:06:47 -04:00
router feat(ops): « / » = accueil universel adapté au rôle (step 3/3) + consolidation Thème/Équipe→Paramètres 2026-07-19 15:35:33 -04:00
stores chore(ops): supprime le sous-système dispatch MORT (23 fichiers, 0 importeur) 2026-07-19 10:32:18 -04:00
utils ticket panel: décodage entités HTML + fil unifié + lien client cherchable 2026-07-07 07:09:25 -04:00
App.vue fix(ops): overlay accès — message exact « n'a pas pu charger » + détail erreur + piste extension 2026-07-03 17:31:41 -04:00