- version: 0.7.0 date: 2026-06-22 type: feature summary: Add database-backed user-specific ticket timer controls. changes: - Added a Helpdesk TicketTimer Livewire component using the established Modules/Helpdesk/Livewire path. - Added persistent started_at, ended_at, and duration_seconds fields to existing helpdesk time logs where available. - Added a reusable Blade include for placing the timer above the existing manual time log form. - Added regression tests for module path, Livewire view root safety, and non-session timer state. - version: 1.9.30 date: 2026-06-23 type: bugfix summary: Clean up Helpdesk timer UI state and remove duplicate timer display code. changes: - Replaced the oversized timer display with a compact professional ticket timer panel. - Hid the elapsed timer before start and after end so it only displays while a timer is active. - Added an inline loaded browser timer updater in the Livewire view instead of an unused standalone JavaScript file. - Removed duplicate running timer summary and MutationObserver logic from ticket controls. - Registered the timer Livewire component with the helpdesk.ticket-timer alias. - Removed duplicate Resources/views/views timer files and macOS artefacts from the clean module. - Added file-level regression coverage for the timer UI cleanup. - version: 1.9.31 date: 2026-06-23 type: bugfix summary: Reduce Helpdesk start timer button size. changes: - Made the inactive-state Start timer button more compact while preserving accessible focus and loading states. - Kept the timer display hidden before start and after end, with no new standalone JavaScript files. - version: 1.9.32 date: 2026-06-23 type: bugfix summary: Widen Helpdesk start timer button so the label fits on one line. changes: - Updated the inactive Start timer action with a minimum width and no-wrap text so the label does not split. - Preserved the clean inline timer display behaviour with no unused standalone JavaScript file. - version: 1.9.33 date: 2026-06-23 type: bugfix summary: Widen Helpdesk end timer button so the label fits on one line. changes: - Updated the active End timer action with the same minimum width and no-wrap text treatment as the Start timer button. - Preserved the inline timer updater and avoided adding unused standalone JavaScript files. - version: 1.9.34 date: 2026-06-23 type: bugfix summary: Add explicit public/internal response controls to Helpdesk ticket conversations. changes: - Added a clear Public reply versus Internal note visibility selector to the main ticket response form. - Added the same visibility selector to threaded response forms so replies can be made public deliberately. - Added public/internal badges to conversation entries so response visibility is obvious after posting. - Preserved append-only changelog history and avoided adding unused JavaScript or orphan files. - version: 1.9.35 date: 2026-06-23 type: bugfix summary: Fix Helpdesk first-response SLA status after public replies. changes: - Updated public Helpdesk responses so they satisfy the first-response SLA state instead of only increasing the public reply counter. - Added first-response SLA synchronisation for existing tickets that already have public replies but a missing first_response_at value. - Improved the SLA card wording so pending tickets say Awaiting public reply and responded tickets show Responded. - Added regression coverage for public response SLA state and preserved append-only changelog history. - version: 1.9.36 date: 2026-06-23 type: feature summary: Add operational SLA status detail to Helpdesk ticket pages. changes: - Added first-response SLA wording that shows Responded, Responded late, Due soon, Breached, or Awaiting public reply as appropriate. - Added responded-in duration, first responder name, and first public response timestamp to the SLA panel. - Added resolution SLA wording with resolved-in duration and matching met, due-soon, and breached colour states. - Added a compact SLA audit trail showing recorded SLA events, due times, breach/met state, and actor details where available. - Updated public reply counting to include threaded public replies as well as root comments. - Preserved append-only changelog history. - version: 1.9.37 date: 2026-06-23 type: documentation summary: Add Helpdesk module README instructions for closing tickets and SLA response handling. changes: - Added a base module README documenting how to close tickets with a mandatory closure comment. - Documented Public Reply versus Internal Note usage for responses and SLA handling. - Documented recommended close-ticket UI behaviour, closure templates, SLA meanings, audit expectations, reopening guidance, and Helpdesk development standards. - Preserved append-only changelog history. - version: 1.9.38 date: 2026-06-23 type: bugfix summary: Enforce mandatory closure comments when closing Helpdesk tickets. changes: - Added a close-ticket confirmation dialog that opens when a closed status is selected without a closure comment. - Added server-side validation so closed statuses cannot be saved without a meaningful closure comment. - Stored the closure comment as a Helpdesk response with Public Reply as the default visibility and Internal Note as an explicit option. - Updated the status control UI with closed-status metadata and accessible modal controls. - Added regression tests for blocked closure without a comment and successful closure with an auditable comment. - Preserved append-only changelog history. - version: 1.9.39 date: 2026-06-23 type: bugfix summary: Fix Helpdesk ticket create editor body synchronisation. changes: - Updated the ticket creation rich-text Details editor so content is pushed into the Livewire body property before validation. - Added Livewire navigation-safe editor initialisation so the sync logic works after wire:navigate page changes. - Added input, keyup, paste, blur, and submit-capture synchronisation to prevent false "body field is required" validation failures. - Changed the hidden body field to live Livewire binding so the server receives the latest editor content without requiring a page reload. - Preserved append-only changelog history. - version: 1.9.40 date: 2026-06-23 type: bugfix summary: Prevent duplicate Helpdesk ticket references during ticket creation. changes: - Updated Helpdesk ticket reference generation to use the highest existing yearly reference suffix instead of the latest database row id. - Added a PostgreSQL transaction-level advisory lock around reference generation to reduce concurrent ticket creation collisions. - Added retry handling around ticket creation so reference unique-index collisions do not produce a user-facing 500 error. - Added regression coverage for out-of-order ticket references so lower references cannot be reused accidentally. - Preserved append-only changelog history. - version: 1.9.41 date: 2026-06-23 type: bugfix summary: Fix Helpdesk ticket reference collisions caused by soft-deleted references and remove category agent N+1 queries. changes: - Updated ticket reference generation to include soft-deleted tickets and bypass global scopes when calculating the highest yearly reference suffix. - Preserved the PostgreSQL advisory transaction lock and collision retry behaviour while preventing deleted references from being reused against the unique index. - Eager-loaded category agents where categories are used by ticket creation/editing and agent assignment logic to remove the detected N+1 query warning. - Added regression coverage to ensure soft-deleted ticket references are never reused. - Preserved append-only changelog history. - version: 1.9.42 date: 2026-06-23 type: bugfix summary: Stop premature Helpdesk ticket create validation and single-click submit failures. changes: - Moved TicketCreate validation from Livewire attribute-based live validation to submit-only rules so errors appear only after Create Ticket is clicked. - Changed the hidden rich-text Details body field away from live model updates to prevent a pre-submit $commit request from racing the save action. - Kept the editor submit synchronisation so the latest rich-text content is copied into the Livewire body property before validation. - Added an isSaving guard and save-target loading state so duplicate clicks cannot create duplicate submit attempts. - Added regression coverage proving draft edits do not fire validation before submit. - Preserved append-only changelog history. - version: 1.9.43 date: 2026-06-23 type: feature summary: Add Helpdesk stabilisation pack for spellcheck, durable ticket references, workflow documentation and regression coverage. changes: - Added a dedicated helpdesk_ticket_sequences migration so ticket references use a durable yearly sequence instead of relying only on scanning existing tickets. - Updated TicketReferenceService to lock and increment the yearly sequence row inside the ticket creation transaction while still seeding the initial value from active and soft-deleted ticket references. - Enabled browser-native spell checking on ticket creation, public replies, threaded replies, timer notes and closure comments. - Added README workflow instructions for create, public reply, internal note, close, reopen, SLA, timers, attachments, spell checking and ticket reference sequencing. - Added regression coverage for the sequence implementation, spellcheck wiring and documented stabilised workflows. - Preserved append-only changelog history. - version: 1.9.44 date: 2026-06-23 type: bugfix summary: Make Helpdesk ticket create spellcheck visible and repair Clear button DOM reset behaviour. changes: - Added a visible Spellcheck on badge and explanatory helper text to the ticket Details editor so users can see browser spellcheck is active. - Updated the Create Ticket Clear action with a loading state and Dusk hook. - Added inline reset handling for the rich-text editor, hidden body field, subject field, attachments, Select2 controls and date picker controls after the Livewire clear event. - Added regression coverage to prevent the visible spellcheck marker and clear-form reset wiring from being removed accidentally. - Preserved append-only changelog history. - version: 1.9.45 date: 2026-06-23 type: bugfix summary: Make Helpdesk spellcheck suggestions available through native text areas. changes: - Replaced the ticket create Details rich contenteditable surface with a native spellcheck text area so browser spelling suggestions are available from the context menu. - Replaced the main ticket reply rich contenteditable surface with a native spellcheck text area for consistent right-click and Ctrl-click spelling suggestions. - Kept hidden Livewire body synchronisation for ticket creation so submit-only validation and single-click create behaviour are preserved. - Updated README guidance to explain how browser spellcheck suggestions are accessed. - Updated regression coverage for visible spellcheck suggestion guidance. - Preserved append-only changelog history. - version: 1.9.46 date: 2026-06-23 changes: - Restored rich text HTML controls for ticket details and main ticket replies. - Enabled inline browser spellcheck on contenteditable rich editor areas without replacing the editor with plain textareas. - Fixed ticket create clear action so configured defaults are preserved while subject, details, tags and attachments are cleared. - Fixed close-ticket modal so selecting a closed status opens the professional closure prompt on the first interaction. - Preserved the mandatory closure comment workflow and public/internal closure visibility behaviour. - Added regression coverage notes for rich editor, clear defaults and close-modal workflow. - version: 1.9.47 date: 2026-06-23 changes: - Preserved the rich HTML editor controls while keeping browser-native spellcheck enabled. - Documented that fake inline spellcheck must not replace the rich editor. - Refreshed ticket time aggregates and the time-log modal after timer start and stop without requiring a page reload. - Added regression coverage for timer refresh and spellcheck/editor boundary behaviour. - version: 1.9.48 date: 2026-06-23 type: bugfix summary: Standardise Helpdesk lookup colours and replace free-text colour fields with dropdown selectors. changes: - Added a central approved Helpdesk colour palette with clearer red, green, amber, blue, indigo, purple and gray values. - Normalised legacy Flux and Tailwind colour aliases such as rose, emerald, sky, cyan, violet and zinc to approved WMS colour keys. - Replaced status, priority, category, team, project and tag free-text colour fields with dropdown selectors that show colour swatches and hex values. - Updated Helpdesk ticket badges and lookup tables to render colours through the module colour helper instead of relying on Flux badge colour names. - Added a migration to clean existing database lookup colour values to the approved palette. - Updated Helpdesk seed data, feature coverage and unit coverage for the standardised colour behaviour. - Preserved append-only changelog history. - version: 1.9.49 date: 2026-06-23 type: feature summary: Add Helpdesk custom hex colours, contrast-safe badges and standardised seeded workflows. changes: - Added support for six-character custom hex colours such as #ffffff while keeping the approved WMS palette as the default path. - Added colour picker, custom hex input, clickable palette swatches and live preview badge behaviour to Helpdesk colour selectors. - Added contrast-safe badge text calculation for light and dark colour backgrounds. - Added a reusable Helpdesk badge component so lists, Kanban cards, ticket detail pages, reports and notifications can render colours consistently. - Standardised seeded ticket statuses for New, Open, In Progress, Waiting Customer, Waiting Third Party, Resolved, Closed and Cancelled. - Standardised seeded ticket priorities for Low, Normal, High, Urgent and Critical. - Extended unit and file-level regression coverage for custom hex colours, colour selector UI and contrast-safe badge rendering. - Preserved append-only changelog history. - version: 1.9.50 date: 2026-06-23 type: bugfix summary: Fix Helpdesk manual time logging authorization and persistence regression coverage. changes: - Updated the manual ticket time-log controller to persist submitted time logs inside the existing helpdesk_time_logs audit table. - Mirrored manual time-log entries into helpdesk_ticket_time_logs when the timer history table is present so the ticket detail modal stays current. - Updated TicketTimeLogTest to use authorised Helpdesk fixture users and lookup data instead of ad-hoc users that fail the ticket update policy. - Kept the pricing-free dashboard test baseline and preserved append-only changelog history. - version: 1.9.52 date: 2026-06-24 changes: - Fixed ticket create rich editor Livewire synchronisation so typing no longer fires keypress/input requests. - Restored native browser spellcheck on the contenteditable editor by allowing typed text to remain stable in the DOM. - Added submit-capture body synchronisation before validation so tickets can be created reliably. - Added regression assertions for editor spellcheck, keypress sync prevention, and submit-time body sync. - version: 1.9.53 date: 2026-06-24 type: feature summary: Allow Helpdesk ticket attachments to include source-code files. changes: - Added central Helpdesk attachment validation based on allowed filename extensions rather than MIME guesses so PHP, JavaScript, RPG and other source files can be uploaded reliably. - Added a broader source-file extension allow-list covering PHP, JS/TS, Vue, CSS, HTML, SQL, shell scripts, Python, Java, C/C++, RPG/RPGLE, CL/CLLE, COBOL and common configuration files. - Updated ticket create, ticket edit, ticket comments and supporting-file upload validation to use the shared attachment rules. - Added source-file accept hints to Helpdesk file inputs. - Added regression coverage for PHP, JavaScript and RPG source-file attachment support. - version: 1.9.54 date: 2026-06-24 changes: - Removed the new AttachmentValidation support class dependency so source file attachment validation cannot fail when Composer optimized autoload has not been regenerated. - Kept source-code attachment support using Laravel extension validation for PHP, JavaScript, RPG/RPGLE and other source/config files. - Updated ticket create/edit/show and attachment controllers to use existing-class validation helpers. - version: 1.9.55 date: 2026-06-24 type: bugfix summary: Persist attachments when creating Helpdesk tickets. changes: - Prevented ticket create submission while Livewire file uploads are still in progress so tickets cannot be saved before attachments reach the component. - Disabled the create button during both attachment upload and ticket save operations. - Hardened the attachment service to explicitly support Livewire temporary uploads as well as controller uploaded files. - Added regression coverage for create-form upload guarding and Livewire temporary upload support. - Preserved append-only changelog history. - version: 1.10.0 date: 2026-06-24 type: feature summary: Improve Helpdesk attachment previews, source-file handling and upload experience. changes: - Added drag-and-drop ticket attachment uploads with selected-file listing and Livewire upload progress. - Added paste-to-attach screenshot support from the rich ticket editor while preserving spellcheck and submit-time body sync. - Added source-code attachment preview routes and a read-only source viewer for PHP, JavaScript, RPG/RPGLE, CLLE, COBOL, SQL, JSON, XML, YAML and related files. - Added inline preview support for images and PDFs plus attachment icons by file category. - Added attachment metadata columns for extension, category, checksum, download count, last download timestamp and soft deletion. - Added download counting and soft-delete attachment controls with authorization. - Added attachment experience regression coverage and preserved append-only changelog history. - version: 1.10.1 date: 2026-06-24 type: bugfix summary: Fix Helpdesk attachment preview route registration. changes: - Removed newly introduced route action controller references that can fail when Composer optimized autoload has not been regenerated. - Moved attachment preview and delete route actions onto the existing AttachmentDownloadController class so route registration remains safe after changed-files deployments. - Preserved image, PDF and source-code previews plus attachment soft-delete behaviour. - Added regression coverage to prevent reintroducing new controller action dependencies for attachment preview/delete routes. - version: 1.10.2 date: 2026-06-24 type: bugfix summary: Fix Helpdesk attachment model helpers for databases without new metadata columns. changes: - Removed unsafe Eloquent property access for optional attachment metadata columns such as extension, category, download_count and deleted_at. - Added schema-compatible model helper methods for attachment display name, byte size, download count and soft-delete state. - Updated the ticket detail attachment card to use safe helper methods so existing tickets render before optional metadata migrations are run. - Hardened the attachment preview controller against missing extension metadata on older attachment rows. - Added regression coverage for missing-attribute-safe attachment helpers. - Preserved append-only changelog history. - version: 1.10.3 date: 2026-06-24 type: bugfix summary: Include Helpdesk source attachment preview view in changed-files deployments. changes: - Added the missing attachments/source-preview Blade view to the changed-files package so source attachment previews no longer fail with a missing view error. - Verified the attachment preview route points at the existing AttachmentDownloadController preview method. - Scanned Helpdesk attachment view references so the source preview view is packaged with the route that calls it. - Preserved append-only changelog history. - version: 1.10.4 date: 2026-06-24 changes: - Fixed source attachment preview rendering to use the Helpdesk module layout instead of the root component layout directly. - Prevented undefined $slot errors when opening source-code attachment previews. - Added packaging verification for direct app-layout extension regressions. - version: 1.10.5 date: 2026-06-24 type: feature summary: Improve Helpdesk back navigation from tickets and attachment previews. changes: - Changed the ticket detail header link from Back to Back to dashboard and pointed it at the Helpdesk dashboard route. - Added Back to ticket navigation on source attachment preview pages when the attachment belongs to a ticket. - Added a direct Dashboard button on source attachment preview pages. - Preserved append-only changelog history. - version: 1.10.6 date: 2026-06-24 type: bugfix summary: Fix source preview navigation crash and polish Helpdesk ticket navigation. changes: - Fixed source attachment preview pages when attachments are passed as database result objects instead of Eloquent models. - Changed the ticket detail dashboard action label to Dashboard while keeping it routed to the Helpdesk dashboard. - Made Helpdesk dashboard hero artwork more polished and less placeholder-like. - Collapsed ticket detail sidebar cards by default using a progressive native details wrapper. - Preserved append-only changelog history. - version: 1.10.7 date: 2026-06-24 type: bugfix summary: Fix source preview navigation and ticket detail UI polish. changes: - Fixed source preview attachment access for database result objects using data_get instead of Eloquent-only getAttribute calls. - Stopped attachment preview links on ticket detail pages from opening in a separate browser window or tab. - Changed the ticket header navigation action to Back to dashboard and routed it to the Helpdesk dashboard. - Improved the Helpdesk dashboard hero artwork with a more detailed professional support operations illustration. - Ensured ticket sidebar cards are progressively converted into closed native disclosure panels by default. - Preserved append-only changelog history. - version: 1.10.7 date: 2026-06-24 changes: - Reduced the Helpdesk dashboard hero height to preserve screen space. - Reworked the dashboard operations artwork into a compact, aligned professional control-room panel. - version: 1.10.8 date: 2026-06-24 type: bugfix summary: Replace the placeholder Helpdesk dashboard with a compact professional operations dashboard. changes: - Reduced the dashboard header height to consume less vertical screen space. - Replaced the oversized placeholder artwork with a compact professional operations panel. - Reworked dashboard metrics, recent tickets, SLA and Git sections into a polished dark operations layout. - Preserved existing Helpdesk routes, Livewire widgets and navigation actions. - Preserved append-only changelog history. - version: 1.10.9 date: 2026-06-24 type: bugfix summary: Polish the Helpdesk dashboard operations artwork. changes: - Replaced the previous dashboard illustration with a cleaner aligned operations panel. - Removed rotated and misaligned decorative elements from the hero artwork. - Kept the compact dashboard header height to preserve screen space. - Preserved append-only changelog history. - version: 1.10.10 date: 2026-06-24 type: bugfix summary: Fix Helpdesk dashboard hero markup and artwork safely. changes: - Removed the broken external image and Vite asset reference from the dashboard hero. - Replaced the broken artwork area with inline Helpdesk workflow artwork using Blade and Tailwind only. - Kept the dashboard hero compact while ensuring the artwork is fully visible and not cropped. - Preserved append-only changelog history. - version: 1.10.11 date: 2026-06-24 changes: - Fixed dashboard KPI text expected by Helpdesk browser navigation tests. - Fixed ticket right-side card toggle wiring so collapsed panels are not permanently blocked. - Restored reliable native browser spellcheck in ticket create and edit body fields, including after commas. - version: 1.10.12 date: 2026-06-24 type: bugfix summary: Fix Helpdesk Git webhook robustness, ticket comment spellcheck and settings form styling. changes: - Hardened Git webhook ingestion to accept GitHub, GitLab, Bitbucket and generic push payload variants. - Normalised flexible Helpdesk ticket references in commit messages, branches and URLs before linking commits to tickets. - Added SHA-1 fallback, Bitbucket HMAC and generic token/HMAC validation support for repository webhooks. - Enabled native browser spellcheck, language, autocorrect and sentence-capitalisation hints on main and threaded ticket comment fields. - Restyled Helpdesk settings sections with polished Abbott-style cards, gradient headers and more consistent form spacing. - Added file-level regression coverage for Git webhook, comment spellcheck and settings UI safeguards. - Preserved append-only changelog history. - version: 1.10.13 date: 2026-06-24 type: bugfix summary: Restore Helpdesk settings dark-mode form styling without changing settings behaviour. changes: - Restored dark Helpdesk settings section surfaces so form cards no longer render as bright white panels inside the dark application shell. - Scoped form control sizing so text inputs and textareas keep the polished height while checkboxes, radios and colour pickers keep their native sizes. - Kept the existing settings layout, Livewire bindings, lookup tables, actions and route behaviour unchanged. - Preserved append-only changelog history. - version: 1.10.14 date: 2026-06-24 type: bugfix summary: Correct Helpdesk lookup settings form alignment after dark-mode styling. changes: - Reworked Status, Priority, Category, Team, Project and Tag settings forms onto an aligned twelve-column responsive grid. - Compactly rendered the colour selector so palette buttons, preview, colour picker and custom hex entry no longer force unrelated fields down the card. - Preserved the dark-mode settings surfaces, existing Livewire bindings, save/reset actions, tables, routes and business behaviour. - Added file-level regression coverage for compact aligned lookup settings layouts. - Preserved append-only changelog history. - version: 1.10.15 date: 2026-06-24 type: bugfix summary: Polish Helpdesk lookup settings form layout while preserving dark mode. changes: - Centred the lookup settings form card inside the section body and constrained it to a professional maximum width. - Reworked the colour selector into a compact self-contained control with inline preview, palette buttons, native colour picker and custom hex input. - Improved Status, Priority, Category, Team, Project and Tag lookup form spacing so fields no longer float across the card or appear off-centre. - Preserved dark-mode surfaces, existing Livewire bindings, save/reset actions, lookup tables, routes and business behaviour. - Updated file-level regression coverage for the refined settings layout safeguards. - Preserved append-only changelog history. - version: 1.10.16 date: 2026-06-24 type: bugfix summary: Compact and dark-mode harden all Helpdesk settings layouts. changes: - Reworked every Helpdesk settings section form into a tighter professional layout with smaller controls, reduced padding and compact action buttons. - Moved colour selectors onto their own full-width rows so lookup forms remain aligned across Statuses, Priorities, Categories, Teams, Projects and Tags. - Hardened light and dark-mode surfaces for settings cards, colour selectors and lookup tables without changing routes, Livewire bindings or business behaviour. - Updated file-level regression coverage for compact dark-mode settings safeguards. - Preserved append-only changelog history. - version: 1.10.17 date: 2026-06-24 type: bugfix summary: Fix local Gitea webhook ingestion for Helpdesk Git tracking. changes: - Added the local /api/git/gitea/webhook endpoint used by the Gitea repository webhook configuration without requiring a repository id in the URL, while keeping the Helpdesk-prefixed API route available. - Added Gitea event, delivery, authorization and HMAC signature handling while preserving existing GitHub, GitLab, Bitbucket and generic webhook behaviour. - Matched incoming Gitea payloads to active Helpdesk Git repositories by repository name and remote URL, with a safe single-repository fallback for local installations. - Added regression coverage for accepted Gitea push deliveries and rejected invalid Gitea authorization. - Preserved append-only changelog history. - version: 1.10.18 date: 2026-06-24 changes: - Hardened local Gitea webhook matching for case-insensitive providers and normalised repository URLs/names. - Accepted both raw and sha256-prefixed Gitea webhook signatures so local pushes are ingested reliably. - Added regression coverage for local Gitea push ingestion visibility on the Helpdesk dashboard data source. - version: 1.10.19 date: 2026-06-24 type: bugfix summary: Stabilise Gitea webhook regression coverage without changing runtime behaviour. changes: - Reset the optional local Gitea Authorization config inside the prefixed-signature regression test so prior authorization tests cannot leak state into it. - Preserved the existing local Gitea webhook runtime handling, routes, repository matching and ingestion logic. - Preserved append-only changelog history. - version: 1.10.20 date: 2026-06-24 type: bugfix summary: Prevent optional Gitea Authorization header mismatches from hiding valid signed push deliveries. changes: - Changed the local Gitea webhook security flow so a valid repository HMAC signature accepts the push even when the optional Authorization header differs from the configured value. - Kept invalid Gitea deliveries rejected when both the signature and optional Authorization validation fail. - Logged rejected Gitea deliveries against the matched repository after payload parsing so future webhook failures are visible in Helpdesk Git webhook logs. - Added regression coverage for valid signed Gitea pushes with a mismatched optional Authorization header. - Preserved append-only changelog history.