Skip to content

v2.8.4

Choose a tag to compare

@csoscd csoscd released this 19 Apr 08:34
· 179 commits to main since this release
67903a3

[2.8.4] – branch: small-features

Added

  • Startup orphan cleanup: when the agent restarts after an ungraceful shutdown (e.g. VM maintenance stop), any execution records still marked as "running" with no live process are automatically resolved to
    exit code -5 ("Interrupted by system restart"). A 2-minute grace period prevents false positives. Local jobs with a stored PID are verified via posix_kill; remote SSH jobs are cleaned up by age. The cle
    anup runs once before the HTTP server starts via startup-cleanup.php (called from start-agent.sh).
  • Agent-level maintenance window: the Maintenance page now includes a reserved pseudo-target "Cronmanager Agent" (_agent_). Maintenance windows defined for this target block all job executions un
    conditionally — the per-job "Run in maintenance" override is ignored. This models host-wide events (VM suspend/resume cycles) where no job should start regardless of individual settings.
  • Navigation renamed: the former "Targets" page (maintenance windows per target) is now called "Maintenance" (at /maintenance). The former "Maintenance" admin page (crontab resync, stuck executions,
    etc.) is now called "Housekeeping" (at /housekeeping).
  • New exit code -5 displayed as "Interrupted" badge (gray) in timeline and job detail view.

[2.8.3] – branch: small-features

Added

  • Copy / Download log output (issue #59): each execution log entry in the job detail view now has a Copy button (clipboard) and a Download button (saves as cronmanager-jobN-YYYY-MM-DD.log).
  • Links in failure notifications (issue #60): when notifications.web_url is configured (env var WEB_URL in Docker), notification messages now include a direct link to the Cronmanager UI.
    • Still-running limit-exceeded alerts link to the job detail page (/crons/{jobId}).
    • Finished failures and at-finish limit-exceeded alerts link to the timeline filtered by job, target, and status=failed so the specific error remains visible even after many subsequent runs.
    • Applies to both e-mail (plain text + HTML) and Telegram notifications.
    • The link is omitted when WEB_URL is empty (default), preserving existing behaviour.

Fixed

  • Timeline direct-link filter clash (issue #61): navigating to the timeline via a dashboard error entry or a notification link no longer applies the user's previously saved date-range (and other) cookie fi
    lters. Links from the dashboard and notifications now carry ?_direct=1, which puts the timeline into direct-link mode: only the URL parameters are used, cookies are neither read nor written. Pagination wit
    hin a direct-link session preserves _direct=1. The user can exit direct-link mode and save the shown filters by clicking the "Apply" button in the filter bar. A blue info banner is shown during direct-link m
    ode to communicate this behaviour.
  • E-mail and Telegram subject/title/body for the at-finish limit-exceeded path now correctly says "at finish" rather than "still running", since the job has already completed when ExecutionFinishEndpoint pro
    cesses it.

[2.8.2] – branch: notify-improve

Added

  • New "Notify" tab in the job edit / create form, consolidating all notification settings in one place.
    • The notify_on_failure master switch and the existing notify_after_failures threshold have been moved from the Basic and Advanced tabs to the new Notify tab.
    • The Notify tab is auto-opened when any setting deviates from the default (edit / copy mode).
  • New per-job setting "Notify after N consecutive limit exceedings" (notify_after_limit_exceeded, default 1).
    • A limit-exceeded alert is sent only when the consecutive exceeding count reaches the configured threshold.
    • Subsequent exceedings beyond the threshold are silently suppressed until an execution completes within the limit.
    • Applies to both the real-time checker (check-limits.php) and the at-finish path in ExecutionFinishEndpoint.
    • Database migration 009_notify_after_limit_exceeded.sql adds the new column to cronjobs.
  • deploy.sh now runs pending SQL migrations automatically on both full and update deploys (docker mode). Migrations are tracked in the new schema_migrations table — each migration file is applied at mo
    st once.