- Added descriptions for new services: media-api, video-remote, vision-system-remote, and scheduling-remote.
- Updated development instructions to use docker-compose for starting the stack.
- Changed web port from 5173 to 8080 and clarified development commands.
- Removed MQTT broker details and updated service sections accordingly.
- Re-enabled Vision API and Media API services in docker-compose.yml, providing necessary configurations for development.
- Improved scheduling logic in HorizontalTimelineCalendar and Scheduling components to better manage repetition visibility and database scheduling status.
- Updated docker-compose-reset.sh to conditionally wait for Supabase services, enhancing the setup process for local development.
- Added isScheduledInDb prop to manage UI states for scheduled repetitions, improving user experience in the scheduling interface.
- Updated ErrorBoundary to include auto-retry functionality with configurable retry parameters.
- Refined repetition placement logic in HorizontalTimelineCalendar to handle overlaps more accurately, ensuring better visual representation of scheduling data.
- Added comments for clarity on sorting and overlap checks within the repetition handling process.
- Updated dev:watch script in package.json to streamline the build and serve process.
- Removed start-dev.sh script as its functionality is now integrated into the npm command.
- Added RepetitionMetadata interface to manage phase details for repetitions.
- Implemented onScrollToRepetition and onScheduleRepetition callbacks for better user navigation and scheduling.
- Updated HorizontalTimelineCalendar to display phase names, experiment numbers, and repetition numbers in the timeline.
- Removed locked state management from Scheduling component, simplifying repetition handling.
- Improved conductor assignment visibility and interaction within the scheduling interface.
- Removed isHovered and setIsHovered props from SidebarProps.
- Updated sidebar expansion logic to rely solely on isExpanded and isMobileOpen.
- Simplified rendering conditions for menu items and submenus based on the new state management.
- Changed initial state of sidebar expansion to false.
- Added functions to save and retrieve sidebar state from localStorage.
- Updated useEffect to load saved sidebar state on component mount.
- Modified toggleSidebar function to save the new state after toggling.
- Updated HorizontalTimelineCalendar to support full 24-hour scheduling with enhanced marker positioning and dragging capabilities.
- Introduced extendLeft and extendRight properties in RepetitionBorder for better visual representation of markers extending beyond their borders.
- Enhanced tooltip functionality for vertical lines in the timeline, providing clearer time information.
- Modified Scheduling component to allow scheduling from midnight to midnight, improving user experience in time selection.
- Adjusted Docker script permissions for better execution control.
- Introduced a new backup environment file containing local Supabase and Vision API configurations.
- Configured environment variables for Supabase URL, anonymous key, and various Vision API settings.
- Enabled modules for video, vision system, and scheduling in the development environment.
- Add docker-compose.sh wrapper script that auto-detects host IP
- Update docker-compose.yml to use environment variable substitution
- Update Supabase config.toml files to use HOST_SITE_URL and SUPABASE_API_URL env vars
- Add scripts/get-host-ip.sh for IP detection
- Add scripts/set-host-env.sh for environment setup
- Add scripts/supabase-with-env.sh wrapper for Supabase CLI
- Add documentation for Docker Compose environment setup
- Update README.md with new usage instructions
- Replace hardcoded URLs with dynamic environment variables
- Commented out all Supabase services to facilitate testing with Supabase CLI.
- Updated README to include Supabase directory in project structure.
- Adjusted documentation for migration paths in Supabase Docker Compose guide.
- Enhanced docker-compose-reset.sh to explicitly remove Supabase volumes and wait for migrations to complete.
- Add all Supabase services (db, rest, auth, realtime, storage, studio, meta, inbucket)
- Add migration runner service to automatically run migrations on startup
- Configure all services to use shared network for inter-service communication
- Add documentation for Supabase docker-compose integration
- Add helper script for generating Supabase secrets
- Update web service to connect to Supabase via network
- Added loading state to indicate data fetching progress.
- Implemented toast notifications for success and error messages during availability operations.
- Introduced a delete confirmation modal for improved user experience when removing availability slots.
- Enhanced TimeSlotModal with validation error handling and loading indicators for adding time slots.
- Added conductorsExpanded state to manage the visibility of the conductors list in the scheduling component.
- Updated color assignment logic for conductors to ensure consistent coloring based on their position in the array.
- Modified spawnSingleRepetition function to accept an updated set of selected IDs for accurate stagger calculations.
- Refactored soaking and airdrying data retrieval to map results from a unified experiment_phase_executions table, improving data consistency.
- Enhanced UI for conductor selection, including a collapsible list and improved availability indicators.
- Added health check to the camera management API service in docker-compose.yml for better container reliability.
- Updated installation scripts in Dockerfile to check for existing dependencies before installation, improving efficiency.
- Enhanced error handling in the USDAVisionSystem class to allow partial operation if some components fail to start, preventing immediate shutdown.
- Improved logging throughout the application, including more detailed error messages and critical error handling in the main loop.
- Refactored WebSocketManager and CameraMonitor classes to use debug logging for connection events, reducing log noise.
- Added a function to check if video files are complete and valid using ffprobe, preventing errors during thumbnail generation.
- Updated thumbnail generation logic to skip incomplete or corrupted files, improving robustness.
- Modified docker-compose.yml to include a restart policy for the camera management API service, ensuring better container reliability.
- Implemented a background worker for generating video thumbnails, enhancing media processing capabilities.
- Added startup and shutdown events to manage the thumbnail generator's lifecycle.
- Refactored thumbnail generation logic to handle file processing more robustly, including checks for existing thumbnails and file accessibility.
- Updated existing functions to integrate with the new background processing approach, ensuring seamless thumbnail generation on demand.
- Updated loading indicators with larger sizes and improved animations for better visibility.
- Enhanced error banner styling and increased padding for a more user-friendly experience.
- Adjusted stream status and recording status sections for improved readability and consistency in font sizes.
- Refined MQTT message log display with better spacing and text sizes for clearer information presentation.
- Improved overall layout and styling of the CameraPage component for a more polished user interface.
- Added container names for better identification of services in docker-compose.yml.
- Refactored CameraManager to include error handling during initialization of camera recorders and streamers, ensuring the system remains operational even if some components fail.
- Updated frontend components to support new MQTT Debug Panel functionality, enhancing monitoring capabilities.
- Introduced MQTTPublishRequest and MQTTPublishResponse models for handling MQTT message publishing.
- Implemented a new POST route for publishing MQTT messages, including error handling and logging.
- Enhanced the StandaloneAutoRecorder with improved logging during manual recording start.
- Updated the frontend to include an MQTT Debug Panel for better monitoring and debugging capabilities.
- Added support for limiting concurrent transcoding operations in the media API to prevent resource exhaustion.
- Implemented functions to retrieve video duration and bitrate using ffprobe for improved streaming performance.
- Enhanced the generate_transcoded_stream function to handle HTTP range requests, allowing for more efficient video playback.
- Updated VideoModal component to disable fluid and responsive modes, ensuring proper container boundaries during video playback.
- Improved logging throughout the transcoding process for better error tracking and debugging.
- Added additional notes to SESSION_SUMMARY.md regarding MQTT debugging and enhanced logging.
- Removed outdated SQL seed files related to Phase 2 JC Experiments and Meyer Experiments to streamline the codebase.
- Updated the CLI version in the Supabase configuration for consistency.
- Cleaned up test files in the camera management API to improve maintainability.
- Changed log level in configuration from WARNING to INFO for better visibility of system operations.
- Enhanced StandaloneAutoRecorder initialization to accept camera manager, state manager, and event system for improved modularity.
- Updated recording routes to handle optional request bodies and improved error logging for better debugging.
- Added checks in CameraMonitor to determine if a camera is already in use before initialization, enhancing resource management.
- Improved MQTT client logging to provide more detailed connection and message handling information.
- Added new MQTT event handling capabilities to the VisionApiClient for better tracking of machine states.
- Introduced a new service for scheduling-remote in docker-compose.yml, allowing for better management of scheduling functionalities.
- Enhanced error handling in CameraMonitor and CameraStreamer classes to improve robustness during camera initialization and streaming processes.
- Updated various components in the management dashboard to support dark mode and improve user experience with consistent styling.
- Implemented feature flags for enabling/disabling modules, including the new scheduling module.
- Deleted unused API test files, RTSP diagnostic scripts, and development utility scripts to reduce clutter.
- Removed outdated database schema and modularization proposal documents to maintain focus on current architecture.
- Cleaned up configuration files and logging scripts that are no longer in use, enhancing project maintainability.
- Consolidated API route definitions by registering routes from separate modules for better organization and maintainability.
- Removed redundant route definitions from the APIServer class, improving code clarity.
- Updated camera monitoring and recording modules to utilize a shared context manager for suppressing camera SDK errors, enhancing error handling.
- Adjusted timeout settings in camera operations for improved reliability during frame capture.
- Enhanced logging and error handling across camera operations to facilitate better debugging and monitoring.