Changelog
v1.0.02026-05-02Lancement initial
ARCHITECTURE
- Migration vers repo standalone (immocontact-dispatch)
- Architecture v2: 1 numero Twilio par courtier
- SMS receiver: lookup To number → courtier via SQLite
- Classification cascade: Claude → OpenAI → Keywords
- Validation signature Twilio (RequestValidator SDK)
- Rate limiting SMS (30/h, 100/j par expediteur)
- Opt-out STOP CRTC (gestion erreur 21610)
- Trace ID end-to-end (UUID 8 chars, reception → dispatch)
- Confirmation SMS desactivable (env var)
DASHBOARD (Next.js)
- Design system Hoogin/Brainbox (dark mode, Octosquares, FontAwesome)
- PWA installable (manifest + service worker)
- 14 pages: Dashboard, Numbers, Conversations, Courtiers, Provision, Bulk, Search, History, Alerts, Orphans, Costs, Changelog, Feedback
- Autocomplete courtier (cache SQLite + fallback SQL03 live)
- Conversations SMS: bulles chat + dispatch cards IA
- Envoi SMS manuel avec confirmation
- Achat numeros Twilio integre (search → buy → configure)
- Import CSV bulk assignation (dry-run)
- Export CSV numeros
- Recherche globale par phone client
- Alertes dead letter avec retry
- Page orphelins (messages non-routes)
- Page couts (Twilio usage 30j + par courtier)
- Profil courtier avec stats SMS
- Health indicator sidebar (Redis + worker)
- Cmd+K palette recherche rapide
- Raccourcis clavier (/ N Esc ?)
- Mode compact toggle
- Toasts notifications
- Skeleton loaders
- Polling alertes 30s
INFRASTRUCTURE
- Traefik reverse proxy (TLS Let's Encrypt)
- Docker Compose 9 services
- DNS interne dispatch.immocontact.com
- Backup SQLite cron quotidien
- Fail2ban + SSH securise
- Documentation technique complete (11 pages docs/)
PREMIER NUMERO
- +14382307262 (438) achete via API Twilio
- +18737360087 (873) assigne courtier test MT111116
- Pipeline end-to-end valide (inject → classify → dispatch → confirm)