Skip to content

Releases: dymmond/asyncz

Version 0.15.0

08 Mar 14:36
cb1d004

Choose a tag to compare

Added

  • Added scheduler-native task inspection APIs through Task.schedule_state, Task.paused, Task.snapshot(), scheduler.get_task_info(), and scheduler.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 list command, 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 loguru integration with Python's built-in logging module across the scheduler, dashboard, CLI examples, and documentation.
  • Migrated the documentation stack from mkdocs-material to zensical and 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_at parameter 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, and asyncz_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 loguru dependency and the loguru-based logging backend.

Version 0.14.3

25 Jan 16:24
6daf35f

Choose a tag to compare

Fixed

  • When using the settings it was causing a conflict with the types and not casting properly to the right type due
    to the from future import __annotations__.

Version 0.14.2

12 Nov 19:30
a59ab71

Choose a tag to compare

Changed

  • Replaced ChildLilya sub‑app mounting with Router‑based composition for a cleaner and more maintainable architecture.
  • AsynczAdmin now uses a single composed Lilya app that mounts /login and /logout at root while serving the dashboard under its prefix.
  • Simplified include_in() method — mounts the composed app at / for proper reverse‑proxy behavior.
  • Improved url_prefix normalization to avoid double slashes and ensure consistent route generation.
  • AsyncZ Dashboard is now fully reverse‑proxy agnostic and works seamlessly behind Nginx or ASGI mounts.

Version 0.14.1

11 Nov 18:13
0fb33dc

Choose a tag to compare

Fixed

  • Duplicate dashboard URL prefixing (/dashboard/tasks/dashboard) when deployed behind Nginx or under an ASGI mount.
  • Nested HTMX table container causing duplicate #tasks-table and incorrect hx-get paths.

Changed

  • get_effective_prefix() now prefers the configured dashboard_url_prefix and falls back to root_path only 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 /dashboard from links and actions.
  • AsyncZ Dashboard is now fully reverse-proxy ready (works with X-Forwarded-Prefix and ASGI mounts).

Version 0.14.0

10 Nov 18:38
dbcbfe3

Choose a tag to compare

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 AuthGateMiddleware to protect dashboard routes and handle HTMX redirects.
  • Added CORS and session middleware support in AsynczAdmin with customizable options.
  • Integrated DashboardConfig access via global settings (settings.dashboard_config).
  • Introduced detailed documentation and examples for custom AuthBackend implementations.
  • Support for Python 3.14

Changed

  • Updated internals to allow multiple languages for documentation.
  • Documentation structure.

Version 0.13.4

26 Aug 21:08
8aa35cd

Choose a tag to compare

Changed

  • Dropped support for Python 3.9 to match the whole ecosystem.

Version 0.13.3

26 Jul 01:57
0.13.3
6cbc36a

Choose a tag to compare

Fixed

  • Different timezones in triggers.

Version 0.13.2

22 Apr 14:29
22fd068

Choose a tag to compare

Added

  • Compatibility with Python 3.13.

Version 0.13.1

07 Jan 16:12
0.13.1
bfd9409

Choose a tag to compare

Added

  • FileStore was added (simple synchronization via files in a directory).
  • with_lock was added to asyncz.file_locking.

Fixed

  • SQLAlchemyStore didn't pass extra arguments to create_engine.

Version 0.13.0

31 Dec 18:02
0.13.0
1cb909f

Choose a tag to compare

Added

  • Multi-Processing safe mode.

Fixed

  • and was mapped to the wrong trigger.
  • Some defaults had wrong module pathes.
  • Missing export of NativeAsyncIOScheduler from schedulers.