Files
busymirror/ROADMAP.md
T
tomas.kracmar f625ecc263 Release 1.4.0
Fixes:
- Sandbox: add LaunchAgent temporary-exception entitlement
- Mirror URL: fix broken buildMirrorURL (URLComponents with ; separator)
- Cleanup: add bounds check to prevent crash on missing source
- State safety: pass MirrorConfig instead of mutating global @State
- KVC: remove misleading do-catch around setValue:forKey:
- Log cap: limit in-memory log to 2000 lines
- CLI: fix race with calendar loading
- launchCtl: separate stdout/stderr pipes

Features:
- Cancel button for long-running mirrors
- Progress indicator for multi-route runs (Route X of Y)
- Target event cache across routes

Code quality:
- Extract BlockMath, MirrorUtils, EventFilters, MirrorConfig
- Add 45 unit tests across 3 test files
- Refactor mergeGapMin to computed property
- Make log editor read-only

Build:
- Bump version to 1.4.0 (build 18)
- Add LSMinimumSystemVersion 15.5
2026-05-27 11:00:18 +02:00

1.3 KiB

BusyMirror Roadmap

Shipped (highlights)

  • Route-driven mirroring (multi-source)
  • Accepted-only filter (mirror your accepted meetings)
  • Persistent settings with autosave/restore; Import/Export JSON
  • Overlap modes (allow, skipCovered, fillGaps) and merge-gap
  • Work Hours filter and title-based skip filters
  • Privacy: placeholders with prefix + customizable title
  • 1.3.0: Mark Private option (global + per-route)
  • 1.3.4: persistent file logging, stale-calendar pruning on refresh, clickable top-bar mode toggle
  • 1.3.6: in-app scheduling via launchd with hourly/daily/weekday modes
  • 1.3.6: generated macOS app icon set and packaged release assets
  • 1.4.0: unit-test suite (45 tests), Cancel button, progress indicator, sandbox LaunchAgent fix, mirror URL fix, engine refactor into MirrorConfig

Next

  • Auto-refresh calendars on EKEventStoreChanged (live refresh button-less)
  • Better scheduled-run diagnostics in the UI (last run / last error / next run)
  • Better server-side privacy mapping (per-provider heuristics)

Then

  • Signed/notarized binaries and release pipeline
  • CLI quality: friendlier --routes parsing and help flag
  • “Dry-run by default” preference

Later

  • Background monitoring (macOS)
  • Smarter cleanup & conflict resolution
  • iOS/iPadOS helper (Shortcuts integration)
  • Profiles & MDM/Managed Config support