• v1.0.7 2800a7507e

    crib released this 2025-11-23 14:06:44 +00:00 | 21 commits to master since this release

    Description

    This release includes major improvements to break timer functionality, time tracking across sessions, and background timer reliability.

    Bug Fixes

    • Fixed break timer visual feedback: Break timer now displays countdown with a distinct cyan background color instead of disappearing
    • Fixed break timer countdown: Break timer now properly counts down instead of staying at 00:00
    • Fixed time persistence across breaks: Actual time spent now accumulates correctly across multiple Pomodoro sessions and breaks
    • Fixed skip break behavior: Skip break button now resumes work instead of stopping the task completely
    • Fixed timer not tracking in background: Timer now uses timestamp-based tracking instead of setInterval, ensuring accurate time tracking even when Obsidian is minimized or inactive
    • Fixed timer accuracy: Improved precision in time calculations to prevent rounding errors

    Improvements

    • Enhanced break timer UI:
      • Dynamic labels show " BREAK TIME" during countdown and " BREAK COMPLETE" when finished
      • Break timer stays at 0:00 when complete (doesn't disappear) until you resume
      • Visual distinction with cyan background color
    • Auto-start breaks by default: Break timer now auto-starts after Pomodoro completion (can be disabled in settings)
    • Better break controls:
      • "Start Break" button when work session ends
      • "Continue Working" button to keep going without a break
      • "Skip Break" now resumes work session instead of stopping
    • Accumulated time tracking: Tasks now track total time spent across multiple sessions and breaks
    • Enhanced data persistence: Improved settings merge logic to ensure existing users get new default values when upgrading
    • Added visibility change detection: Automatically syncs timer when app returns to foreground

    Technical Changes

    • Implemented timestamp-based timer tracking system with timerStartTimestamp and pausedTimeRemaining
    • Added syncTimerFromTimestamp() method for reliable background time tracking
    • Added visibilitychange event listener to sync timers when app becomes active
    • Maintains timer state across pause/resume and background/foreground transitions
    • Improved loadAllData() to merge defaults with saved data more intelligently
    • Added class property secondsWorkedOnCurrentTask to track accumulated time across sessions
    • Enhanced handlePomodoroEnd() to prevent timer going negative and keep display at 0:00
    • Updated view.ts with contextual UI controls based on timer state

    Data Persistence

    Your data is automatically saved to .obsidian/plugins/focus-task/data.json and persists across:

    • Plugin updates/reinstalls
    • Obsidian restarts
    • Device syncing (Obsidian Sync, Dropbox, etc.)

    Files Included in Release

    • main.js - Compiled plugin code
    • manifest.json - Plugin metadata
    • styles.css - Plugin styles

    Installation

    1. Download focus-task-1.0.7.zip
    2. Extract the files
    3. Copy the files to .obsidian/plugins/focus-task/ in your vault
    4. Reload Obsidian and enable the plugin

    Note: Your existing tasks and settings will be preserved automatically!

    Downloads