v2026.3.1 — Hardening Release
What's New
Comprehensive hardening pass: protocol-based dependency injection, expanded test coverage, code quality improvements, and Claude Code tooling.
Protocol-Based Dependency Injection
- Extracted 8 protocols for all services and sub-coordinators
- Created mock implementations for every protocol
AppCoordinatorandPomodoroStateMachineaccept protocol types via testable init
Code Quality
- Extracted
transitionAfterBreak()to eliminate duplicate break handling - Removed 5 stats passthrough methods from AppCoordinator
- Split 684-line SettingsView into 5 focused component files
- Fixed hardcoded version string (now reads from bundle)
- Fixed preset comparison to use model values instead of hardcoded duplicates
Testing
- Rewrote AppCoordinatorTests with protocol-based mocks
- Added PomodoroCycleTests integration suite (full auto-start cycles)
- Added FloatingWindowCoordinatorTests
- Fixed test isolation with per-test
StateMachinePersistence - Expanded PomodoroStateMachine edge case coverage
Tooling
- Enabled SwiftLint for test files with test-appropriate overrides
- Unified CI runner to macOS-15
- Added
.claude/settings.jsonwith pre-approved commands - Added
.claude/rules/for Core, Services, and Tests modules - Updated CLAUDE.md with development commands and architecture patterns
Download
Download PomoDaddy.zip, unzip, and drag to /Applications.