--- title: "1.18.2 — Live runner channels and bounded deployment diagnostics" description: "django-mojo 1.18.2 lets enforced publishers address live explicit runner IDs without naming workarounds, makes the typed deployment timeout effective for one-shot units, and returns a small useful journal excerpt when a deployment fails." date: "2026-08-24" tags: ["release"] canonical: "https://django-mojo.sitesmojo.com/changelog/1-18-2/" --- django-mojo 1.18.2 lets enforced publishers address live explicit runner IDs without naming workarounds, makes the typed deployment timeout effective for one-shot units, and returns a small useful journal excerpt when a deployment fails. ### Changed - Enforced immediate job publishing can target any safe explicit runner ID while that exact runner is live and advertises its direct channel. Delayed and scheduled targets retain static declaration rules, and `-engine` remains supported. ### Fixed - Typed deployment one-shot units now enforce their 30-minute activation limit with the systemd property that applies to `Type=oneshot`, while retaining the separate 15-minute stop and rollback allowance. - Failed transient deployments now return a bounded recent exact-unit journal excerpt through the existing privileged diagnostic path while preserving the original failure status. Successful logging and public responses are unchanged. - The advisory framework pull-request workflow now applies its non-blocking behavior inside the reusable workflow, so GitHub runs the tests instead of rejecting the workflow definition. ### Upgrade notes - No migrations or required configuration changes. - Temporary `-engine` suffix workarounds for explicit runner IDs may be removed after every publisher is running this release; heartbeat-authorized direct publishing requires the target runner to be live.