═══════════════════════════════════════════════════════════════════════════════
CHANGELOG
═══════════════════════════════════════════════════════════════════════════════

Version 1.0.0 (2025-10-30)
--------------------------
Initial release

FEATURES:
  • Real-time tool usage tracking with spindle-aware timing
  • G1/G2/G3-specific cutting time measurement
  • GTK3 graphical tool manager with editing capabilities
  • Custom tool types (ENDMILL, DRILL, BALLNOSE, etc.)
  • Unique tool instance IDs (UIDs) for inventory tracking
  • Tool retirement history with reason tracking
  • CSV export functionality for tool data and history
  • Automatic GUI launch on LinuxCNC startup
  • Compact UI with vertical space optimization
  • Real-time current tool indication

CONCURRENCY IMPROVEMENTS:
  • Thread-safe mutex discipline for shared data structures
  • File version tracking to prevent lost updates
  • Atomic write operations with conflict detection
  • Eliminated TOCTOU gaps in file operations
  • Protected log output from interleaved writes

RELIABILITY:
  • Immediate state synchronization on cutting start/stop
  • Merge-based tool updates preserve existing fields
  • Duplicate UID detection in retirement history
  • Robust error handling and user feedback

BUG FIXES:
  • Fixed mutex discipline in reload_tools_preserve_usage()
  • Fixed GUI save TOCTOU gap with atomic rename pattern
  • Fixed race condition between daemon and GUI saves
  • Fixed current tool detection lag on GUI reopen
  • Fixed retire reason and notes field persistence
  • Fixed counter continuing after job stops
  • Fixed export dialog size to ensure buttons accessible

═══════════════════════════════════════════════════════════════════════════════
