Skip to content

Releases: quantavil/Tag-Timer

Tag Timer 3.0.0

Choose a tag to compare

@quantavil quantavil released this 30 Apr 10:49

Tag Timer v3.0.0 - Major Release Changelog

This is a massive update that transforms Tag Timer from a simple visual widget into a robust, resilient time-tracking system, while remaining completely lightweight.

✨ Major Features

  • **Analytics Panel **: Added a dedicated, real-time sidebar panel to track your time. It features:
    • Daily and weekly aggregate totals.
    • Productivity streak tracking (days in a row).
    • Top 10 file breakdown with visual progress bars.
    • Weekly trend chart and history of recent sessions.
  • Audio Notifications: You can now enable Completion Sounds for your countdowns. Instead of bloating the plugin with mp3 files, Tag Timer dynamically synthesizes sounds via the Web Audio API. Choose between:
    • Soft Chime
    • Gentle Bell
    • Classic Beep
    • Digital Alarm
    • Soft Marimba
  • Background Expiry Engine: Countdowns now safely expire in the background via an automated vault scanner. This completely resolves stale visual bugs that previously occurred when countdowns finished while a note was closed or embedded inside an Obsidian Canvas.

📱 Mobile & Accessibility

  • Screen Reader Support (ARIA): Timer widgets have been completely overhauled for accessibility. They now act as native interactive buttons (role="button", tabindex="0") and dynamically update their aria-label to broadcast their exact state and time to screen readers.

Tag Timer 2.2.0

Choose a tag to compare

@quantavil quantavil released this 23 Apr 09:12

Changelog: Tag Timer v2.2.0

🔴 Reliability & Bug Fixes

  • Stale Context Menu Actions: Fixed critical bug where context menu actions (Start/Stop/Remove) used outdated line positions if the file was edited while the menu was open. Now re-parses lines dynamically on click.
  • Icon Accuracy: Aligned plugin icons with documentation.
    • (Hourglass flowing) for Running
    • (Hourglass fixed) for Paused
    • ⏹️ (Stop square) for Stopped
  • Settings UI Layout: Fixed legacy .setHeading() usage; now uses standard DOM elements for a cleaner Settings tab.

🟠 Mobile Support

  • Long-Press Gesture: Added native mobile feeling. You can now long-press on any timer badge in both Live Preview and Reading Mode to open the context menu.

🟡 Audio & UX

  • Completion Beep: Optional audio notification when a countdown hits zero.
  • Sound Toggle: New setting to enable/disable completion sounds (Default: Off).

🟢 Architecture & Performance

  • Optimized Rebuilds: Stripped selectionSet from widget triggers. Live Preview badges no longer recalculate on every cursor move, only on document changes.
  • Regex Single Source of Truth: Consolidated all timer matching logic into a centralized timerRegex() factory.
  • Deduplicated Recovery: Refactored recovery.ts to use a generic transformTimersInContent engine, removing triplicate logic for vault scanning.
  • Strict Typing: Enabled strict: true in TypeScript configuration and enforced exact RegExpExecArray signatures.
  • Modern Build: Upgraded compilation target to ES2022 to leverage modern JS runtime features.

🔵 Repository & Maintenance

  • BRAT/Registry Support: Added versions.json for better community plugin compatibility.
  • Clean Git History: Stopped tracking the dist/ directory to keep commits focused on source code.
  • Gitignore Safety: Added exceptions for project config files while maintaining broad data protection rules.

Tag Timer 2.1.0

Choose a tag to compare

@quantavil quantavil released this 13 Apr 02:55

Created release_notes.md

Release Notes - Tag Timer v2.1.0

Release notes generated as an artifact: release_notes.md.

Summary of v2.1.0:

  • Modular Architecture: God-object main.ts decomposed into 12 specialized modules.
  • Performance: $O(N)$ mutation logic replaced with index-based slicing; dropped brittle tracking arrays for on-demand vault scans.
  • New Features: Completion notifications (Obsidian Notice) and a global "Stop all running timers" command.
  • Modernization: Fully compatible with Obsidian @latest and TypeScript 6.0; zero-flicker UI animations.

Refactor verified via bun run build. All systems operational.

Full Changelog: 2.0.0...2.1.0

Tag Timer 2.0.0

Choose a tag to compare

@quantavil quantavil released this 09 Mar 11:05

Release Notes - Tag-Timer v2.0.0

This release marks a complete ground-up redesign of the Tag-Timer plugin, focusing on performance, reliability, and a premium user experience.

What's New

Performance & Architecture

  • Complete Redesign: Rebuilt from scratch using modern TypeScript and CodeMirror 6.
  • Zero Dependencies: No external libraries required, ensuring a tiny footprint and maximum stability.
  • Efficient Rendering: Uses CodeMirror 6 ViewPlugin and WidgetType for non-destructive, high-performance UI overlays in Live Preview and Reading View.

Timing Features

  • Stopwatches & Countdowns: Native support for both counting up and counting down.
  • Hotkeys:
    • Alt+S: Toggle Stopwatch (Start/Pause/Resume)
    • Alt+C: Toggle Countdown (Start/Pause/Resume)
    • Alt+D: Delete Timer
  • Stopped State: New 'Stopped' (⏹️) state for archiving finished timers without resetting them.
  • Manual Time Entry: A sleek modal for precisely setting or adjusting timer values (supports mm:ss, hh:mm:ss, or minutes).

Reliability

  • Auto-Restore & Crash Protection: Running timers are automatically paused on app exit and seamlessly recovered on restart.
  • Registry System: Robust tracking of running timers across all vault files.
  • Line Enforcement: Automatically ensures only one timer exists per line for a clean layout.

Design & UI

  • Interactive Badges: Click to toggle, right-click for a feature-rich context menu.
  • Native Styling: Perfectly adapts to Obsidian's Light and Dark themes using CSS variables.
  • Timer States: Visual cues for active timers (⌛/⏳).
  • Light/Landscape Banner: Refined project branding with a modern, high-quality banner.

Technical Details

  • Build System: Switched to Bun for ultra-fast development and builds.
  • Data Persistence: Timers are stored in-line as lightweight markdown tags, making them fully searchable and future-proof.

Tag Timer 1.0.2

Choose a tag to compare

@quantavil quantavil released this 08 Aug 09:23

Version 1.2.0: Your Dashboard, Reimagined!

This update is all about making your analytics dashboard a more powerful, intuitive, and visually cohesive tool. We've listened to your feedback and are excited to introduce these improvements.

What's New?

  • Gain Deeper Insight with the Daily Focus Bar Chart: We've replaced the weekly doughnut chart with a new bar chart. This provides a much clearer day-by-day breakdown of your tracked time, helping you spot trends and understand your week at a glance.
  • Totals Front and Center: In the "Today's Focus" view, the total time you've tracked is now prominently displayed in the middle of the doughnut chart for instant readability.
  • A Cohesive Visual Experience: The new "Weekly Focus" bar chart now shares the same beautiful gradient color scheme as your other analytics charts, creating a more unified and polished look.
  • Clearer Naming: To better reflect its function, "Weekly Study" has been renamed to the more intuitive "Weekly Focus."

We hope you enjoy this more streamlined and insightful dashboard experience

Tag Timer 1.0.1

Choose a tag to compare

@quantavil quantavil released this 06 Aug 03:46

Tag Timer 1.0.1 - Optimized Release 🚀

🔧 Core Optimizations

JavaScript Improvements

  • 30% smaller codebase through consolidation and redundancy elimination
  • Unified utility functions in TimerUtils class for better maintainability
  • Consolidated timer actions - single handleTimerAction() method replaces 6 separate handlers
  • Centralized constants in CONSTANTS object for better organization
  • Improved error handling and edge case management

CSS Modernization

  • 40% smaller CSS file with consolidated selectors and shared properties
  • CSS Variables integration for automatic theme adaptation
  • Modern layout system using CSS Grid and Flexbox
  • Performance-optimized animations with hardware acceleration
  • Mobile-first responsive design with breakpoints at 480px, 768px, 1024px

⚡ Performance Enhancements

  • Reduced object creation and optimized loops
  • Lazy loading of Chart.js libraries
  • Method caching to prevent repeated calculations
  • Efficient DOM operations with batched updates
  • Smooth 60fps animations using transform properties

🎨 Visual & UX Improvements

  • Enhanced timer animations with subtle pulse effect for running timers
  • Improved hover states and micro-interactions
  • Better visual hierarchy with consistent spacing and typography
  • Icon integration using Unicode emojis
  • Depth perception through layered shadow system

♿ Accessibility Features

  • WCAG compliance with proper focus indicators
  • Reduced motion support respecting user preferences
  • High contrast ratios for better readability
  • Screen reader optimization with semantic structure
  • Keyboard navigation improvements

📱 Responsive Design

  • Mobile-optimized interface with touch-friendly controls
  • Adaptive chart layouts that work on all screen sizes
  • Flexible grid system that auto-adjusts based on available space
  • Print-friendly styles for documentation export

Tag Timer 1.0.0

Choose a tag to compare

@quantavil quantavil released this 05 Aug 16:23
d1bff63