25 Commits

Author SHA1 Message Date
tomas.kracmar ad6ae396da Release 1.5.1
Bug fixes and code quality improvements:

- Fix mirror index dirtied on every sync (MirrorRecord.updatedAt in equality)
- Fix mirror URL corruption: encode calendar/source IDs before joining with ';'
  and use percentEncodedPath to prevent double-encoding
- Fix cleanup route mutating UI calendar picker selection unnecessarily
- Fix --exit flag redundancy (isCLIRun no longer implies termination)
- Remove dead SKIP_ALL_DAY_DEFAULT constant
- Replace deprecated FileHandle(forWritingAtPath:) with throwing variant
- Add EKEventStoreChanged observer for live calendar list refresh
- Extract AppLogStore into its own file (AppLogStore.swift)
- Add Block.span(start🔚) factory; replace verbose nil-field constructions
- Remove redundant MainActor.run{} wrappers inside @MainActor MirrorEngine
- Fix SettingsPayload indentation inside ContentView

All 45 unit tests pass.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
v1.5.1
2026-05-27 15:48:08 +02:00
tomas.kracmar 2c319808c2 Release 1.5.0
- Remove non-functional markPrivate feature and Objective-C runtime hacks
- Extract mirror engine into MirrorEngine.swift
- Move calLabel to MirrorUtils.swift
- Update AGENTS.md architecture documentation
- Bump version to 1.5.0 (build 19)
v1.5.0
2026-05-27 12:51:22 +02:00
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
v1.4.0
2026-05-27 11:00:18 +02:00
tomas.kracmar fe9e813583 Release 1.3.9 v1.3.9 2026-04-09 15:55:09 +02:00
tomas.kracmar cdf82b99cc Release 1.3.8 v1.3.8 2026-04-08 11:56:01 +02:00
tomas.kracmar 2912d2f52a Release 1.3.7 v1.3.7 2026-03-24 10:36:44 +01:00
tomas.kracmar a838e021a1 Docs: refresh README and roadmap 2026-03-13 09:12:19 +01:00
tomas.kracmar f81403745c Release 1.3.6 v1.3.6 2026-03-13 09:08:31 +01:00
tomas.kracmar 58d88e9fa5 Release 1.3.4 v1.3.4 2026-03-13 06:56:46 +01:00
tomas.kracmar 3ecf29f499 1.3.1: fix auto-delete of missing-source mirrors; bump version; add release notes v1.3.1 2025-10-13 11:43:01 +02:00
tomas.kracmar eb643ac74d Version update 2025-10-10 10:00:57 +02:00
tomas.kracmar df06564434 BusyMirror 1.3.0: add Mark Private option (global + per-route); version bump and release notes v1.3.0 2025-10-10 09:58:05 +02:00
tomas.kracmar 74b9949610 BusyMirror 1.2.6: always enable Mirror Now when calendars accessible; route/manual decided at runtime v1.2.6 2025-10-10 09:08:26 +02:00
tomas.kracmar 6676e62889 BusyMirror 1.2.5: Mirror Now enables for routes or manual; add computed canRunMirrorNow; version bump v1.2.5 2025-10-10 08:59:59 +02:00
tomas.kracmar d1fbd4c81f BusyMirror 1.2.4: enable Mirror Now when routes exist; version bump v1.2.4 2025-10-10 08:52:41 +02:00
tomas.kracmar 6ef0feecc1 BusyMirror 1.2.3: reliable settings autosave/restore; remember source/target; @MainActor fixes; reinit EKEventStore after grant; Makefile; changelog + release notes v1.2.3 2025-10-10 08:34:07 +02:00
tomas.kracmar aac4de3fb3 BusyMirror 1.2.1: fix calendar loading after grant, attendee status filter, main-actor; add Makefile v1.2.1 2025-10-10 07:45:59 +02:00
tomas.kracmar 8f80a5f672 Adding source events filtering 2025-09-29 18:06:34 +02:00
tomas.kracmar ae40b42e6f Bump version v1.2.0 2025-09-29 17:52:18 +02:00
tomas.kracmar 691575c554 Adding support to save routes v1.1.0 2025-09-29 15:31:11 +02:00
tomas.kracmar b931f3ba2c Fixed building 2025-09-29 15:18:42 +02:00
tomas.kracmar 53f21492da Fixes 2025-09-29 13:30:45 +02:00
tomas.kracmar 37328eeae2 Added XCode project files v1.0.0 2025-08-23 15:43:03 +02:00
tomas.kracmar 3ac1faa3dc Initial commit 2025-08-23 15:39:57 +02:00
tomas.kracmar d6c04b9d90 Initial commit 2025-08-23 13:32:37 +00:00