# SimpleClient Application desktop de télésecrétariat pour les postes RDVPREM. ## Stack - **Electron 28** + **SignalR** (@microsoft/signalr 9.0.6) + **Choices.js** 11.1.0 - HTML/CSS/JavaScript natif (pas de framework frontend) ## Structure ``` ├── main.js # Process principal — SignalR, IPC, fenêtres ├── renderer.js # Process renderer — UI, webviews ├── index.html # Structure HTML ├── styles-modern.css # Styles CSS ├── config.json # Config SignalR (host, port, serviceProvider) └── notes/ # Stockage notes agents (notes_{agentId}.json) ``` ## Commandes ```bash bun run dev # Mode dev avec DevTools bun start # Production bun run build # Build toutes plateformes bun run build:linux # Build Linux (AppImage, .deb, .rpm) bun run build:mac # Build macOS (.dmg, .app) ``` ## Points d'attention - **Pas d'emojis** dans l'UI — icônes SVG inline (compatibilité Linux) - **Sessions webview isolées** : partition Electron unique par centre, auto-connexion via preload script - **SignalR reconnexion** : [0, 2000, 5000, 10000]ms - **IPC principal** : `agent-login`, `get-terminals`, `signalr-status`, `switch-to-center`, `release-center` - **Hub SignalR** : `/planningHub` — méthodes `AgentLogin`, `AgentLogoff`, `GetTerminalListByServiceProvider` - **Événement `IpbxEvent`** : codes 1=appel entrant, 2=fin d'appel - **Logs SignalR** : `~/.simpleconnect-ng/signalr.log` (JSON structuré) - **Notes** : sauvegarde auto après 2s d'inactivité, 50 versions, sync localStorage + fichier ## Workflow de développement Voir [.claude/commands/dev.md](.claude/commands/dev.md) pour le guide complet.