Skip to content

gday-cli v1.4.0 - Developer Experience & Time Processing Fixes

Choose a tag to compare

@jonathanpberger jonathanpberger released this 05 Aug 17:34
· 28 commits to main since this release

gday-cli v1.4.0 - Developer Experience & Time Processing Fixes

Major improvements to time handling logic, developer experience, and codebase architecture.

What's New

πŸ… Fixed Pomodoro Grouping

Pomodoros now appear in proper chronological order instead of grouped at the end:

  • Each πŸ… treated as unique appointment at specific time
  • Maintains chronological insertion order
  • No more pomodoros clumped together at bottom of schedule

Before:

| 10:00am | Meeting A |
| 10:30am | Meeting B |
| 9:30am  | πŸ…        |  # Wrong! Out of order
| 11:00am | πŸ…        |

After:

| 9:30am  | πŸ…        |  # Correct chronological order
| 10:00am | Meeting A |
| 10:30am | Meeting B |
| 11:00am | πŸ…        |

⏰ Smart Off-Hour Time Alignment

Off-hour appointments now properly snap to 30-minute boundaries after the first block:

10:15am appointment spanning 3 blocks:

  • First block: 10:15am πŸ•™πŸ’ (shows actual time + cherry)
  • Second block: 10:30am πŸ•₯ (snaps to boundary)
  • Third block: 11:00am πŸ•š (continues on boundaries)

Before: 10:15am β†’ 10:45am β†’ 11:15am (maintained offset)
After: 10:15am β†’ 10:30am β†’ 11:00am (proper boundaries)

πŸ’ Enhanced Cherry Tomato Logic

Cherry indicators now appear only once per appointment block:

  • Before: πŸ•›πŸ’πŸ•›πŸ’πŸ•›πŸ’ (cherry repeated everywhere)
  • After: πŸ•›πŸ’πŸ•›πŸ•› (cherry once, then base emoji)

πŸ§ͺ Professional Development Infrastructure

Complete testing and development workflow:

  • BDD Testing: Executable Gherkin scenarios with Cucumber.js
  • Separated Concerns: Config, tests, and docs in proper files
  • Multiple Test Types: BDD, installation, manual function testing
  • Developer Documentation: Comprehensive contributing guidelines

New Testing Commands:

npm run test:bdd      # Run BDD scenarios
npm run test:install  # Test installation methods  
npm run test:manual   # Test individual functions

πŸ“ Clean Architecture

Proper separation of concerns:

  • config/time-rules.yml - Pure configuration (no tests/docs)
  • features/time-handling.feature - Executable BDD scenarios
  • docs/time-handling.md - Human-readable documentation
  • features/step_definitions/ - Cucumber test implementations

πŸ“– Enhanced Documentation

  • Added comprehensive "Development & Contributing" section
  • Architecture overview with component responsibilities
  • Clear testing strategies and debugging guidance
  • BDD scenario writing standards following well-formed story guidelines

Usage Examples

Time Alignment Demo:

# Test the new time boundary logic
gday --sort-alpha today    # See proper pomodoro ordering

Development Workflow:

# Clone and test
git clone repo && cd repo
npm install
npm run test:bdd          # Run behavior tests
./test-installation.sh    # Test installation

Benefits

  • Better Schedule Readability: Pomodoros appear in correct chronological order
  • Accurate Time Handling: Off-hour appointments align to proper boundaries
  • Professional Development: BDD testing, clean architecture, comprehensive docs
  • Maintainable Codebase: Separated concerns, executable scenarios, clear guidelines
  • Enhanced Developer Experience: Multiple testing approaches, debugging tools

Breaking Changes

None - All existing functionality preserved. New time handling logic maintains backward compatibility while fixing edge cases.

Installation

Via Homebrew

brew upgrade discoveryworks/gday-cli/gday

Manual Installation

git pull origin main

For Developers

New Files:

  • config/time-rules.yml - Configuration settings
  • features/time-handling.feature - BDD scenarios
  • docs/time-handling.md - Time processing documentation
  • features/step_definitions/time_steps.js - Test implementations

New Commands:

  • npm run test:bdd - Run behavior-driven tests
  • npm run test:install - Test installation methods
  • npm run test:manual - Test individual functions

See the "Development & Contributing" section in README.md for complete developer setup instructions.