Changelog
Latest headline release: z4j v1.7.0.
Each package versions independently; the table below shows the current latest of every published package. The per-package history follows.
| Package | Latest | Released | Category | License | Links |
|---|---|---|---|---|---|
z4j | 1.7.0 | 2026-07-14 | Umbrella | AGPL-3.0 | PyPI · GitHub · Docs |
z4j-bare | 1.7.0 | 2026-07-14 | Core | Apache-2.0 | PyPI · GitHub · Docs |
z4j-core | 1.7.0 | 2026-07-14 | Core | Apache-2.0 | PyPI · GitHub |
z4j-scheduler | 1.7.0 | 2026-07-14 | Core | Apache-2.0 | PyPI · GitHub · Docs |
z4j-django | 1.7.0 | 2026-07-14 | Frameworks | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-fastapi | 1.7.0 | 2026-07-14 | Frameworks | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-flask | 1.7.0 | 2026-07-14 | Frameworks | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-arq | 1.7.0 | 2026-07-14 | Engines | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-celery | 1.7.0 | 2026-07-14 | Engines | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-dramatiq | 1.7.0 | 2026-07-14 | Engines | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-huey | 1.7.0 | 2026-07-14 | Engines | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-rq | 1.7.0 | 2026-07-14 | Engines | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-taskiq | 1.7.0 | 2026-07-14 | Engines | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-apscheduler | 1.7.0 | 2026-07-14 | Schedulers | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-arqcron | 1.7.0 | 2026-07-14 | Schedulers | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-celerybeat | 1.7.0 | 2026-07-14 | Schedulers | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-hueyperiodic | 1.7.0 | 2026-07-14 | Schedulers | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-rqscheduler | 1.7.0 | 2026-07-14 | Schedulers | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
z4j-taskiqscheduler | 1.7.0 | 2026-07-14 | Schedulers | Apache-2.0 | PyPI · GitHub · Docs · Upstream |
History by package
Section titled “History by package”z4j
v1.7.0 (2026-07-14)
- added: Automation rule engine. Per-project rules watch a task or scheduler trigger and run a governed action (notify an operator, retry a task, or cancel a task), each with its own guardrails: a rolling-window circuit breaker that trips a runaway rule into notify-only, a per-project kill switch, and a dry-run mode that records what a rule would have done without touching anything. Destructive actions require an admin who has passed a fresh second-factor check, re-verified at the moment the rule fires, and every firing lands on the audit log.
- added: Issues (failure fingerprinting). Task failures group by a stable fingerprint so the same bug across runs and engines collapses to one issue with occurrence counts, an open vs recovered split, first and last seen, and the engines affected.
- added: Scheduler reliability. Brain-side misfire detection flags any enabled interval or cron schedule whose expected fire is past a grace window (a dead or partitioned scheduler is the usual cause) and feeds it to automation, subscriptions, and metrics. Project-wide misfires are queryable from the REST API and a new CLI, and fire-now actions are attributed to the operator who triggered them. Fire history is range-partitioned for fast retention.
- added: MFA trust shell. A TOTP second factor via any standard authenticator app, one-time recovery codes, and an opt-in remember-this-device cookie. Enforcement is opt-in and off by default; once a user is enrolled their session must pass the second factor before general access.
- security: The enterprise-serious hardening release. Closes a set of execution-path and step-up-authentication findings from a multi-round internal adversarial audit, plus a frontend and tooling dependency refresh. Operators are advised to upgrade.
- changed: Verified data-safe in-place upgrade from 1.6.x on both PostgreSQL and SQLite (a populated upgrade preserved every row). The wire protocol is compatible for a rolling upgrade: upgrade the brain first, then roll the agents. Python 3.11 is the new minimum.
v1.6.9 (2026-06-23)
- fixed: Reliability release. Eliminates a spurious shutdown-time error traceback on short-lived processes (one-shot management commands) by draining the agent runtime before the interpreter tears down its worker pool. Adds an opt-out for the liveness heartbeat on transient processes. Plus an audit-trail completeness improvement for the bulk-retry endpoint.
v1.6.8 (2026-06-08)
- security: Follow-on security release. Closes two high-severity issues in the bulk-retry and mixed-version dispatcher paths that the Round 9 external audit surfaced on top of 1.6.7. Operators are advised to upgrade.
v1.6.7 (2026-06-07)
- security: Security release. Addresses a high-severity issue in one engine adapter's retry surface plus supply-chain hardening across CI workflows. Operators running RQ or shared-Redis deployments are advised to upgrade.
v1.6.6 (2026-06-07)
- security: Security release. Addresses a high-severity information-disclosure issue plus several lower-severity hardening items. Operators are advised to upgrade.
v1.6.5 (2026-05-27)
- security: Security release closing multiple authentication, session, transport, and dependency-supply-chain hardening items. Operators are advised to upgrade.
- changed: Password minimum length aligned at 12 characters across backend default, dashboard fallback, and operator docs.
v1.6.3 (2026-05-15)
- security: Security release. Operators are advised to upgrade.
v1.6.2 (2026-05-14)
- changed: Dashboard design system unified across every page: consistent headers, filter toolbars, search inputs, action buttons, empty states, and time-range pickers.
- added: Search and state filters on the Agents, Queues, and Workers pages.
- security: Frontend and tooling dependency refresh.
v1.6.1 (2026-05-13)
- fixed: Dashboard bundle correction for the MFA enrollment and post-login challenge surfaces. In-place upgrade picks up the fix.
v1.6.0 (2026-05-13)
- added: Multi-factor authentication. TOTP via any standard authenticator app (Authy, 1Password, Google Authenticator, etc.), single-use recovery codes, optional 30-day device trust. Opt-in: existing users stay unenrolled until they enable it.
- added: Microsoft Teams notification channel. Workflows webhooks, Power Automate, and the legacy O365 connector all auto-detected at save time.
- added: Sentry error capture, OpenTelemetry tracing, audit-log webhook forwarding, four Grafana dashboards, and a Live Activity Feed on the dashboard home.
- changed: One bidirectional schema migration (upgrade and downgrade both safe on populated databases). No data migration required.
v1.5.1 (2026-05-12)
- fixed: Brain memory hygiene under sustained burst load. Tunable via `Z4J_DATABASE_STATEMENT_CACHE_SIZE`.
- added: Four new Prometheus gauges plus a Grafana dashboard so operators can verify operational health in their own environment.
v1.5.0 (2026-05-11)
- security: Security release. Operators are advised to upgrade.
- fixed: Task-correctness fixes around event acknowledgement, event-loop decoupling, and event deduplication.
- fixed: Scheduler load-test fixes.
v1.4.0 (2026-05-03)
- changed: The brain server, dashboard, REST API, audit log, and reconciliation all ship in a single `z4j` distribution. `pip install z4j` is the only install path operators need.
- added: Engine adapters available via extras: `pip install z4j[django,celery]` for the full Django + Celery stack, plus extras for FastAPI, Flask, RQ, Dramatiq, Huey, arq, TaskIQ, APScheduler.
- security: Security release. Operators are advised to upgrade.
z4j-bare
v1.6.9 (2026-06-23)
- fixed: Shutdown lifecycle hardening: the agent runtime now registers its teardown to run before the process worker pool is shut down, drains in-flight work deterministically, and supports a heartbeat-less mode for short-lived processes. Removes the spurious shutdown-time error noise.
v1.6.8 (2026-06-08)
- security: Dispatcher hardening: refuses retry against a legacy RQ adapter rather than falling back to a signature that would re-open a prior pickle-deserialization issue.
- fixed: Brain-derived task name now wins over operator-supplied values in the Huey retry path.
z4j-core
v1.6.7 (2026-06-08)
- changed: Python compatibility floor relaxed from 3.10/3.11 to 3.10 so adapters embedded in operator processes can install on the broader Python deployment base.
z4j-scheduler
v1.6.7 (2026-06-08)
- changed: Python floor relaxed from 3.13 to 3.11 so the scheduler process runs on the same interpreter range as the brain.
z4j-django
v1.6.9 (2026-06-23)
- fixed: Clean shutdown on short-lived management commands: no more spurious error traceback at process exit.
v1.6.8 (2026-06-08)
- security: Engine-extra floor lifted so `pip install z4j-django[rq]` resolves only the hardened RQ adapter line.
v1.6.7 (2026-06-08)
- changed: Wider Django compatibility range: installs cleanly against Django 5.0 and up with no upper cap. Operator owns their own Django security posture; the adapter no longer gates on CVE versions.
z4j-fastapi
v1.6.9 (2026-06-23)
- fixed: Clean shutdown registration so the agent drains before the process worker pool is torn down.
v1.6.8 (2026-06-08)
- security: Engine-extra floor lifted so `pip install z4j-fastapi[rq]` resolves only the hardened RQ adapter line.
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest FastAPI (>=0.95) version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-flask
v1.6.9 (2026-06-23)
- fixed: Clean shutdown registration so the agent drains before the process worker pool is torn down.
v1.6.8 (2026-06-08)
- security: Engine-extra floor lifted so `pip install z4j-flask[rq]` resolves only the hardened RQ adapter line.
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest Flask version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-arq
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest arq version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-celery
v1.6.7 (2026-06-07)
- fixed: Multi-tenant cache bleed fix. Worker-stats cache moved from class scope to instance scope so two adapters in the same process no longer share state.
z4j-dramatiq
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest Dramatiq (>=1.14, <3) version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-huey
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest Huey (>=2.4, <3) version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-rq
v1.6.7 (2026-06-08)
- changed: Wider RQ compatibility range: now installs against RQ >=1.10 (previously >=2.8.0), with <3 cap. Captures the RQ 1.x deployed majority that the previous floor excluded.
z4j-taskiq
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest TaskIQ version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-apscheduler
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest APScheduler (>=3.8, <4) version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-arqcron
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest arq version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-celerybeat
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest Celery (>=5.3) and django-celery-beat (>=2.5) version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-hueyperiodic
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest Huey (>=2.4, <4) version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-rqscheduler
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest rq-scheduler (>=0.11) version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.
z4j-taskiqscheduler
v1.6.7 (2026-06-08)
- changed: Wider compatibility range: now installs against the lowest TaskIQ version where every API z4j uses is present, with no upper cap. Operator-chosen primaries are no longer CVE-gated by the adapter; the operator owns their own framework security posture.