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>
|
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)
|
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
|
2026-05-27 11:00:18 +02:00 |
|
tomas.kracmar
|
fe9e813583
|
Release 1.3.9
|
2026-04-09 15:55:09 +02:00 |
|
tomas.kracmar
|
cdf82b99cc
|
Release 1.3.8
|
2026-04-08 11:56:01 +02:00 |
|
tomas.kracmar
|
2912d2f52a
|
Release 1.3.7
|
2026-03-24 10:36:44 +01:00 |
|
tomas.kracmar
|
f81403745c
|
Release 1.3.6
|
2026-03-13 09:08:31 +01:00 |
|
tomas.kracmar
|
58d88e9fa5
|
Release 1.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
|
2025-10-13 11:43:01 +02:00 |
|
tomas.kracmar
|
df06564434
|
BusyMirror 1.3.0: add Mark Private option (global + per-route); version bump and release notes
|
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
|
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
|
2025-10-10 08:59:59 +02:00 |
|
tomas.kracmar
|
d1fbd4c81f
|
BusyMirror 1.2.4: enable Mirror Now when routes exist; version bump
|
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
|
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
|
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
|
2025-09-29 17:52:18 +02:00 |
|
tomas.kracmar
|
37328eeae2
|
Added XCode project files
|
2025-08-23 15:43:03 +02:00 |
|