v0.2.0
New Features
- Event System: Implemented event system for Labtasker with server event manager, client listener and command
- Query Transpiler: Added Python expression to MongoDB query transpiler for intuitive filtering
- Enhanced task update flow, returning to edit mode on validation errors
- Added field validation for status updates
- Implemented Server-Sent Events (SSE) with configurable buffer size and ping interval
- Added support for KeyboardInterrupt handling
- Enhanced error reporting with detailed HTTP status errors
- Added internal loop error handler with exponential backoff
Bug Fixes
- Implemented retry mechanism for transient database transaction errors
- Fixed worker status reporting (changed "failed" to "crashed" for consistency with FSM)
- Fixed loop internal error handler issues
- Improved handling of invalid required fields
- Enhanced exception handling within async context managers
- Improved unicode formatting and rich console output
- Added compatibility improvements for TeeStream with io.TextIO
Documentation
- Added comprehensive documentation for the query transpiler
- Added documentation for the event system
- Demo on how to use event system to implement real time job failure notification system
Testing & Development
- Enhance docker-compose setup with separate init service.
- Integrated tox for end-to-end testing across multiple Python versions
- Added Docker compose tests in GitHub Actions
- Implemented full test coverage reporting (beyond just unit tests)
- Improved concurrency tests.
- Added
--manual-dockeroption for manual pytest-docker control
Refactoring
- Changed default of
cascade_deletetoTrueto match server behavior - Removed threadpool as it was deemed unnecessary
- Moved antlr generated code into dedicated directory
- Method rename: ls_worker -> ls_workers to stay consistent with ls_tasks
Other Changes
- Added license
- Improved GitHub Actions workflows
Full Changelog: v0.1.3...v0.2.0