Skip to content

Releases: adolfousier/hustle-tracker

v0.4.20

16 Mar 22:26

Choose a tag to compare

What's Changed

Renamed to Hustle Tracker

  • Crate renamed from neura_hustle_tracker to hustle-tracker
  • Binaries: hustle_tracker and hustle_daemon
  • Install via crates.io: cargo install hustle-tracker
  • Updated all scripts, CI workflows, docs, and repo URLs

Published on crates.io

  • Added full Cargo.toml metadata (description, license, keywords, categories)
  • Added module-level and struct-level doc comments

CI: Automated crates.io publishing

  • Release workflow now publishes to crates.io automatically
  • Verifies with cargo publish --dry-run before publishing
  • Skips if version already published

Full Changelog: https://github.com/adolfousier/hustle-tracker/blob/main/CHANGELOG.md

v0.4.19

23 Feb 19:44

Choose a tag to compare

What's New

  • Hyprland Window Detection: Native window tracking support for Hyprland compositor

    • Uses hyprctl activewindow -j — works out of the box, no extensions needed
    • Graceful fallback to GNOME D-Bus and X11 if hyprctl is unavailable
  • Wayland Detection Fix: Improved session detection with socket fallback

    • Fixes detection on terminals like Ptyxis that don't propagate WAYLAND_DISPLAY/XDG_SESSION_TYPE
    • Falls back to checking Wayland socket at $XDG_RUNTIME_DIR/wayland-0
  • Test Coverage: Added 20+ unit tests for window detection logic

    • Hyprland JSON parsing, empty/malformed responses, error handling
    • Organized in dedicated monitor_tests.rs modules
  • Code Quality: Resolved all clippy warnings across the codebase

v0.4.18: Self-contained binary and simplified startup

12 Feb 17:07

Choose a tag to compare

What's New

Self-Contained Binary (Fixes #8)

Pre-built binaries now auto-start PostgreSQL when the database isn't running. No more manual Docker setup required.

  • Binary embeds compose.yml at compile time and writes it to the app data directory on first run
  • Automatically detects if database is unreachable and starts it via docker compose up -d
  • Polls database readiness with retry loop (30s timeout) before connecting
  • Supports both docker compose (v2 plugin) and standalone docker-compose with automatic fallback
  • App data stored in platform-standard directories (~/.local/share/neura-hustle-tracker/ on Linux)
  • Backward compatible: existing .env in project directory (from just run workflow) takes priority

Embedded Migrations

  • Database migrations are now compiled into the binary via include_str! — no external files needed at runtime
  • Daemon binary now also runs migrations on startup (previously skipped)

Simplified Startup Scripts (Fixes #9)

  • Linux .desktop: Removed Alacritty, tmux, xdotool, and hardcoded path dependencies. Daemon runs headless.
  • New systemd user service: neura-tracker.service as an alternative to .desktop autostart
  • macOS .plist: Removed osascript wrapper, find command, and 30-second sleep. Direct daemon launch with crash recovery.

Improved Error Messages

  • Fixed stale make daemon-status references, now points to docker ps
  • Clearer guidance when database connection fails

Documentation

  • Added troubleshooting section to README (database errors, pre-built binary setup, port conflicts, Wayland, macOS permissions)
  • Updated pre-built binary and Start on Boot sections

Dependencies

  • Updated all dependencies to latest versions

Full Changelog: https://github.com/adolfousier/neura-hustle-tracker/blob/main/CHANGELOG.md

v0.4.16: Timeline Enhancements and Dashboard Reorganization

27 Nov 14:08

Choose a tag to compare

✨ What's New

🎨 Beautiful Colored Activity Timeline

  • Full-width timeline visualization for daily (hourly), weekly (daily), and monthly views
  • Each period colored by dominant activity category
  • Category colors: Yellow (Development), Blue (Browsing), Green (Communication), Magenta (Media), Cyan (Files)
  • Adaptive labels that scale with terminal width (every 1-4 hours for daily, every day for weekly/monthly)
  • Category legend showing top 5 active categories

📊 Dashboard Reorganization

  • Sessions timeline moved to dedicated dialog (press 's' from dashboard)
  • Main dashboard now integrates colored timeline at bottom for at-a-glance activity overview
  • Better space utilization and visual hierarchy
  • Detailed stats and categories repositioned for improved layout

🔄 View Mode Synchronization

  • Timeline now correctly shows Daily/Weekly/Monthly view data
  • All activity percentages match their respective pie charts
  • Weekly view aggregates last 7 days from Sunday
  • Monthly view aggregates full month from 1st

🚀 Benefits

  • Visual activity patterns immediately visible at a glance
  • See which categories dominate your time by color
  • Better organization of dashboard elements
  • Smoother workflow with sessions in dedicated space

📦 Downloads

Standalone binaries available for Linux, macOS (Intel & Apple Silicon), and Windows - no Rust installation required.

Thanks for using Neura Hustle Tracker! 🎯

Release v0.4.15

25 Nov 02:39

Choose a tag to compare

🎉 Release v0.4.15

Build System Migration

  • Replaced Make with Just-rs: All build commands now use just instead of make
  • Removed make dependency - project now fully uses Rust-based just for build automation
  • All platform scripts (Linux, macOS, Windows) migrated to justfile
  • Backward compatibility maintained for users transitioning from Makefile

Command UI Improvements

  • View Mode Switching - Replaced Tab with dedicated keys:
    • d - Switch to Daily view
    • w - Switch to Weekly view
    • m - Switch to Monthly view
  • Session History - Changed from h to s for viewing session history
  • Updated command dialog and README with new command mappings

Cross-Platform Executables

  • Linux: Single unified binary (TUI + backend in one)
  • Windows: daemon.exe (backend) + tui.exe (frontend)
  • macOS: daemon (backend) + tui (frontend)
  • Users only need Docker + PostgreSQL, no Rust installation required

Installation

```bash

Linux (Unified Mode)

just run

macOS/Windows (Daemon Mode)

just daemon-start # Start background tracking
just view # Open TUI dashboard
```

v0.4.14: Windows Compilation Fix

10 Nov 20:01

Choose a tag to compare

🪟 Windows Users - Important Fix

This release fixes a critical compilation error on Windows.

What was fixed

  • Fixed error[E0425]: cannot find value 'app_name' in this scope that was preventing Windows builds
  • The variable app_name was only declared in macOS-specific code but used in both macOS and Windows sections
  • Solution: Moved the variable declaration outside platform-specific blocks

Windows Users - Action Required

If you were unable to compile on Windows due to this error, you can now build and run successfully:

cargo build --release

or use the provided Windows batch scripts if you have them set up.

Affected Files

  • src/tracker/monitor.rs (line 204-209)

No database migrations or additional setup required. Just rebuild and run!

Release v0.4.13: UI Improvements and IDLE Detection Fixes

08 Nov 17:25

Choose a tag to compare

What's New

IDLE Detection Fix

  • Fixed IDLE detection for non-AFK sessions
  • Previously, only AFK sessions could be marked as IDLE after 10+ minutes of inactivity
  • Now all sessions (AFK or regular) are properly marked as IDLE after 10+ minutes with no keyboard/mouse input
  • Impact: Prevents long idle sessions from being counted as active time in statistics

Category Dialog Improvements

  • Added Page Up/Page Down support for quick navigation through large app lists
  • Improved scrolling behavior: selection now stays in viewport when navigating with arrows
  • Updated dialog help text to show available navigation keys (↑/↓/PgUp/PgDn)

Sub-Entry Categorization Fixed

  • WhatsApp inside Firefox, browser tabs, and other sub-entries now properly save assigned categories to database
  • Sub-entry categories are now correctly retrieved and displayed when reopening category dialog
  • Fixed aggregation logic to preserve category assignments across multiple sessions

Visual Improvements

  • Added category colors to detailed stats panel ("📈 Detailed Stats" now matches "🥧 Categories" panel colors)
  • Parent apps show their auto-detected category colors
  • Sub-entries show their custom categories (or parent's color if no custom category)
  • Consistent color scheme across all UI panels for better visual feedback

Bug Fixes

  • Fixed hierarchy aggregation logic that was ignoring sub-entry category updates
  • Fixed dialog navigation to properly handle viewport boundaries
  • Added debug logging for category updates for better troubleshooting

Technical Details

  • Updated IDLE detection to check all sessions, not just AFK sessions
  • Enhanced category dialog state management with scroll offset tracking
  • Improved render logic for consistent color application across panels

Release v0.4.12: Improve macOS window detection and migration integrity

04 Nov 15:26

Choose a tag to compare

What's Changed

  • macOS Window Detection Improvements: Simplified and streamlined window title detection for all macOS applications.
    • Removed complex app-specific AppleScript methods that attempted different approaches for browsers, terminals, etc.
    • Now uses unified System Events approach for consistent window title detection across all applications.
    • Significantly reduced code complexity while maintaining reliable window tracking.
    • Improved maintainability by eliminating browser-specific and terminal-specific detection logic.
  • Enhanced App Tracking Logic: Improved daemon state management with better logging and status tracking.
    • Added detailed debug logging for app detection and window changes.
    • Enhanced app switching logic to properly update current state only when not AFK.
    • Fixed session initialization to include idle_accumulation_secs field.
  • Migration System Enhancement: Added checksum validation to database migrations for improved integrity.
    • Added sha2 dependency for calculating SHA-256 checksums of migration files.
    • Migration table now includes checksum column to verify migration file integrity.
    • Checksum tracking ensures migrations haven't been altered after initial application.
  • Code Quality: Cleaned up unused imports and fixed compiler warnings across daemon and tracker modules.

Full Changelog: v0.4.11...v0.4.12

Release v0.4.11: Fix AFK Average Activity Percentage Reset

03 Nov 15:06

Choose a tag to compare

Fix AFK Average Activity Percentage Reset

This release fixes a critical bug where the average activity percentage would reset to 100% whenever the user provided keyboard or mouse input.

Root Cause

The activity percentage calculation was based only on the current real-time idle duration. When a user moved the mouse, the last_input timestamp was reset to the current time, making the idle duration zero. This caused the activity percentage to immediately jump to 100%, erasing any accumulated idle time from the session.

Solution

  • Added idle_accumulation_secs field to the Session struct to permanently track accumulated idle time per session
  • Idle accumulation only increases; it doesn't reset when user input is detected
  • The accumulation logic tracks the delta of idle time increase every check cycle, ensuring only genuine idle periods contribute
  • Activity percentage now calculated as: (total_time - accumulated_idle) / total_time × 100%

Changes

  • Database Schema: Added idle_accumulation_secs BIGINT column to sessions table
  • Session Model: Added optional idle_accumulation_secs: Option<i64> field
  • App Logic: Tracks idle time delta every second and accumulates it in the current session
  • Render Logic: Includes all past session idle + current accumulated idle + ongoing idle in percentage calculation
  • Runtime Migrations: Replaced compile-time sqlx macro with runtime migration handler that ensures all migrations apply automatically on startup

Result

  • Activity percentage now correctly reflects true activity levels
  • Percentage remains stable even after user input
  • Example: 80% activity stays at 80% when you move the mouse; it doesn't jump back to 100%

Migration

The migration to add idle_accumulation_secs column runs automatically when the app starts. No manual database operations required.

Release v0.4.1: Add Uninstall Functionality

01 Nov 14:25

Choose a tag to compare

What's New in v0.4.1

✨ Uninstall Functionality

We've added comprehensive uninstall support to safely remove Neura Hustle Tracker from your system.

Features:

  • make uninstall command - Works on all platforms (Linux, macOS, Windows)
  • Two-step confirmation - Prevents accidental deletion of data
  • Safe cleanup process:
    • Stops PostgreSQL container
    • Removes Docker volume (deletes all tracked data)
    • Removes installation directory and all files

For Linux/macOS:

make uninstall

Or use the dedicated script:

./src/scripts/uninstall.sh

For Windows:

From PowerShell in the app directory:

make uninstall

Or use the PowerShell script:

powershell -ExecutionPolicy Bypass -File src/scripts/windows_build/windows-uninstall.ps1

📝 Documentation

  • Added "Uninstall (Remove Everything)" section to README.md
  • Clear warnings about data deletion
  • Platform-specific instructions for all systems

🔧 Makefile Updates

  • Added uninstall command to help text
  • Cross-platform implementation for Windows/Unix systems
  • Proper phony target declaration

Full Changelog: See CHANGELOG.md for more details.