# Changelog

## 4.4.9

- Enabled Cron monitoring by default with the four-hour missed-execution threshold.
- Kept the explicit "No monitoring" option available for administrators.

## 4.4.8

- Added Cron monitoring to the searchable settings Overview.
- Added a Cron monitoring operational-status card with configuration, health, and last-check information.

## 4.4.7

- Added Redmine's configured notification sender as the default cron monitoring recipient when no plugin address is specified.
- Kept the Passenger `SERVER_ADMIN` address as a secondary fallback.
- Clarified the effective fallback recipient in Scheduler settings.

## 4.4.6

- Removed the hidden environment diagnostics tab and environment variable display.
- Removed environment credential masking code that was only used by the diagnostics tab.

## 4.4.5

- Added plugin-owned English and German labels for the environment diagnostics table.
- Masked environment values whose variable names identify usernames, logins, or passwords.
- Added focused tests for environment variable sorting and credential masking.

## 4.4.4

- Added an administrator-only environment diagnostics tab available through `?tab=environment`.
- Displayed all environment variables available to the Redmine process in a sorted, escaped, read-only table.
- Kept the diagnostics tab out of the normal UX Toolkit settings navigation, disabled response caching, and added a sensitive-data warning.

## 4.4.3

- Extended Apache Passenger `SERVER_ADMIN` detection to Rack request, internal redirect, and Passenger process environments.
- Displayed the detected fallback recipient directly beside the cron monitoring email field.
- Kept explicitly configured monitoring addresses authoritative.

## 4.4.2

- Added Apache Passenger `SERVER_ADMIN` as the fallback recipient for cron monitoring alerts.
- Kept an explicitly configured monitoring email address as the authoritative recipient.
- Clarified the effective cron monitoring recipient in the Scheduler settings.

## 4.4.1

- Reorganized the Scheduler settings tab around the central scheduler workflow.
- Separated scheduler setup, email automation, repository automation, and cron monitoring into clearly labeled groups.
- Kept cron monitoring at the bottom while moving central runner setup and status to the top.

## 4.4.0

- Added optional browser-triggered monitoring for the central UX Toolkit cron runner.
- Added email alerts when no cron run occurs for four hours or a cron run fails.
- Added database-backed monitoring throttling and one-alert-per-incident tracking.
- Added central runner failure propagation for internal jobs that return a failed result.
- Added Scheduler settings and English and German locale entries.

## 4.3.0

- Added optional Helpdesk mail retrieval through the central UX Toolkit scheduler using Helpdesk's established Rake task.
- Added configurable retrieval intervals for every cron run, 30, 60, or 120 minutes, and 4 or 8 hours.
- Added database-backed Helpdesk retrieval locking and last-successful-run metadata.
- Added a conditional Scheduler settings section that is shown only when `redmine_contacts_helpdesk` is installed.
- Added English and German locale entries.

## 4.2.10

- Fixed issue and project issue-list rendering alongside legacy plugins that alias-wrap `QueriesHelper#column_content`.
- Preserved both UX Toolkit badges and third-party query-column output without recursive `super` calls.
- Added regression coverage for the legacy helper patch chain.

## 4.2.9

- Fixed project settings tabs when a legacy plugin alias-wraps `ProjectsHelper#project_settings_tabs` after UX Toolkit loads.
- Preserved the original Redmine helper implementation to prevent a recursive `super` chain.

## 4.2.8

- Added contextual feature groups to consolidated plugin settings tabs.
- Improved section hierarchy and visual separation without introducing nested cards.
- Grouped related issue, appearance, scheduler, attachment, template, notice, and recent-item settings.

## 4.2.7

- Removed the unused Modern UI JavaScript enhancements setting and placeholder asset.
- Kept all implemented Modern UI behavior CSS-based and unchanged.

## 4.2.6

- Renamed the landing, links and My Work settings tab to Appearance and consolidated Modern UI into it.
- Renamed the reusable content tab to Templates & snippets.
- Renamed Scheduled tasks to Scheduler and added a Redmine sprite icon to its tab.
- Preserved legacy Modern UI tab links by redirecting them to Appearance.

## 4.2.5

- Replaced the floating issue quick actions with a dedicated full-width action row in the issue details.
- Prevented quick actions from overlapping the issue hint box.
- Improved action grouping, spacing and narrow-screen behavior.

## 4.2.4

- Fixed issue quick actions and the issue hint box not rendering because repeated Redmine hook declarations replaced each other.
- Consolidated all issue-details extensions into one hook registration while preserving checklist rendering.
- Added regression coverage for the issue-details hook partials.

## 4.2.3

- Replaced the detached sticky unsaved-changes button with a compact indicator beside Redmine's native Apply button.
- Removed the duplicate settings submission action and its floating overlay styling.

## 4.2.2

- Fixed missing Overview status translations caused by boolean feature states.
- Added regression coverage for locale-backed Overview status names.

## 4.2.1

- Fixed alignment of the settings overview search and personal My Work ordering controls.
- Kept operational overview messages consistently localized instead of showing persisted job text from another locale.
- Restored visible issue quick-action buttons for common status transitions and a labeled selector for larger sets.
- Made ticket template previews discoverable and reinitialized previews after Redmine AJAX form updates.
- Kept checklist template previews visible when a template is available and clarified where checklist templates are inserted.
- Completed English and German strings used by template preview states.

## 4.2.0

- Added a searchable settings overview with feature configuration states and compact operational health information.
- Added dependency-aware settings controls, incomplete-configuration warnings and persistent unsaved-change feedback.
- Added user-defined My Work block ordering, collapsible blocks, total counts and View all links.
- Consolidated secondary issue actions into a compact action menu while preserving one clear primary action.
- Added actionable issue hint links, checklist progress, deletion confirmation, edit cancellation and improved keyboard focus.
- Added compact previews for ticket and checklist templates before insertion.
- Added responsive and keyboard-focus refinements for the new controls.

## 4.1.7

- Added an explicit schedule timezone for ticket reminder emails.
- Evaluated reminder send time, weekdays and daily-send protection consistently in the selected timezone.
- Displayed the selected timezone next to the configured send time in the reminder status summary.

## 4.1.6

- Clarified the ticket reminder status summary with an explicit scheduled-reminders state.

## 4.1.5

- Combined Attachment storage and Attachment previews into one Attachments settings tab.
- Added a clear preview subsection and legacy aliases for both former attachment tab names.

## 4.1.4

- Combined Ticket templates and Text snippets into one plugin settings tab.
- Combined Landing pages & links and My Work into one plugin settings tab.
- Preserved legacy settings-tab aliases so previously stored tab selections continue to resolve correctly.

## 4.1.3

- Removed My Work, recently visited issue/project and recurring ticket links from the My Account page while keeping their routes and other navigation entries available.

## 4.1.2

- Improved lightbox toolbar and download action contrast when Modern UI is enabled.

## 4.1.1

- Replaced broken PDF attachment thumbnail images with compact PDF tiles while preserving lightbox behavior.

## 4.1.0

- Integrated dependency-free lightbox previews for JPG, JPEG, GIF, PNG, BMP and PDF attachments.
- Added an Attachment previews settings tab with enabled-by-default switches for the feature, image previews, PDF previews, gallery navigation and the preview download action.
- Preserved explicit download links and Redmine's existing attachment visibility checks.

## 4.0.2

- Renamed the custom code settings tab to Custom CSS/JS.
- Added admin-only global Custom JavaScript stored beside the reused `plugin_redmine_custom_css` setting data.
- Rendered saved Custom JavaScript on Redmine pages for trusted admin-managed snippets such as tracking codes.

## 4.0.1

- Added an admin-only Custom CSS settings tab to Redmine UX Toolkit.
- Reused the existing `plugin_redmine_custom_css['css']` Redmine setting store for global CSS.
- Rendered sanitized global CSS from UX Toolkit when the legacy redmine_custom_css renderer is not active.
- Did not add user-editable CSS functionality.

## 4.0.0

- Changed the plugin version from 3.6.x to 4.0.0 for the Redmine 6+ only support baseline.
- Changed the Redmine requirement from Redmine 5.1+ to Redmine 6.0+.
- Redmine 5.x is no longer supported from this release onward.
- Removed the obsolete Modern UI Redmine 5 adapter stylesheet: `modern_ui_redmine_5.css`.
- Simplified Modern UI adapter loading so the plugin always loads `modern_ui_redmine_6.css`.
- Simplified Modern UI body class generation so the plugin always uses the `ux-redmine-6` compatibility class.
- Updated README, redmine.org description and AGENTS developer guidance to document Redmine 6+ only support.

## 3.6.34

- Fixed duplicate collapse indicators on the Attachment storage filter panel.

## 3.6.33

- Made the Attachment storage filter panel collapsible and kept it expanded when filters are active.

## 3.6.32

- Fixed My Work dashboard desktop layout by restoring a controlled two-column grid and keeping the single-column layout for smaller screens.

## 3.6.31

- Changed fresh-install defaults for scheduled tasks: repository refresh scheduler is enabled with a daily default interval, and ticket reminders default to 07:30 on weekdays with 7 days before due date.

## 3.6.30

- Improved My Work dashboard card layout and mobile issue row readability.

## 3.6.29

- Fixed Modern UI Redmine 6 mobile flyout selectors so drawer links, avatar links and icons remain readable.

## 3.6.28

- Fixed Modern UI mobile flyout readability and reduced the Redmine 6 mobile header footprint.

## 3.6.27

- Improved Modern UI mobile layout for Redmine 6.1 and newer, including header spacing, forms, wiki toolbar, issue detail, issue filters and admin cards.

## 3.6.26

- Combined Landing pages with Links in the plugin settings tabs.
- Combined Ticket reminders, Repository refresh and Scheduled tasks in one settings tab.

## 3.6.25

- Fixed Modern UI project overview card selectors affecting project navigation links such as Issues and News.

## 3.6.24

- Fixed Modern UI project navigation overflow tabs visually appearing active when they are not selected.

## 3.6.23

- Fixed Modern UI project navigation overflow tabs becoming unreadable when Redmine marks hidden tabs with inline white backgrounds.

## 3.6.22

- Fixed calendar issue hover tooltips being clipped by inherited Modern UI issue card overflow styling.

## 3.6.21

- Fixed Modern UI leaking issue detail card styling into calendar issue hover tooltips.

## 3.6.20

- Fixed the Redmine UX Toolkit administration overview tile icon alignment in Redmine 6 and newer.

## 3.6.19

- Applied the fixed centered Modern UI administration overview card layout to Redmine 6 and newer.

## 3.6.18

- Changed Redmine 5.1 third-party administration tile fallbacks from FontAwesome glyphs to stable Redmine image icons.

## 3.6.17

- Added Redmine 5.1 Modern UI fallback icons for selected third-party administration tiles.
- Added a Redmine UX Toolkit settings tile to the administration overview.

## 3.6.16

- Enlarged Redmine 5.1 administration overview card icons and removed the icon background/border chip.

## 3.6.15

- Restored original Redmine icon images in Redmine 5.1 administration overview cards when active themes disable icon background images.

## 3.6.14

- Updated Redmine 5.1 administration overview cards to show the original Redmine icon images above the centered text.

## 3.6.13

- Refined the Redmine 5.1 administration overview cards with centered top icons and fixed card dimensions.

## 3.6.12

- Improved the Redmine 5.1 administration overview fallback with a denser responsive grid and stable visual markers.

## 3.6.11

- Restored a usable Redmine 5.1 administration overview by using compact text tiles that do not depend on theme icon fonts.

## 3.6.10

- Fixed Redmine 5.1 administration overview setting item icons disappearing on hover by avoiding `background` shorthand on admin overview links.

## 3.6.9

- Defined Redmine 5.1 administration sidebar pseudo-icons explicitly in the Modern UI adapter so theme hover rules cannot hide them.

## 3.6.8

- Switched Redmine 5.1 administration sidebar Modern UI handling to a theme-compatible pseudo-icon layout so hover states do not hide icons.

## 3.6.7

- Narrowed Modern UI form icon hover styling so Redmine 5.1 administration sidebar icons are not affected by generic form rules.
- Kept Redmine 5.1 administration sidebar pseudo-icons visible during hover.

## 3.6.6

- Kept Redmine 5.1 administration sidebar pseudo-icons visible on hover for themes that render icons with `:before`.
- Prevented theme row hover backgrounds from stretching across the sidebar under Modern UI.

## 3.6.5

- Refined Redmine 5.1 administration sidebar Modern UI hover and selected styling so icon links stay compact and icons remain visible.

## 3.6.4

- Fixed Redmine 5.1 issue-list sidebar rendering for saved queries without a `description` method.

## 3.6.3

- Fixed Redmine 5.1 administration sidebar icon overlap caused by Modern UI admin link styling.

## 3.6.2

- Fixed Redmine 5.1 Modern UI loading when the `ModernUi` service constant is not initialized before hook partial rendering.

## 3.6.1

- Fixed Modern UI issue-list action columns by avoiding generic form button styling on Redmine table cells named `buttons`.

## 3.6.0

- Stabilized the optional Modern UI layer without adding business features.
- Cleaned up Modern UI settings metadata, shared CSS variables and duplicated color usage.
- Kept Redmine 5 and Redmine 6 compatibility isolated in the existing adapter stylesheets.
- Scoped admin/sidebar polish to the Admin pages Modern UI submodule.
- Updated Modern UI documentation and settings help text for safer fallback expectations.

## 3.5.7

- Tightened Redmine UX Toolkit administration sidebar link spacing to match the default Redmine sidebar rhythm.

## 3.5.6

- Fixed Modern UI sidebar alignment for selected and inactive administration links.

## 3.5.5

- Aligned Redmine UX Toolkit administration sidebar icon links under Modern UI.

## 3.5.4

- Fixed the Modern UI tab overflow control so the left scroll button remains visible beside the right scroll button.

## 3.5.3

- Fixed Modern UI tab overflow controls so hidden tab text and internal Redmine arrow icon markup do not bleed into the buttons.

## 3.5.2

- Refined Modern UI tab overflow navigation styling to look cleaner on crowded settings pages.

## 3.5.1

- Fixed Modern UI tab overflow navigation buttons on crowded settings pages.
- Fixed Modern UI icon link spacing so Redmine icon backgrounds no longer overlap link text.

## 3.5.0

- Improved optional Modern UI styling for the login page, existing login messages and related links.
- Added light optional Modern UI polish for admin and plugin settings pages.
- Added responsive Modern UI improvements for smaller screens while preserving existing Redmine behavior.

## 3.4.0

- Improved optional Modern UI styling for project overview, roadmap, activity, wiki and repository pages.
- Scoped each project-related visual area behind its existing Modern UI setting.
- Preserved existing Redmine project modules, roadmap behavior, activity filters, wiki behavior, repository browsing, permissions and links.

## 3.3.2

- Let the issue notes textarea use the available update form width when Modern UI form styling is enabled.

## 3.3.1

- Restored native dropdown arrows and Redmine wiki toolbar icons when Modern UI form styling is enabled.

## 3.3.0

- Improved optional Modern UI styling for Redmine forms, issue create/edit pages, update/comment areas, fieldsets, upload areas, buttons and action links.
- Scoped the new form and action styling behind the existing `modern_ui_forms` setting.
- Preserved existing Redmine form behavior, validation, workflow-dependent fields, permissions, uploads, submit actions and links.

## 3.2.4

- Fixed unreadable project main menu plus-dropdown entries when Modern UI navigation styling is enabled.

## 3.2.3

- Styled Redmine UX Toolkit issue heading badges for Modern UI.
- Fixed unreadable white text in Redmine action dropdown menus when Modern UI is enabled.

## 3.2.2

- Fixed distorted Modern UI issue metadata rows by preserving Redmine's native split metadata layout and limiting badge styling to real status, priority and tracker attributes.

## 3.2.1

- Fixed clipped Modern UI status, priority and tracker badges in the issue detail header.

## 3.2.0

- Improved optional Modern UI styling for Redmine issue detail pages with clearer issue header, grouped metadata, readable description, cleaner history entries, and refined attachments, subtasks and relations.
- Scoped issue detail styling behind the existing `modern_ui_issue_detail` setting.
- Preserved existing Redmine issue editing, comments, history, attachments, subtasks, relations, permissions, workflows and links.

## 3.1.0

- Improved optional Modern UI styling for Redmine issue lists with clearer spacing, row separation, hover states, subject readability, closed issue treatment and generic metadata badges.
- Improved optional Modern UI styling for issue filter forms, action buttons, query selectors and query option areas.
- Scoped issue list styling behind the existing `modern_ui_issue_list` setting and filter styling behind the existing `modern_ui_filters` setting.
- Preserved existing Redmine issue queries, filters, sorting, grouping, context menus, permissions and links.

## 3.0.4

- Darkened the Modern UI top navigation bar for Redmine global links such as Projects and Administration.
- Restored the project main menu styling closer to the previous lighter pill navigation.
- Fixed clipped text in Modern UI dropdown/select fields.

## 3.0.3

- Darkened the Modern UI main navigation further for clearer readability.

## 3.0.2

- Darkened the Modern UI main navigation background for stronger contrast.
- Fixed selected issue list rows so text, links, status, tracker and priority values remain readable.

## 3.0.1

- Made the Modern UI visual layer noticeably stronger with more modern page chrome, header, navigation, cards, tables, forms and issue detail styling.
- Applied conservative default Modern UI submodule classes at runtime when upgraded installations do not yet have all new setting keys saved.

## 3.0.0

- Added an optional Modern UI settings area for a CSS-first visual layer.
- Added disabled-by-default Modern UI settings for base layout, header, navigation, issue pages, project pages, system pages, density, color presets and optional JavaScript enhancements.
- Added conditional Modern UI asset loading with shared common CSS and small Redmine 5 / Redmine 6 adapter stylesheets.
- Added body CSS class injection for enabled Modern UI areas without changing Redmine core views or adding business features.
- Added English and German locale entries.

## 2.12.3

- Replaced the Attachment storage ASC/DESC sort text with compact Redmine 5.1-safe direction icons.

## 2.12.2

- Kept Attachment storage column sorting after page reloads by storing the selected sort column and direction in the session.
- Added a visible ASC/DESC indicator to the active sorted column header.

## 2.12.1

- Switched Attachment storage and Log Files administration sidebar links to Redmine 5.1-safe icon classes.
- Kept the Move selected to trash action visible in the attachment storage manager and added a clear disabled hint when attachment trash is not enabled.
- Clarified permanent delete labels so they explicitly refer to files already in trash.

## 2.12.0

- Added an admin Attachment storage manager with filters, sorting, pagination and total filtered storage size.
- Added plugin-owned attachment trash records that preserve original file metadata for restore.
- Added safe Move to trash, Restore from trash and Permanently delete actions for selected attachment files.
- Added disabled-by-default attachment trash settings for retention and cleanup batch size.
- Added a central cron cleanup job that permanently deletes only expired trash files in small batches when enabled.
- Added English and German locale entries.

## 2.11.11

- Added a per-repository "Use default" interval option so repository refresh rows can inherit the global default interval while keeping "Manual only" as a separate choice.

## 2.11.10

- Grayed out repository refresh rows for inactive projects and skipped inactive project repositories during scheduled and manual refreshes while preserving the saved admin configuration.

## 2.11.9

- Removed the upper Redmine version cap while keeping Redmine 5.1 as the minimum supported version.
- Added a short help text for repository refresh failure backoff.

## 2.11.8

- Added repository type and local/remote location columns to the Repository refresh settings table.

## 2.11.7

- Normalized administration sidebar links to plain Redmine icon classes for consistent Redmine 5.1 rendering.

## 2.11.6

- Switched Recurring tickets and Team workload sidebar links to Redmine 5.1-compatible icon classes.
- Removed the redundant disabled-by-default warning from the Repository refresh settings tab.
- Added Repository refresh bulk controls for enabling, disabling and applying an interval to all listed repositories.

## 2.11.5

- Added a compatibility fallback for `list_autofill_data_attributes` so notice settings render on Redmine 5.1.

## 2.11.4

- Added `ux_toolkit_sprite_icon` as a compatibility wrapper for Redmine versions where `sprite_icon` is not available in hook views.
- Replaced direct plugin-owned `sprite_icon` calls in hook views and helper patches.

## 2.11.3

- Added an explicit short index name for the checklist template item migration to avoid MySQL's 64-character index name limit.

## 2.11.2

- Made the checklist template migration tolerant of already existing checklist template tables and indexes.
- Fixed installation/update failures on environments where migration 010 had partially created `ux_toolkit_checklist_templates`.

## 2.11.1

- Collapsed issue checklist edit controls behind a show/hide toggle for users with checklist edit permission.
- Kept checklist template insertion and checklist item creation hidden from users without checklist edit permission.
- Added English and German locale entries.

## 2.11.0

- Added a disabled-by-default repository refresh scheduler using the central cron runner.
- Added plugin-owned repository refresh state metadata with per-repository enablement, intervals, locks, failures and next-run timestamps.
- Added small-batch due repository processing with per-repository locking, stale-lock handling and failure backoff.
- Added a Repository refresh settings tab with global scheduler settings, compact status table and manual refresh action.
- Added English and German locale entries.

## 2.10.0

- Added a Project health overview grouped by project.
- Added counts for open, overdue, due-today, unassigned, stale, open-checklist-item and open-subtask work.
- Added active-project and archived-project filters.
- Added count links to filtered Redmine issue lists where practical.
- Added the View project health project permission and project menu entry.
- Added English and German locale entries.

## 2.9.0

- Added a Team workload overview grouped by assignee.
- Added counts for open, overdue, due-today, stale and high-priority assigned issues.
- Added project, user status and closed-issue filters.
- Added count links to filtered Redmine issue lists where practical.
- Added the View team workload project permission and project menu entry.
- Added English and German locale entries.

## 2.8.3

- Added a compact "Response time" / "Antwortzeit" badge to issue overview subject cells when SLA-Light tracking is active.

## 2.8.2

- Renamed the issue sidebar SLA-Light block heading to "Response time" / "Antwortzeit".

## 2.8.1

- Moved SLA-Light hints to the issue sidebar hook so they are easier to notice on issue pages.

## 2.8.0

- Added SLA-Light global settings for first response and resolution hints.
- Added configurable statuses that pause SLA-Light hints.
- Added compact issue-page SLA hints for due, overdue and paused states.
- Added first response detection based on the first issue comment by a user other than the issue author.
- Added English and German locale entries.

## 2.7.0

- Added configurable soft issue quality warnings for new tickets.
- Added global settings for subject length, description length, missing assignee and missing priority checks.
- Added minimum subject and description length settings with safe defaults.
- Added an inline new issue warning box that does not block issue creation.
- Added English and German locale entries.

## 2.6.0

- Added global comment text snippet management.
- Added a Text snippets plugin settings tab with a compact snippet list.
- Added text snippet create, edit, update, delete, enable and disable actions.
- Added a compact enabled snippet selector for issue comments.
- Added manual insertion of selected snippets into issue notes without overwriting existing text.
- Added English and German locale entries.

## 2.5.4

- Clarified ticket template insertion validation when a selected template has no description text.

## 2.5.3

- Hid project-specific new issue notices when the Redmine UX Toolkit project module is disabled.

## 2.5.2

- Moved global and project new issue notices to the stable new issue page hook above the form.
- Kept tracker-specific new issue notices inside the issue form hook so tracker changes can refresh them.

## 2.5.1

- Fixed new issue notices not rendering when Redmine does not pass the issue object as a hook local.
- Kept ticket template insertion available in the same hook context by falling back to the controller issue object.

## 2.5.0

- Added manual ticket template insertion to the new issue form.
- Added enabled ticket template selector near the issue description.
- Added tracker default template preselection for new issues.
- Added append confirmation when the issue description already contains text.
- Added English and German locale entries.

## 2.4.0

- Added global tracker default assignments for ticket templates.
- Added tracker default assignment controls to the Ticket templates settings tab.
- Added tracker default persistence for tracker, ticket template, enabled state and timestamps.
- Limited assignment selection to enabled ticket templates and handled disabled assigned templates gracefully.
- Added English and German locale entries.

## 2.3.0

- Added global ticket template management.
- Added a dedicated Ticket templates plugin settings tab with a compact template list.
- Added ticket template create, edit, update, delete, enable and disable actions.
- Added ticket template persistence for name, subject behavior, description text, enabled state, sort order and timestamps.
- Added English and German locale entries.

## 2.2.0

- Added scheduled Redmine issue reminder emails through the central cron runner.
- Added dedicated Ticket reminders plugin settings tab.
- Added weekday, send time and days-before-due settings for reminders.
- Added manual Send reminders now admin action with reminder locking.
- Added persisted reminder status metadata.
- Added English and German locale entries.

## 2.1.0

- Added project-scoped recurring ticket rules.
- Added recurring ticket rule overview and create, edit and delete actions.
- Added one-time recurring ticket interval for future single scheduled ticket creation.
- Added Manage recurring tickets project permission.
- Added recurring issue cron job using the central Redmine UX Toolkit runner.
- Added per-rule database locking to avoid duplicate ticket creation.
- Added English and German locale entries.

## 2.0.0

- Added compatibility metadata for Redmine 5.1, 6.0, 6.1 and 7.0.
- Added small compatibility helpers for Redmine reload hooks, issue status checks, user dates, workflow status checks, safe attributes, assignability and watchers.
- Updated plugin bootstrapping to reapply isolated patches through the Rails/Redmine reload hook where available.
- Changed plugin migrations to use a Rails 6.1 migration superclass for broader Redmine compatibility.
- Documented Redmine 5.1 support as best-effort.

## 1.34.0

- Added central Rake entrypoint for future Redmine UX Toolkit scheduled jobs.
- Added lightweight cron runner with an internal job registry.
- Added database-backed cron locking with stale-lock timeout.
- Added persisted cron run metadata and compact admin status display.
- Added admin action to run scheduled tasks manually from plugin settings.
- Added English and German locale entries.

## 1.33.0

- Added configurable navigation link visibility.
- Added admin setting for visible Redmine navigation links.
- Added support for hiding selected UI links such as Help.
- Added settings to show or hide recently visited issue and project sidebar blocks independently.
- Added English and German locale entries.

## 1.32.0

- Added admin-only Redmine log file viewer.
- Added secure log file selection limited to Rails.root/log.
- Added selectable line count and refresh action.
- Added escaped monospace log output.
- Added confirmed in-place log file flushing.
- Added English and German locale entries.

## 1.31.0

- Added safe handling for external HTTP and HTTPS links.
- Added target="_blank" and rel="noopener noreferrer" to external links.
- Added plugin setting to enable or disable secure external links.
- Added English and German locale entries.

## 1.30.0

- Added issue hint box on issue detail pages.
- Added hints for overdue, due today, stale and unassigned issues.
- Added hints for open checklist items and open subtasks.
- Reused existing badge and close guard logic where possible.
- Added English and German locale entries.

## 1.29.0

- Added unassigned badge for open issues without assignee.
- Added unassigned badge display to issue pages and My Work dashboard.
- Reused issue badge styling and helper logic.
- Added English and German locale entries.

## 1.28.0

- Added stale issue badge for open issues not updated for a configurable number of days.
- Added admin setting for stale issue threshold.
- Added stale issue badge display to issue pages and My Work dashboard.
- Reused issue badge styling and helper logic.
- Added English and German locale entries.

## 1.27.0

- Added due-today badge for open issues due today.
- Added due-today badge display to issue pages and My Work dashboard.
- Reused issue badge styling and helper logic from the overdue badge.
- Added English and German locale entries.

## 1.26.0

- Added overdue badge for open issues with past due dates.
- Added overdue badge display to issue pages and My Work dashboard.
- Added English and German locale entries.

## 1.24.0

- Added admin-defined default My Work dashboard blocks.
- Added fallback logic for users without personal dashboard settings.
- Added English and German locale entries.

## 1.23.0

- Added user-specific My Work dashboard block visibility settings.
- Added dashboard settings page.
- Added configurable rendering of My Work dashboard blocks.
- Added English and German locale entries.

## 1.22.0

- Added My Work dashboard.
- Added personal work blocks for assigned, due, overdue and upcoming issues.
- Added dashboard blocks for favorite projects, favorite issue filters, recently visited issues and recently visited projects.
- Added dashboard route and navigation entry.
- Added setting to optionally show My Work in the top navigation.
- Added My Work as a selectable landing page after login.
- Added English and German locale entries.

## 1.21.0

- Added setting to automatically add commenting users as watchers.
- Added automatic watcher assignment when users comment on issues.
- Added English and German locale entries.

## 1.20.0

- Added setting to automatically add issue authors as watchers.
- Added automatic watcher assignment on issue creation.
- Added English and German locale entries.

## 1.19.0

- Added setting to prevent closing parent issues with open subtasks.
- Added issue validation for open direct subtasks when moving parent issues to a closed status.
- Added compatibility with Quick Status Actions and issue action buttons through central validation.
- Added subtle issue page hint when closing is blocked by open subtasks.
- Added English and German locale entries.

## 1.18.0

- Added setting to prevent closing issues with open checklist items.
- Added issue validation for open checklist items when moving issues to a closed status.
- Added compatibility with Quick Status Actions and issue action buttons through central validation.
- Added subtle checklist UI hint when closing is blocked.
- Added English and German locale entries.

## 1.17.0

- Added tracker-based default checklist templates.
- Added admin UI for assigning checklist templates to trackers.
- Added automatic checklist item creation when new issues are created.
- Added copying of template items into issue checklist items during issue creation.
- Added English and German locale entries.

## 1.16.0

- Added manual checklist template insertion into issues.
- Added issue page UI for selecting and inserting active checklist templates.
- Added permission-aware template insertion action.
- Added copying of template items into issue checklist items.
- Added English and German locale entries.

## 1.15.0

- Added global checklist template management.
- Added checklist template persistence.
- Added checklist template item persistence.
- Added create, edit and delete actions for checklist templates.
- Added create, edit, delete and simple ordering actions for template items.
- Added permission for managing checklist templates.
- Added English and German locale entries.

## 1.14.0

- Added lightweight issue checklists.
- Added checklist section on issue detail pages.
- Added checklist item create, edit, toggle and delete actions.
- Added plugin setting to enable or disable checklists.
- Added project permissions for viewing and editing checklists.
- Added checklist persistence.
- Added English and German locale entries.

## 1.13.0

- Added Quick Status Actions on issue detail pages.
- Added plugin setting to enable or disable Quick Status Actions.
- Added plugin setting to select statuses offered as quick actions.
- Added permission-aware and workflow-aware status update action.
- Added Redmine-native journal entry creation through standard issue save logic.
- Added English and German locale entries.

## 1.12.0

- Added "Assign to me and start" button on issue detail pages.
- Added plugin setting to enable or disable the button.
- Added plugin setting for target status.
- Added permission-aware and workflow-aware issue assignment and status update action.
- Added Redmine-native journal entry creation through standard issue update logic.
- Added English and German locale entries.

## 1.11.0

- Added "Assign to me" button on issue detail pages.
- Added permission-aware issue assignment action.
- Added plugin setting to enable or disable the button.
- Added Redmine-native journal entry creation through standard issue save logic.
- Added English and German locale entries.

## 1.10.0

- Added user-specific recently visited projects.
- Added persistence for recently visited projects.
- Added tracking when users open project overview pages.
- Added simple recently visited projects list.
- Added collapsible recently visited projects sidebar block.
- Added admin setting for recently visited projects limit.
- Added English and German locale entries.

## 1.9.0

- Added user-specific recently visited issues.
- Added persistence for recently visited issues.
- Added tracking when users open issue detail pages.
- Added simple recently visited issues list.
- Added collapsible recently visited issues sidebar block.
- Added admin setting for recently visited issues limit.
- Added English and German locale entries.

## 1.8.0

- Added user-specific favorite issue filters.
- Added persistence for favorite issue filters.
- Added issue filter favorite/unfavorite actions.
- Added simple favorite issue filters list.
- Added English and German locale entries.

## 1.7.0

- Added user-specific favorite projects.
- Added persistence for favorite projects.
- Added project favorite/unfavorite actions.
- Added favorite project controls on project overview pages.
- Added simple favorite projects list.
- Added favorite project icons in the projects overview.
- Added English and German locale entries.

## 1.6.0

- Added tracker-specific new issue notice texts.
- Added admin UI for configuring tracker notices.
- Displayed tracker notices together with global and project-specific new issue notices.
- Added safe plain-text rendering with escaped HTML for tracker notices.
- Added dynamic tracker notice update on tracker selection change.
- Added English and German locale entries.

## 1.5.0

- Added project-specific new issue notice text.
- Added project settings section for Redmine UX Toolkit.
- Displayed project-specific notice together with global new issue notice.
- Added safe plain-text rendering with escaped HTML for project notices.
- Added English and German locale entries.

## 1.4.0

- Added configurable global new issue notice text.
- Added display of the notice on the Redmine new issue page.
- Added Redmine markup toolbar support for the new issue notice.
- Added sanitized markup rendering for the new issue notice.
- Added English and German locale entries.

## 1.3.0

- Added configurable global login notice text.
- Added display of the notice on the Redmine login page.
- Added Redmine markup toolbar support for the login notice.
- Added sanitized markup rendering for the login notice.
- Added English and German locale entries.

## 1.2.0

- Added admin setting to allow or disallow user-specific landing page overrides.
- Updated login redirect priority based on override setting.
- Added explanatory user preference behavior when personal landing pages are disabled.
- Added English and German locale entries.

## 1.1.0

- Added global default landing page after login.
- Added admin settings for global landing page type and value.
- Added a generic administration sidebar link to the plugin settings.
- Added tabs to the plugin settings page.
- Added fallback from user-specific landing page to global landing page.
- Preserved protected URL priority after login.
- Added English and German locale entries.

## 1.0.0

- Initialized plugin structure.
- Added user-specific landing page preference.
- Added support for My Page landing target.
- Added support for validated custom internal URL landing target.
- Added English and German locale files.
