This website requires JavaScript.
17e85d88a9
feat(dispatch-agent): lecteur check_service — diagnostic à distance (modem/signal) avant un déplacement
feat/dispatch-legacy-writeback
louispaulb
2026-07-19 21:17:49 -0400
0372176fc8
feat(assistant): vrai CHAT multi-tours — on peut répondre aux questions de l'assistant
louispaulb
2026-07-19 21:07:55 -0400
54fdc22c97
feat(dispatch-agent): lecteur resource_availability — « a-t-on la ressource ? » avant de proposer
louispaulb
2026-07-19 20:59:49 -0400
2b5c1c6d07
fix(skill-resolver): diagnostic/panne → réparation (plus « fibre » forcé en installation)
louispaulb
2026-07-19 20:57:16 -0400
f97152c831
feat(dispatch-agent): diagnostic interactif (raison→compétence→dispo) + adresse libre avant de créer
louispaulb
2026-07-19 20:41:42 -0400
6022cdf5fb
fix(dispatch): nextJobRef lisait r.data (objet) au lieu de r.data.data → collisions ticket_id → « Failed to create dispatch job »
louispaulb
2026-07-19 20:36:50 -0400
c4c4cc6575
feat(ops): « Allouer un technicien » = chat IA (Gemini) avec typeahead client/adresse
louispaulb
2026-07-19 20:30:48 -0400
788d969090
chore(reconcile): commit MES hunks déployés dans les fichiers co-édités (split via git apply --cached)
louispaulb
2026-07-19 20:06:47 -0400
60f6d71615
chore(ops): commit ThemeEditor.vue (extrait de l'ex-page /theme, consolidé dans Paramètres)
louispaulb
2026-07-19 20:00:39 -0400
4718d025f3
improve(ops): accueil = tableau VIVANT — rafraîchit les compteurs (60 s + retour d'onglet)
louispaulb
2026-07-19 19:56:16 -0400
7371c1b446
improve(booking): /book libre-service — modifier ou annuler un RDV confirmé
louispaulb
2026-07-19 17:04:14 -0400
81af69e68c
improve(booking): SMS de confirmation transactionnel quand le client réserve via /book
louispaulb
2026-07-19 16:41:12 -0400
6b9f7b41fa
improve(booking): confirmation /book → « Ajouter à mon calendrier » (.ics universel)
louispaulb
2026-07-19 16:38:08 -0400
f8af4235fb
improve(ops): accueil — détecte les ARRIVÉES EN RETARD sur les interventions du jour
louispaulb
2026-07-19 16:34:28 -0400
0d80c323f0
improve(ops): accueil — chiffres HONNÊTES depuis les vraies sources (pas de proxy trompeur)
louispaulb
2026-07-19 16:04:57 -0400
23f0f72731
feat(ops): « / » = accueil universel adapté au rôle (step 3/3) + consolidation Thème/Équipe→Paramètres
louispaulb
2026-07-19 15:35:33 -0400
99f44daf31
feat(booking): page /book « jamais bloquée » — repli disponibilités libres quand aucun créneau
louispaulb
2026-07-19 15:29:18 -0400
e7b94947cf
feat(dispatch): « Proposer au client » directement dans le flux Dispo par motif (in-ticket/conversation)
louispaulb
2026-07-19 15:25:37 -0400
dbbcd721e4
feat(ops): accueil « Mon aujourd'hui » v2 — chiffres exacts + état terrain live + actions réelles
louispaulb
2026-07-19 15:10:07 -0400
386e36f863
feat(ops): accueil « Mon aujourd'hui » adapté au rôle en tête du tableau de bord
louispaulb
2026-07-19 14:58:33 -0400
b99cbdd6cd
feat(dispatch): NL « Proposer un RDV au client » (agent→client, sur staff-agent déployé)
louispaulb
2026-07-19 14:51:51 -0400
21d6538e33
feat(booking): page client Gigafibre à 2 modes (choisir un créneau / proposer 3 dispos)
louispaulb
2026-07-19 14:40:13 -0400
1fc0e903eb
feat(booking): endpoints publics Option A (choisir un créneau proposé)
louispaulb
2026-07-19 14:34:00 -0400
777794cd28
fix(booking): garde anti-clobber F sur les confirmations de RDV + hold exclusif 5 min
louispaulb
2026-07-19 14:30:40 -0400
89f7efc4ba
fix(realtime): l'app terrain et le panneau pannes SURVIVENT aux redéploiements du hub
louispaulb
2026-07-19 12:26:37 -0400
187115cb56
fix(realtime): les mises à jour live SURVIVENT aux redéploiements du hub (reconnexion + resync SSE)
louispaulb
2026-07-19 12:19:43 -0400
daeb86008b
chore(ops): supprime le sous-système dispatch MORT (23 fichiers, 0 importeur)
louispaulb
2026-07-19 10:32:18 -0400
da9c918fa9
feat(ux): gate ONU device actions + delete behind manage_settings, own block
louispaulb
2026-07-19 10:30:45 -0400
c1a240023b
feat(field-app): refonte accessibilité terrain (gros texte/contraste/cibles + flux guidé)
louispaulb
2026-07-19 10:23:19 -0400
5dd38eb79b
feat(gps): vue « appareil GPS → technicien » (assignation inverse) + non-associés
louispaulb
2026-07-19 08:42:32 -0400
48faeba72b
fix(dispatch): coords job EXACTES (fibre par service) + hardening distances auto-dispatch
louispaulb
2026-07-19 08:36:08 -0400
16da087e18
fix(geofence): arrivées manquées — passe TRACE rétrospective + dwell persisté + rayon 250m
louispaulb
2026-07-19 08:17:31 -0400
9cb9739d3f
feat(maps): zéro Mapbox (app terrain → MapLibre/OSM) + meilleur trajet trafic
louispaulb
2026-07-19 08:01:00 -0400
218bef8c5a
refactor(olt-ops): dédup plomberie n8n + effets pilotés par le spec ACTIONS
louispaulb
2026-07-19 07:38:48 -0400
23dde4ecf0
feat(ops): native Payment Method/Arrangement + VoIP Line sections + G3 Raisecom SNMP writes
louispaulb
2026-07-18 22:39:59 -0400
3d4700decf
feat(ops): native Dispatch Job/Communication detail + ONU write parity (Phase 1-2)
louispaulb
2026-07-18 22:04:19 -0400
cd25fa2504
fix(dispatch): double-assign F + médias terrain dans le ticket + deep links natifs
louispaulb
2026-07-18 18:02:37 -0400
ef7b51399d
refactor(planif): « Bloquer du temps » = UN job/ticket qui occupe la timeline, priorité = curseur dur/souple
louispaulb
2026-07-16 18:38:17 -0400
ba6967adc6
refactor(planif): fusion « Réserver du temps » + « Bloquer / job générique » en UN dialogue
louispaulb
2026-07-16 14:52:12 -0400
9c1b578d5d
feat(dispatch): provisioning identites enrichi Employee+Authentik (multi-courriels)
louispaulb
2026-07-16 14:50:23 -0400
e8fd69c6f8
feat(planif): pause indéfinie STAGÉE → visible tout de suite, commise au Publier (retire quarts futurs + relève jobs)
louispaulb
2026-07-16 13:33:08 -0400
e98b21ba0a
feat(dispatch): provisioning identites depuis legacy staff (convergence ledger)
louispaulb
2026-07-16 13:23:23 -0400
60da7a01da
feat(dispatch): tech-history resolue via identite canonique (dynamique)
louispaulb
2026-07-16 13:14:30 -0400
947595f086
feat(planif): résumé de Publier complet + groupé par technicien
louispaulb
2026-07-16 13:06:05 -0400
9d568986fc
fix(planif): afficher les congés en attente dans le résumé de Publier
louispaulb
2026-07-16 12:29:31 -0400
6761c9e05a
feat(dispatch): ledger historique d assignation par tech (ops_tech_ticket_history)
louispaulb
2026-07-16 11:58:03 -0400
e43f04d3e5
feat(dispatch): write-back unifie Publier vers F + tickets perimes natifs
louispaulb
2026-07-16 10:49:28 -0400
956e96b8bc
chore(hub): sync repo with deployed hub state (uncommitted prod work)
louispaulb
2026-07-16 10:49:17 -0400
e0e1da1c01
fix(dispatch): lever le cap 50 sur les techniciens (occupation + charge)
louispaulb
2026-07-15 07:19:15 -0400
c7c9f81364
fix(planif): Suggérer = jobs DUS le jour sélectionné · jour partagé entre vues (session) · quarts brouillon reflétés au calendrier mois
louispaulb
2026-07-14 22:17:12 -0400
48edede793
refactor(planif): désencombrer l'en-tête selon UX_REFACTORING_PROMPT (PL1/PL2/PL4/PL5/PL6)
louispaulb
2026-07-14 20:56:34 -0400
8e7838d1fb
docs: prompt réutilisable de refactor UX (UX_REFACTORING_PROMPT.md)
louispaulb
2026-07-14 19:27:51 -0400
718698f0d0
feat(ops): gate ticket activation on pending subs + show consolidated proration preview
louispaulb
2026-07-10 16:24:27 -0400
e1d3212bf7
feat(ops): ticket Statut control (Complété/Annulé) + sale activation → draft invoice
louispaulb
2026-07-10 15:04:08 -0400
28a5789fe0
fix(ops): tickets list returned 0 — Issue query used fields ERPNext v16 rejects
louispaulb
2026-07-10 14:39:07 -0400
e8dc86e058
feat(ops): one-click identity linking (Authentik ↔ Employee ↔ Tech), merge-safe
louispaulb
2026-07-10 14:27:30 -0400
6826f11587
fix(ops): dedupe removes inactive duplicate accounts, not just never-logged-in
louispaulb
2026-07-10 14:16:10 -0400
d0f899cf6d
feat(ops): staff console — surface dup accounts + per-user schedule deep-link
louispaulb
2026-07-10 13:44:56 -0400
11c53c956a
feat(ops): staff console — one-click dedupe of duplicate Authentik accounts
louispaulb
2026-07-10 13:33:22 -0400
148cb9a320
fix(ops): staff recon — alias-aware employee, dedupe Authentik accounts, link-not-duplicate
louispaulb
2026-07-10 13:20:09 -0400
b43f092da3
feat(ops): staff reconciliation console (Authentik ↔ System User/Employee/Tech)
louispaulb
2026-07-10 13:01:33 -0400
dec8321823
feat(ops): unified staff identity (label + email aliases + tech link + departed flag)
louispaulb
2026-07-10 12:22:48 -0400
14530787bb
consolidate uncommitted multi-session work (NL staff-agent, user avatars/profil, HelpHint, ticket detail modules, skill icons, hub agent/payments/sync)
louispaulb
2026-07-09 20:43:50 -0400
cfcd7c04cc
feat(ops/planif): add JobPool + useJobPool + RouteMap route/explode
louispaulb
2026-07-09 20:30:36 -0400
9c49054b8d
feat(ops): quick filler job from cell menu (blocks tech from dispatch)
louispaulb
2026-07-09 19:58:18 -0400
9145624949
feat(ops): unify tech skill/cadence editor + merge team tools
louispaulb
2026-07-09 14:57:01 -0400
04fb52426f
fix(ops): slot finder respects untimed load (humanly possible)
louispaulb
2026-07-09 14:43:21 -0400
7df6ad30e3
fix(ops): accurate occupancy denominator + editable skills + support filter
louispaulb
2026-07-09 14:27:23 -0400
1552df3984
Campaign detail: fix customer link pointing to ERPNext instead of Ops
louispaulb
2026-07-09 13:57:54 -0400
2a9f201826
Events: personal rsvp_url per-language, address field, logo spacing
louispaulb
2026-07-09 13:26:45 -0400
cab1a9c94a
Events: wire mass-send button + confirmation dialog into the UI
louispaulb
2026-07-09 12:41:34 -0400
929ef73d93
Events: real mass send (campaign-integrated) + white email header bar
louispaulb
2026-07-09 12:39:50 -0400
3489576212
Planif: congés publish-required, menu de cellule partagé, vue Mois
louispaulb
2026-07-09 11:32:54 -0400
0853947c43
Events: remove RSVP customer-number field; fuzzy multi-field name audience filter
louispaulb
2026-07-09 11:26:59 -0400
d26722f048
Events: editable (Unlayer) email template, "Tous" includes résiliés, realtime picker
louispaulb
2026-07-09 11:05:31 -0400
3aa59adec3
Events: creation, capacity cap, language-tagged attachments, additive audience list
louispaulb
2026-07-09 10:10:43 -0400
893ac8cd4a
Déclutter: primitives réutilisables + palette ⌘K + Planif épurée
louispaulb
2026-07-09 06:53:24 -0400
f4a6d07a8b
feat(ops): reason → skill → skill-aware availability module
louispaulb
2026-07-08 18:33:30 -0400
6bf323b18e
fix(ops): champ d'assignation — échelle d'implication + bascules « moi » + fix lecture équipe
louispaulb
2026-07-08 17:40:36 -0400
2f81cff892
feat(ops): champ d'assignation MULTIFONCTION (À / CC / #) partagé
louispaulb
2026-07-08 16:49:57 -0400
d15dec5e6c
infra: deploy.sh renders ops nginx.conf from versioned template w/ server-side token injection
louispaulb
2026-07-08 15:59:48 -0400
844eff9a49
fix: capacité réelle (hors congé/pause/archivé), archive via store hub, calendrier horaire tech
louispaulb
2026-07-08 14:46:21 -0400
d7412fcced
#27 Standardise ticket-detail rendering (status / tags / row component)
louispaulb
2026-07-08 14:31:39 -0400
6224271e07
ticket : afficher le technicien assigné EN TÊTE du panneau détail (IssueDetail)
louispaulb
2026-07-08 13:53:21 -0400
13039be301
feat: suivi généralisé, occupation ressources, horaire tech, revert journal
louispaulb
2026-07-08 12:40:22 -0400
77343d0a98
planif : chip Cc (assistant) affiche les initiales en pastille
louispaulb
2026-07-08 10:25:48 -0400
915a898c04
planif : assignation ticket façon courriel To/Cc + décodage entités à la source du pool
louispaulb
2026-07-08 00:13:21 -0400
92ed0a0734
planif (feuille job) : décode les entités HTML de l'en-tête (sujet · client · adresse)
louispaulb
2026-07-07 23:50:42 -0400
23e3c0d2e2
planif (feuille job mobile) : commentaire interne par défaut — plus de courriel client accidentel
louispaulb
2026-07-07 23:43:53 -0400
d8325f7e55
planif (vue semaine) : retire le faux avertissement 72h + élargit la colonne tech
louispaulb
2026-07-07 22:33:17 -0400
2396c10f14
planif : extraction #4/3 — dialogue Types de shift → components/planif/ShiftTypesDialog.vue
louispaulb
2026-07-07 22:20:45 -0400
4bed6bb9fd
planif : extraction #4/2 — dialogue Synchroniser les techniciens → components/planif/TechSyncDialog.vue
louispaulb
2026-07-07 22:02:10 -0400
659cfae12c
planif : extraction #4/1 — dialogue Congés & disponibilités → components/planif/LeaveDialog.vue
louispaulb
2026-07-07 21:45:22 -0400
675e1b0bdd
ops : types de job = source unique (config/job-types)
louispaulb
2026-07-07 21:27:32 -0400
987ae98bfc
planif : éditeurs de compétences unifiés sur TagEditor (fin de SkillSelect)
louispaulb
2026-07-07 21:06:15 -0400
7ca3ceef66
ops : priorités 3 niveaux (source unique) + compétences multi + création unifiée + planif
louispaulb
2026-07-07 20:46:57 -0400
4870cec09b
hub+solveur : compétences multi par job + réservation + matérialisation quarts + app terrain natif
louispaulb
2026-07-07 20:46:42 -0400
eb8376c9c3
app terrain : commentaire NATIF (reste sur OPS) au lieu du renvoi vers store.targo.ca
louispaulb
2026-07-07 14:16:24 -0400
0ba789a5c0
planif Notifier : toggles SMS/courriel PAR TECH (SMS préféré) + édition inline du contact
louispaulb
2026-07-07 14:04:11 -0400
d6db1a5fa4
planif: contrôle Statut/Reporter aussi sur le panneau job (3 vues couvertes)
louispaulb
2026-07-07 13:57:41 -0400