You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
[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.