Repository navigation
v2.4.0 — Logging & DDC Safety
New:
- Built-in Log tab in Settings with real-time log viewer
- LogService with disk persistence across app restarts
- Crash detection with signal handlers and alert on next launch
- Copy and clear actions in log viewer
- DDC serial queue — only one DDC-CI operation at a time, prevents I2C bus conflicts
- 5-second timeout on all DDC calls to prevent hangs on unresponsive monitors
Changed:
-
All print() calls replaced with LogService.shared.log() across all services
Fixed:
-
AppState was instantiated twice (in MonitorSwitchUIApp and AppDelegate), causing duplicate logs and double service execution
Notes
If downloading from GitHub, remove quarantine before launching:
xattr -cr /Applications/MonitorSwitch.app