- hardware validation: check for unexpected events on Bpod's digital input ports
- hardware validation: frame2ttl
- get past sessions bugfix when newer sessions are present only on the remote server
- add UI components for selecting remote devices
- fix: remote devices show as task parameters (regression)
- hotfix: add DISABLE_BEHAVIOR_INPUT_PORTS key to hardware_settings.yaml
- display values of automatically inferred task parameters
- store pause durations to trial info
- add backend for UDP communication between rig computers
- use PDM for managing dependencies
- log session call / commandline parameters to disk
- fix: potential deadlock with SerialSingleton
- fix: "galloping" valve during valve calibration
- fix: values computed by "Get Training Phase" in "Tools" menu
- fix: incorrect parsing of adaptive gain value in trainingChoiceWorld
- tab for displaying local sessions and their respective status
- additional task parameters for passiveChoiceWorld
- work on making the GUI code more modular
- hotfix: fix race-condition that caused scrambled online-plots
- hotfix: move serial validation from SerialSingleton to Serial
- hotfix: fix validation for Alyx when no Alyx URL has been set
- hotfix: fix validation for Bpod HiFi module
- adapted update instructions in update notification & documentation
- hotfix: force stimulus to freeze in center of screen during "freeze_reward" state
- method for copying snapshots to the local server using the SessionCopier
- documentation for transition to Bpod HiFi
- hotfix: only register water administrations once per protocol
- hotfix: reverse wheel contingency now controlled through task parameter STIM_REVERSE
- hotfix: threading warnings during valve calibration (when used without scale)
- hotfix: unreliable exit condition for state machine during valve calibration
- automated validation of rig components
- adaptive reward parameter for trainingPhaseChoiceWorld
- add validate_video entry-point
- switch from flake8 to ruff for linting & code-checks
- automatically set correct trigger-mode when setting up the cameras
- support rotary encoder on arbitrary module port
- add ambient sensor reading back to trial log
- allow negative stimulus gain (reverse wheel contingency)
- valve calibration routine
- consolidated data transfer routine across all rig computers
- new video workflow with support for multiple named camera setups
- various small fixes, work on documentation, unit-tests
- Hoferlab: when bpod returns inconsistent error, time-out or correct, throw the exception after logging
- add AMP_TYPE field to hardware_settings.yaml (device_sound) to handle the combination of HiFi module and AMP2x15 amplifier
- Support for Bpod HiFi Module
- Support for Zapit Optostim (NM)
- more robust handling of Bpod's serial messages: iblrig.hardware._define_message
- Task specifications: The time from the stimulus offset to the quiescence period is targeted to 1 second instead of 1.5 seconds
- Task specifications: The correct delay time starts running from the start of the reward state, not the end of the reward state.
- Fixed unit-tests
- hotfix: show Garbor patch in passive choice-world, GUI option for session ID, no dud detection
- hotfix: disable prompt for deleting "duds" for appended sessions
- hotfix: don't wait for microphone workflow to finish
- hotfix: pin iblutil to >=1.7.4 to address unicode encoding issue during logging
- hotfix: allow pass with warning in case where lab validation fails due to Alyx down / server issues
- change: use QT workers for Frame2TTL calibration steps
- extra task parameters: support list of strings
- frame2ttl: raise exception on incorrect port setting
- convert_ui: add argument for filename glob
- hotfix: correct parsing of description files and ignore junk sessions in iterate_protocols
- feature: calibration routine for frame2ttl v1-3 in Tools menu
- feature: debug-flag for IBLRIG Wizard
- hotfix: wrong return-type in _iterate_protocols - pt 2
- hotfix: wrong return-type in _iterate_protocols
- show dialog boxes and plots for appended sessions
- make sure unused arguments passed up to BaseChoiceWorld do not crash the task (example delay_secs in passiveChoiceWorld)
- pin iblutil to version 1.7.3 or later
- reworked upgrade script and moved to separate file to avoid file-access issues
- fixed display of version string in "about" tab
- revert logging of task events to GUI only
- add tests with mock Bonsai to cover for task start methods
- hotfix: also log to PowerShell (for now)
- hotfix: 'WindowsPath' object has no attribute 'split'
- hotfix: passing non-existent parameter to Bonsai workflow
- restructured user interface
- script for starting video-session in ephys-rig
- installer scripts for Spinnaker SDK / PySpin
- validated parsing of settings files
- added legend to trials-timeline
- added button for triggering a free reward (only available outside of running task for now)
- cleaned-up logging
- various improvements under the hood, clean-up and unit-tests
- fix problem with corrupt acquisition descriptions in history
- skipped
- hotfix for creation of bonsai layout-file
- separated installers for Spinnaker SDK and PySpin
- ignore user-side changes to bonsai layouts (for camera workflows only)
- error message if rig-name is not defined in Alyx
- populate delegate users
- the usual: minor fixes, clean-ups and unit-tests
- usability improvements for "Show Training Level" tool
- ignore unused behavior ports
- remove unnecessary dependencies
- fix incorrect limits & unit for adaptive gain in trainingChoiceWorld
- usability improvements for "Show Training Level" tool
- online plot: fix line colors and add legends
- do not show Bonsai editor during session
- reverting TTL on trial end introduced with PR #504, release 8.9.0
- general code maintenance (unit-tests, doc-strings, type-hints, removal of dead code)
- add a tools menu in the wizard to get training level from v7 sessions to ease transition
- updated online-plots
- bugfix: getting training status of subject not present on local server
- skipping of bpod initialization now optional (used in GUI)
- disable button for status LED if not supported by hardware
- tests, type-hints, removal of dead code
- bugfix: rollback skipping of bpod initialization (possible source of integer overflow)
- removal of dead code
- bugfix: remember ability for setting the status LED
- add a trainingPhaseChoiceWorld task to fix the training levels
- bugfix: copy script prompt accepts both upper case and lower case Y to proceed
- bugfix: update-check used incorrect calls for subprocesses
- bugfix: negative time being displayed in the live-plots
- bugfix: incorrect subprocess-calls in version_management
- bugfix: 0 contrasts argument overwritten for trainingCW
- make custom_tasks optional
- repair lost entry-point for iblrig wizard
- fetch remote tags only if connected to internet
- add GUI options for AdvancedChoiceWorld
- add check for availability of internet
- add proper CLI for data transfer scripts
- add control for disabling Bpod status LED
- skip initialization of existing Bpod singleton
- remember settings for status LED and GUI position
- move update-check to separate thread
- detect duds (less than 42 trials) and offer deletion
- various small bugfixes
- hot-fix parsing of path args in transfer_data
- add install_spinnaker command for ... installing spinnaker
- fixed CI warnings about ports that haven't been closed
- draw subject weight for adaptive reward from previous session
- format reward with 1 decimal on online plot
- more reliable way to check for dirty repository
- add visual hint for unfilled list-views
- adaptive reward from previous sessions in TrainingChoiceWorld
- updater: fetch remote changelog to advertise new features
- correction for version regex
- fix version strings for compatibility with packaging.version
- re-implemented update notice
- corrected implementation of end session criteria
- set adaptive reward to false temporarily
- hot-fix for disabling the update-check - this will need work
- hot-fix for missing live-plots
- major rework of the GUI
- allow pausing between trials
- task-specific settings
- new dialogs for weight & droppings