# Changelog ## 0.3.0 - Merge three repos into one, remove Ultralytics as dependency - **DAQ/Server**: - Workflow assertions to ensure scintillator is down when possible. - Improved aerotech movement and position calculations. - Implementation of camera auto-exposure and zoom-dependent settings. - Added SAS-TT school demo temporary raster function. - Enhanced status polling with robust error handling for `Tell` and `Smargon` communication. - `ml_box` updated with beamline-specific URLs and model class types. - Added separate authentication pathway for staff-only beamline recovery operations. - Improved database message limits for omega (to 2 decimal places). - Added screenshot to database from GUI; face detection sequence and beamline recovery updates. - **GUI**: - Major rework of `predict_subscriber` and prediction stream updates; corrected default ZMQ stream for ML box. - Added FPS counter and sharpness monitoring for sample camera. - Improved camera thread performance and authentication failure handling. - Added X10SA specific camera and prediction configurations. - New `display_status` for user-facing connection/error messages. - Integrated `dev_help` panel with logs and error code search. - Added framework for building GUI tutorials. - Added alert banner for critical disconnection issues (server/Tell). - New screenshot button and controls in sample camera GUI. - Added SSE support for face detection panel updates during automation. - Integrated sample position resync in recovery panel to reduce Tell polling. - **TELL**: - Major refactor: removed redundant code and added simulated client. - Converted wait functions to use inbuilt pshell functionality. - Added error handling and proxy support for connection failures. - Fixed event names for mounting, and added missing events for gripper detection and motion sync. - Refactored SSE connection handling for simplicity and robustness. - **Common & Devices**: - Added centralized `error_codes` and refactored exception handling to use FastAPI handlers. - Expanded device support with new PVs (beamstop, scintillator, collimator, cryojet, etc.). - Cleaned up `mx_lib` wait functions and `my_motor` class; added `clean_filename` helper. - Improved Smargon connection exception handling. - Updated ABR_POS_HOME configuration and added comments for cryo positions. - Added image upload comments and improved authentication error messaging. - **Infrastructure**: - Updated dependencies (added `pshell`) and improved documentation autodeployment workflows. - Refactored package structure and imports. - Fixed `logger_config` file path expansion. ### 0.2.69 - check beamline state before running raster, rotation and automation - lowered polling rate of daq status to improve GUI performance - robot drys then parks after repeated mount failures ### 0.2.68: - added check box to numberlineedits to switch between user input and spreadsheet - re-enabled MLprediction - fixed bug in gui where manual sample couldnt be created when run nubmer was negative. - Combined beamline view now split vertically not horizontally - New error handling in DAQ for robot mounting errors - Error box pop ups in GUI when sample gripper detection error occurs - Automation queue pauses if sample gripper detection error occurs multiple times to allow robot dry, if continues stops and wiats for user interverntion - added ingest_scan to send rotation and screening result to db ### 0.2.67: - added run number to sampleshortinfo - ingest raster result, including beam center to database - aerotech goes to mount postion for manual mount - logger config correctly expands file path for logger location. - smart_rotiation_panel fix - but will be mvoed to DAQ in future update - Fluoresence scan can be saved to CSV with right click - Wait for ready before sending Tell to dry ### 0.2.66: - moved rastergridingestmodel and centreofmassmodel from models to raster_grid.py - after raster load closest image to new centre