Release v1.3.6-beta.4
Pre-release
Pre-release
·
17 commits
to main
since this release
🚀 Entflechtung des MQTT-Subsystems & EventBus Dependency Injection
- Modularisierung des MQTT-Subsystems (
pkg/mqtt):client.govon 563 Zeilen auf 207 Zeilen reduziert und in vier fokussierte Module zerlegt:client.go: Verbindungs-Lifecycle, Auto-Reconnect, LWT (Last Will and Testament), Thread-Sicherheit.discovery.go: Home Assistant Auto-Discovery für alle 10 Entitäten (light,select,sensor,binary_sensor,number,siren,event) mit sauberen Metadaten.state.go: Status- und Telemetrie-Publizierung, Bewegungsevents (publishMotion) und SD-Karten-Aufnahmetelemetrie (PublishRecordingEvent).command.go: Sicheres Parsen und Dispatching eingehender MQTT-Kommandos (inkl. JSON-Payloads für Sirenen).
- Vollständige Dependency Injection für den
EventBus:- Beseitigung aller Singleton-Aufrufe von
events.GlobalBusim Produktivcode. - Zentrale Instanziierung via
events.NewBus()inpkg/app/app.gound saubere Injektion inonvif,mqtt,driverundwebrtc. - Transparenter
if eventBus == nil-Fallback zur garantierten Abwärtskompatibilität externer Aufrufe. - 100 % isolierte Unit-Tests ohne gegenseitige Beeinflussung globaler Zustände.
- Beseitigung aller Singleton-Aufrufe von
- 100 % Erhalt aller Fachlogik & Concurrency-Garantien:
- Alle Cooldowns, Reconnect-Intervalle (15s/30s) und Watchdogs bleiben unverändert erhalten.
- Go Race-Detector (
-race): 0 Data Races erkannt.
Docker Images (Multi-Arch: linux/amd64, linux/arm64):
ghcr.io/afrouper/steinel-cam-bridge:1.3.6-beta.4