Overview
ExUtcp v0.3.1 introduces WebRTC Transport for peer-to-peer communication, completing Phase 3: Extended Protocols. This release enables direct device-to-device tool calling with WebRTC data channels, NAT traversal, and secure DTLS encryption.
Changes from v0.3.0
Added
- WebRTC Transport with peer-to-peer communication capabilities using WebRTC data channels.
- ExWebRTC library integration providing W3C WebRTC API implementation in pure Elixir.
- WebRTC connection management with automatic signaling protocol handling.
- ICE candidate handling with STUN/TURN server support for NAT traversal.
- WebRTC data channels for reliable tool communication between peers.
- Peer-to-peer tool calling without requiring central server infrastructure.
- WebRTC signaling server client for SDP offer/answer and ICE candidate exchange.
- Configurable ICE servers with support for public STUN and private TURN servers.
- DTLS encryption for secure peer-to-peer communication by default.
- WebRTC streaming support with data channel multiplexing for concurrent operations.
- 18 comprehensive WebRTC tests covering transport features and configuration.
- WebRTC examples with complete setup guide and configuration instructions.
- Sobelow security analysis tool integration for enhanced code security scanning.
Changed
- Updated Client module to include WebRTC transport in default transports list.
- Enhanced Providers module with WebRTC provider configuration and ICE server setup.
- Updated transport count from 7 to 8 transports with WebRTC addition.
- Improved documentation with WebRTC setup guide and use cases.
Fixed
- WebRTC provider configuration with proper ICE server defaults (Google STUN servers).
- Connection lifecycle management for WebRTC peers with automatic reconnection.
- Data channel message handling and JSON serialization for tool calls.
Phase 3 Completion
With v0.3.1, Phase 3: Extended Protocols is now complete with WebRTC transport implementation.
Release Notes - ExUtcp v0.3.0
Overview
ExUtcp v0.3.0 introduces comprehensive Monitoring and Metrics capabilities, completing Phase 2 of the enhanced features roadmap. This release provides production-ready monitoring with telemetry integration, Prometheus metrics, health checks, and performance analysis.
Changes from v0.2.9
Added
- Monitoring and Metrics system with telemetry integration for all UTCP operations.
- Telemetry events for tool calls, searches, provider registration, and connection lifecycle.
- PromEx integration for Prometheus metrics collection and visualization with custom dashboards.
- Health check system for monitoring transport and component health with automatic status reporting.
- Performance monitoring with operation timing, statistical analysis, and threshold-based alerting.
- Metrics collection system supporting counters, gauges, histograms, and summaries.
- System monitoring for memory usage, process counts, scheduler utilization, and garbage collection.
- Performance alerts and threshold-based monitoring for proactive issue detection.
- Custom metrics recording and aggregation for application-specific monitoring needs.
- Monitoring dashboard configuration with PromEx and Grafana integration support.
- 15+ comprehensive monitoring tests covering telemetry, health checks, and performance measurement.
- Monitoring examples demonstrating all monitoring capabilities and integration patterns.
Changed
- Enhanced Client module with integrated monitoring and performance measurement for all operations.
- Added telemetry events to tool calls and search operations for comprehensive performance tracking.
- Improved error handling with performance metrics collection for failed operations and debugging.
- Updated Client API with monitoring functions (get_monitoring_metrics, get_health_status, get_performance_summary).
Fixed
- Performance measurement error handling with proper telemetry emission for both success and failure cases.
- Health check system robustness with fallback mechanisms when components are unavailable.
- Metrics collection reliability with graceful degradation when monitoring services are not running.