mirror of
https://github.com/rzuasti/oott.git
synced 2026-07-08 19:21:54 +02:00
The events.rs file mixed three domains: device-event recording, change detection, and the entire notification pipeline (rendering + delivery + sending). This made it long, gave functions side effects beyond their stated goal (classify_* silently recorded events), and intertwined the events and notifications logic. Split along domain boundaries: - model::device_events now owns DeviceChange, the shared contract. - events records device events only (record_new_device/record_known_device); events/detection.rs holds pure change detection. - new notifications module owns rendering, delivery, and sending (notifications.rs + delivery.rs + render.rs); pushover/error moved here. Data now flows one way: events produces DeviceChange, notifications consumes it, both depend only on model. Scanners/pipeline/main orchestrate. classify_* renamed to record_* so the write is the stated goal; send and send_notification collapsed into persist_and_deliver. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>