Releases: dymmond/asyncz
Releases · dymmond/asyncz
Version 0.15.0
Added
- Added scheduler-native task inspection APIs through
Task.schedule_state,Task.paused,Task.snapshot(),scheduler.get_task_info(), andscheduler.get_task_infos(...). - Added
scheduler.run_task(...)as the canonical Asyncz-native "run now" operation for administrative and dashboard flows. - Added richer task filtering and sorting to the CLI
listcommand, including task state, executor, trigger, and free-text query support. - Expanded the dashboard task view with state-aware filtering, richer task metadata, and overview summaries for scheduled, paused, and pending tasks.
Changed
- Replaced the
loguruintegration with Python's built-inloggingmodule across the scheduler, dashboard, CLI examples, and documentation. - Migrated the documentation stack from
mkdocs-materialtozensicaland aligned the docs build flow with the current project structure. - Expanded and corrected the documentation for schedulers, triggers, tasks, stores, executors, ASGI integration, settings, CLI usage, dashboard usage, and API reference material.
- Standardized the development type-checking and linting workflow around Ruff and
ty. - The CLI and dashboard now delegate task run, pause, resume, and removal behavior to scheduler-owned APIs instead of maintaining separate control logic.
- Dashboard task rendering now uses immutable task inspection snapshots rather than ad hoc serialization of live task objects.
Fixed
- Date trigger creation from the CLI and dashboard now uses the correct
run_atparameter and handles encoded UTC offsets more reliably. - Dashboard log storage configuration is now shared correctly between log writers and readers when using a custom storage backend.
- Dashboard log records now resolve task identifiers consistently from
task_id,job_id, andasyncz_task_id. - Coroutine execution events now populate the task store alias consistently.
- MongoDB store aliases are now normalized consistently between CLI parsing and scheduler plugin defaults.
- Removed a duplicate executor pool shutdown path.
- Fixed a scheduler
update_task()recursion path that could surface during pause/resume-style management operations. - Fixed the dashboard overview page so controller-supplied task summaries and recent-task data are actually rendered.
- Fixed the dashboard overview template link generation.
- Fixed dashboard task filters so they persist across HTMX refreshes and row or bulk actions.
- Fixed manual dashboard runs of one-off tasks so they remain visible in the UI as paused instead of disappearing immediately.
Removed
- Removed the
logurudependency and theloguru-based logging backend.
Version 0.14.3
Fixed
- When using the settings it was causing a conflict with the types and not casting properly to the right type due
to thefrom future import __annotations__.
Version 0.14.2
Changed
- Replaced
ChildLilyasub‑app mounting withRouter‑based composition for a cleaner and more maintainable architecture. AsynczAdminnow uses a single composed Lilya app that mounts/loginand/logoutat root while serving the dashboard under its prefix.- Simplified
include_in()method — mounts the composed app at/for proper reverse‑proxy behavior. - Improved
url_prefixnormalization to avoid double slashes and ensure consistent route generation. AsyncZ Dashboardis now fully reverse‑proxy agnostic and works seamlessly behind Nginx or ASGI mounts.
Version 0.14.1
Fixed
- Duplicate dashboard URL prefixing (
/dashboard/tasks/dashboard) when deployed behind Nginx or under an ASGI mount. - Nested HTMX table container causing duplicate
#tasks-tableand incorrecthx-getpaths.
Changed
get_effective_prefix()now prefers the configureddashboard_url_prefixand falls back toroot_pathonly when configured as/.- All HTMX and action URLs in the dashboard are now relative to the current path for reverse-proxy compatibility.
- Updated templates to remove hardcoded
/dashboardfrom links and actions. - AsyncZ Dashboard is now fully reverse-proxy ready (works with
X-Forwarded-Prefixand ASGI mounts).
Version 0.14.0
Added
- New settings module using
ASYNCZ_SETTINGS_MODULE. - New Asyncz client.
- Asyncz Dashboard allowing to have a UI vision of your current scheduler and tasks.
- Introduced AsynczAdmin class for embedding the dashboard directly into Lilya apps.
- Added optional login and session-based authentication through
SimpleUsernamePasswordBackend. - Implemented
AuthGateMiddlewareto protect dashboard routes and handle HTMX redirects. - Added CORS and session middleware support in
AsynczAdminwith customizable options. - Integrated
DashboardConfigaccess via global settings (settings.dashboard_config). - Introduced detailed documentation and examples for custom
AuthBackendimplementations. - Support for Python 3.14
Changed
- Updated internals to allow multiple languages for documentation.
- Documentation structure.
Version 0.13.4
Changed
- Dropped support for Python 3.9 to match the whole ecosystem.
Version 0.13.3
Fixed
- Different timezones in triggers.
Version 0.13.2
Added
- Compatibility with Python 3.13.
Version 0.13.1
Added
FileStorewas added (simple synchronization via files in a directory).with_lockwas added toasyncz.file_locking.
Fixed
- SQLAlchemyStore didn't pass extra arguments to create_engine.
Version 0.13.0
Added
- Multi-Processing safe mode.
Fixed
andwas mapped to the wrong trigger.- Some defaults had wrong module pathes.
- Missing export of NativeAsyncIOScheduler from schedulers.