v1.2.2
Fixed
-
Customer priority filter now actually filters (#66, fixes #64) —
Customer\TicketController@indexwas dropping thepriorityURL param (and several other visible filters) before calling the driver. The sharedTicketFilters.vuecomponent still rendered a priority dropdown, so the param landed in the URL but never reached awhereclause. Allow-list now matches every key the UI sends:status,priority,ticket_type,search,tag,has_attachments,created_after,created_before, plus sort controls. Agent/admin/api paths were never affected — regression tests added for all three to prevent drift. -
Graceful fallback when the host's
userstable has nonamecolumn (#65, fixes #63) — ticket search (Ticket::scopeSearch+LocalDriverrequester filter) assumed anamecolumn existed on the host's user model and would either error against Postgres (column users.name does not exist) or silently return empty against sqlite. The newEscalated::applyUserSearch()helper now consultsconfig('escalated.user_display_column'), checksSchema::hasColumnonce per process, and silently degrades to email-only search when the column doesn't exist. Hosts with splitfirst_name/last_namecolumns now work out of the box; settingESCALATED_USER_DISPLAY_COLUMN=first_namegives them full first_name+email search. -
Install command no longer duplicates migrations (#62, fixes #61) — re-running
php artisan escalated:install(e.g. during package upgrades) previously republished every migration with a fresh timestamp prefix, leaving the host with duplicate*_create_escalated_*_table.phpfiles and a brokenmigraterun. Install now globs for existing*_create_escalated_*_table.phpfiles and skips publication if any are present;--forcedeletes the stale copies first before republishing.
Full changelog: v1.2.1...v1.2.2