CHANGELOG.md 3.1 KB

Changelog

All notable changes to Watch Finished Turbo will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[Unreleased]

Added

  • API Proxy Architecture: Next.js now proxies all API and WebSocket requests to backend service
    • Eliminates need to expose API port (3001) externally
    • Enables remote access to web UI without CORS issues
    • More secure deployment with single public port (3000)
  • .env.example file documenting environment variables
  • localStorage persistence for filter selections, search terms, and sort preferences across Files and Tasks pages
  • Proper loading states to prevent "flash of empty content" on fresh page loads
  • Real-time progress tracking with visual progress bar and color-coded states
  • Comprehensive Recent Improvements section in architecture documentation
  • Key Features section in main README highlighting system capabilities

Changed

  • BREAKING: Web client now uses API proxy by default instead of direct API connection
    • Remove NEXT_PUBLIC_WATCH_FINISHED_API from .env.local to use proxy (recommended)
    • Set API_URL for Next.js server to locate backend (default: http://localhost:3001)
    • Old behavior available by setting NEXT_PUBLIC_WATCH_FINISHED_API explicitly
  • Docker configuration now only exposes port 3000 (web), port 3001 (API) is internal
  • BREAKING: Simplified files table schema by removing status column
    • Files table now only tracks observations: dataset, input, output, date
    • Task processing states managed exclusively in tasks table
    • Automatic database migration preserves all existing file records
  • Updated API endpoint from /files/:dataset/status/:status to /files/:dataset
  • Improved React Query cache updates for progress events (no more full refetches)
  • Enhanced HandBrake progress regex to handle space before % sign (e.g., "79.60 %")

Fixed

  • Dataset name extraction in WatcherService now correctly maps file paths to configured dataset keys
  • HandBrake progress tracking regex now matches format "XX.XX %" with space before percent
  • React key prop warning in TaskList component by using React.Fragment with proper keys
  • Empty state flashing by checking for undefined data during initial page loads
  • FileList loading state now accounts for multi-step query dependencies (datasets → files)

Performance

  • Reduced API calls through localStorage caching of user preferences
  • Direct cache updates for progress events eliminate unnecessary network requests
  • Optimistic UI updates provide immediate feedback with background synchronization
  • Prevented unnecessary re-renders through proper loading state management

[Previous Versions]

See git commit history for changes prior to this changelog.

Notable Historical Changes

  • Multi-stage Docker build with dev and prod modes
  • Comprehensive dev container setup
  • Task queue retry logic with configurable settings
  • WebSocket real-time event system
  • Priority-based task processing
  • Dataset configuration management