Skip to content

v2026.3.1 — Hardening Release

Choose a tag to compare

@nkrebs13 nkrebs13 released this 13 Mar 02:49

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
  • AppCoordinator and PomodoroStateMachine accept 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.json with 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.