Přeskočit na hlavní obsah

v9

UCS Operator - changelog

All notable changes to this project will be documented in this file.

[9.29.1] - 2026-08-10

🐛 Bug Fixes

  • (recent-calls) Localize tooltip

[9.29.0] - 2026-08-10

🚀 Features

  • (dial) Grow dial input to fill whole space to fit longer names
  • (dial) Make dial number suggestsions respect display density settings
  • (recent-calls) Dial number of recent call on click

🐛 Bug Fixes

  • (density) Fix missing paddings on small display in compact density

⚙️ Miscellaneous Tasks

  • Replace debounce with configurable debounce

[9.28.2] - 2026-08-03

🐛 Bug Fixes

  • Avoid crashing api integration by undefined 'this'

[9.28.1] - 2026-07-29

🐛 Bug Fixes

  • Change background color of top menu from brand orange color to light gray

[9.28.0] - 2026-07-28

🚀 Features

  • Hangup active bridge call on handset down
  • (RecentCalls) Scale rows with user display density
    • Read main.density from application settings and drive row padding, gaps, minimum height, direction icon, primary/meta type, and the Semantic play icon size from a per-widget DENSITY_TOKENS table. Compact preserves the original rendering so existing deployments do not shift; comfortable and touch target BeFREE 10 operators.

🐛 Bug Fixes

  • Remove legacy hotkey sequece listeners

🚜 Refactor

  • (density) Move Density enum to lib
    • Application settings previously reached into widgets/DispatchingRooms/density to import DENSITY_VALUES, and RecentCalls had its own duplicate of the same tuple. Extract the enum and the Density type to src/lib/density so both widgets and the settings schema share one source of truth. Per-widget token tables stay local: the fields DispatchingRooms and RecentCalls need do not overlap enough to justify a shared composition yet.

🎨 Styling

  • Reformat whole project

⚙️ Miscellaneous Tasks

  • Add git blame ignored commits to skip reformat commits
  • Blame ignore project reformat

[9.27.0] - 2026-07-28

🚀 Features

  • Make top menu respect display density settings
  • Skip device identification if device is already paired

[9.26.0] - 2026-07-27

🚀 Features

  • (dispatch-bridge) Hide other's attended calls that are already connected because they are not important for others anymore
  • (dispatching) Add configurable display density
    • Dispatching runs on BeFREE 10 touch panels (10.4", 1024x768) where the compact layout was sized for 20 concurrent calls, but real load is around five. Compact, comfortable and touch presets trade that unused density for legible text and touch targets clearing the ~9mm minimum.

Density is an application setting rather than a widget one, since it follows the operator's eyesight and hardware, not a widget instance. Compact reproduces the previous rendering and stays the default.

Also fixes two pre-existing defects: a malformed active: variant that left cards without press feedback, and a missing ucsMirror.users mock that crashed the stories. The action row moves off Semantic's button, whose higher-specificity styles made Tailwind sizing inert.

  • (dispatching) Enlarge touch density typography
    • Field testing on the BeFREE 10 showed the caller name still reading too small. text-xl shares the line height of text-lg, so the identity and timer grow without changing card height.

Moves the status line into the density tokens as well; it was pinned at text-xs, rendering action errors at roughly 2.5mm on that panel.

  • (dispatching) Add single-column layout option
    • Split leaves the bottom of the own-calls column idle, since operators usually have one or two active calls. Stacked runs all three sections down one column, trading vertical headroom for full-width cards whose caller identity no longer truncates. Split stays the default.

Queue sections are marked by rules carrying a label and a count. The label stays at text-xs at every density: it is wayfinding for new users, and sitting on the rule costs no vertical space. Own calls get no rule and show "No active calls" instead, which also fills a blank region that split layout left unexplained.

Lists, separators and the dashed placeholder move into their own components so both layouts compose the same pieces. Cards and lists gain shrink-0, without which they collapsed inside a scrolling flex column and painted over the following section.

  • (dispatching) Stabilise participated action row positions
    • Slot 1 now always holds the state-advance action (Answer, Hold, Resume) so the button under the operator's finger keeps a compatible meaning across ringing to connected. Slots 2 to 4 stay empty during ringing rather than repositioning slot 1, and Hangup sits in slot 5 behind a fixed safety column so the destructive action never neighbours Leave.

Actions moved to a CSS grid defined in participated-bridge-view.module .scss; bridge-card-layout no longer forces a flex row on its actions prop so each view owns its own layout.

🐛 Bug Fixes

  • Localize display density settings

🚜 Refactor

  • (dispatching) Unify bridge card header layout
    • Compact placed the timer beside the state icon and pushed the caller to the right edge, while looser densities gave the caller the middle slot. Fields therefore swapped sides when density changed.

All densities now use one fixed slot order, so only the type scale varies. Compact additionally gains identity truncation and a right-aligned tabular timer.

  • (dispatching) Redesign bridge card accents via css module
    • Card state was signalled by a 4px coloured left edge, hard to catch in peripheral vision on a 123 DPI panel viewed at an oblique angle. Full borders plus a matching body tint register faster while scanning, without changing the card's height or width.

Colours are derived through the theme's OKLCH l/c rails and selected via a data-accent attribute on the card, so both light and dark surfaces stay in step with the rest of the app and the mapping lives in one place. Waiting reads flatter than the base to keep the queue of unclaimed calls from competing with cards that need action.

Callers now pass a typed accent (participating | attended | waiting) instead of a raw class name, so the waiting case stops being an empty string and the compiler will flag a new state if one is added.

🧪 Testing

  • Import unit test functions to prevent false positive syntax errors

[9.25.1] - 2026-07-24

🐛 Bug Fixes

  • (email) Add czech localization

[9.25.0] - 2026-07-24

🚀 Features

  • (crm) Split settings of automatic crm tab opening to out/in calls

[9.24.0] - 2026-07-24

🚀 Features

  • (email) Display email id in test env
  • (email) Enhance UX of template menu

🐛 Bug Fixes

  • (email) Replace email.edit with email.get API in embeded email viewer
  • (email) Save only unsaved email data fields to prevent unassigning the agent when they had the email already opened

[9.23.0] - 2026-07-19

🚀 Features

  • (dispatch-bridge) Ring with distinctive sound when there is unattended bridge

[9.22.5] - 2026-07-18

🐛 Bug Fixes

  • (dispatching-rooms) Replace mod + fkey with f13/14

[9.22.4] - 2026-07-18

🐛 Bug Fixes

  • Remove froala dark mode customization as it made popups transparent
  • (email) Make email background always white even in dark mode to make email body consistent
  • (dispatching-rooms) Add alternative hotkeys for handset down and handset up events to prevent writing macro into inputs

[9.22.3] - 2026-07-15

🐛 Bug Fixes

  • (email) Allow adding template multiple times

[9.22.2] - 2026-07-15

🐛 Bug Fixes

  • Do not activate temp tabs if activate is disabled

[9.22.1] - 2026-07-14

🐛 Bug Fixes

  • (email) Localize 'replied' email state

[9.22.0] - 2026-07-14

🚀 Features

  • (audio) Add silent and loud audio profiles that can be applied using macro
  • (uphone) Connect webrtc even when there are connected dispatching bridges
  • (dispatch-bridge) Allow user filter which dispatch bridges will be visible to them in ui
  • (dispatch-bridge) Replace texts with visual interpretation of empty dispatch bridge
  • Add title with user's displayname to person icon
  • (dispatch-bridge) Always display name and number of pstn participant even when there is more than 2 participants
  • (dispatch-bridge) Display dispatch bridge debug json if enabled in config
  • (dispatch-bridge) Add possibility to add workmates to bridge
  • (dispatch-bridge) Filter workmates by team so dispatcher sees only users in same team

🐛 Bug Fixes

  • (audio) Add czech localization
  • (kiosk) Allow conflicting hotkey sequence for handsetup
  • Revert work in progress changes
  • (dispatching-rooms) Localize dispatch bridges
  • (dispatching-rooms) Localize dispatch bridges
  • (dispatching-rooms) Localize dispatch bridges
  • (email) Switch between send and replied email states when user changes email direction filter

🚜 Refactor

  • Remove redundant type annotation

⚙️ Miscellaneous Tasks

  • Add unicode flags to dev bundler config regexps
  • Make dev proxy work via .env file
  • Specify that app should be run with sudo and env file in dev mode
  • Fix csp in dev env

[9.21.2] - 2026-07-07

🐛 Bug Fixes

  • (email) Address alignment
  • (email) Hide inline email attachements conditionally to support former ucs versions

🚜 Refactor

  • (outbound) Infer lead type from parser
  • (dispatch-bridge) Make dispatching rooms query reusable

[9.21.1] - 2026-07-02

🐛 Bug Fixes

  • (outbound) Localize not found text

[9.21.0] - 2026-07-02

🚀 Features

  • (template) Add saving status to template editor

🐛 Bug Fixes

  • (template) Fix wording
  • (email) Make tempalte group and email queue when sending new email searchable
  • (outbound) Fix outbound lead parser

[9.20.3] - 2026-07-01

🐛 Bug Fixes

  • (email) Fix editor content styles

[9.20.2] - 2026-06-26

🐛 Bug Fixes

  • (localization) Remove redundant tests

[9.20.1] - 2026-06-26

🐛 Bug Fixes

  • (dispatch-bridge) Localize texts
  • Replace ... with …
  • (dispatching-rooms) Localize dispatch bridges
  • (email) Make email queue widget table horizontally scrollable when it overflows

🚜 Refactor

  • (outbound-queue) Replace redux saga with tanstack query
  • (outbound-queue) Replace moment with luxon
  • (outbound-queue) Add outbound result form typing
  • (dispatch-bridge) Remove non-existent css class
  • (dispatch-bridge) Centralize actiond dispatching to make sure that user cannot click to actions when previous action did not finish yet
  • (dispatch-bridge) Restructure code

🧪 Testing

  • Create story for dispatching rooms with action in progress

⚙️ Miscellaneous Tasks

  • Repair storybook building
  • Create storybook for dispatching rooms
  • Fix eslint issues

[9.20.0] - 2026-06-23

🚀 Features

  • (uphone) Assume kiosk device to be uphone

🐛 Bug Fixes

  • (tasks) Fix displaying crm reference icon in rich task description

[9.19.0] - 2026-06-22

🚀 Features

  • (email) Redesign email list widget filter preset buttons and add 2 more options

[9.18.1] - 2026-06-22

🐛 Bug Fixes

  • (email) Allow opening external links from email but open them in new tab

⚙️ Miscellaneous Tasks

  • Add bunfig.toml with minimum release age

[9.18.0] - 2026-06-17

🚀 Features

  • (search) Focus crm search input using hotkey

[9.17.1] - 2026-06-17

🐛 Bug Fixes

  • (template) Reload template when attachment is uploaded

[9.17.0] - 2026-06-16

🚀 Features

  • (outbound) Remove outbound finish mood reporting

🐛 Bug Fixes

  • (tasks) Adjust spacing in embeded email in task history
  • (email) Display attachment upload in template editor
  • (email) Reload email template when attachment gets deleted to give response to user

[9.16.0] - 2026-06-16

🚀 Features

  • (email) Add icons and labels to action history to so changed properties are better readable

🐛 Bug Fixes

  • (email) Remove redundant right margin at print button
  • (reports) Fix incorrectly styled datetime input

🚜 Refactor

  • (email) Replace enabled flag with skipToken

[9.15.1] - 2026-06-15

🐛 Bug Fixes

  • (email) Use standard spacing token in email sticky send button family

⚙️ Miscellaneous Tasks

  • Reformat build config
  • Upgrade rspack to v2

[9.15.0] - 2026-06-12

🚀 Features

  • (email) Make cancel/task/save/send buttons in email editor stuck to bottom of window edge to avoid the needness of scrolling down to send email

[9.14.0] - 2026-06-11

🚀 Features

  • (supervisor-control) Ux enhancements

🐛 Bug Fixes

  • (supervisor-control) Always add/remove/activate/suspend only agents/queues that are currently displayed to agent with respect to applied filters

[9.13.0] - 2026-06-11

🚀 Features

  • (supervisor-control) Allow user quickly hide columns by queue type in supervisor control

🐛 Bug Fixes

  • (supervisor-control) Prevent crashing the app when user has no permissions to any queue

[9.12.0] - 2026-06-11

🚀 Features

  • (email) Allow filtering emails by tag

🐛 Bug Fixes

  • (email) Display tags in email queue list widget

[9.11.1] - 2026-06-08

🐛 Bug Fixes

  • (email) Remove 'Email detail' text from printed email to save space

[9.11.0] - 2026-06-08

🚀 Features

  • (supervisor-control) Make sure that agents are loaded when moving team of agents from one state to another
  • (supervisor-control) Add 'hide offline agents' checkbox to filter
  • (supervisor-control) Visualy separate filter and profiles
  • (supervisor-control) Put filter and profiles to left aside on ultrawide screens
  • (supervisor-control) Make whole cell clickable to adjust skill
  • (supervisor-control) Highlight row and column to indicate which agent and queue is being assigned
  • (supervisor-control) Remove profiles as nobody uses them

🚜 Refactor

  • (supervisor-ctrl) Refactor code
  • (supervisor-ctrl) Remove dead imports

⚙️ Miscellaneous Tasks

  • (supervisor-ctrl) Reformat code
  • Remove overflow from dev build
  • Exlude analysis data and changelogs from search all

[9.10.0] - 2026-06-08

🚀 Features

  • (email) Hide inline attachments (if backend supports attachment inline flag)
  • (email) Display attachment icon at subject when email has non-inline attachment

[9.9.0] - 2026-06-05

🚀 Features

  • (email) Save email tags right after adding/removing each of them

🐛 Bug Fixes

  • (email) Prevent close email button with reason overflowing its containers
  • (email) Hide reply buttons texts on medium displays

[9.8.0] - 2026-06-04

🚀 Features

  • (email) Allow language filtering via table header
  • (uphone) Enable dtmf keyboard in uphone

🐛 Bug Fixes

  • (email) Add missing localization

[9.7.1] - 2026-06-02

🐛 Bug Fixes

  • (email) Correctly display images in sent emails
  • (email) Wait for images to load when printing email

[9.7.0] - 2026-06-01

🚀 Features

  • (email) Add header to printed email

[9.6.2] - 2026-06-01

🐛 Bug Fixes

  • (email) Prefix email body attachment path to load images inline correctly

[9.6.1] - 2026-06-01

🐛 Bug Fixes

  • (localization) Add czech localization of 'Print'

[9.6.0] - 2026-06-01

🚀 Features

  • (email) Add print button

🚜 Refactor

  • Load lookup email contacts via tanstack query instead of saga

[9.5.0] - 2026-05-30

🚀 Features

  • (email) Replace basic input with clearable input in email widget subject and from filter
  • (email) Redesign email layout
  • (email) Add flag icon to language selector in email
  • (email) Separate note with it's own submit button and put back reason to clear what inputs correspond with put back / update buttons
  • (email) Save modified email information right after changing the value by introducing edit and save buttons at the field
  • (email) Visualy unify static and editable email data
  • (email) Make reply all / forward / create task less visualy important
  • (email) Make cancel / save / create task less visualy important
  • (email) Spacing and rounding polish

🐛 Bug Fixes

  • (email) Prevent memory leaks by using srcDoc instead of src with createObjectURL which wasnt released
  • (email) Add email 'send again' recipients automatically on blur
  • (email) Add missing localization
  • (email) Make attachment dropbox background respect dark mode

⚙️ Miscellaneous Tasks

  • Add impeccable skill
  • (email) Reformat code

[9.4.1] - 2026-05-27

🐛 Bug Fixes

  • (email) Show email quick filter in agent mode even if queue is selected in settings

[9.4.0] - 2026-05-27

🚀 Features

  • (email) Color email tags in email header data form

[9.3.1] - 2026-05-27

🐛 Bug Fixes

  • Add missing localizations

[9.3.0] - 2026-05-27

🚀 Features

  • (call-history) Make tables more compact to fit more content
  • (design) Separate library and project styles to layers to enahnce styling ergonomy
  • (email) Add icons to reply buttons and display text only on large displays
  • (email) Hide new task button text on small and medium displays
  • (email) Make email header information table more compact

🐛 Bug Fixes

  • (wysiwyg-editor) Update license key
  • (design) Adjust rounding of table
  • (design) Apply full width to only direct child elements instead of all successors in device selection
  • (call-history) Make call direction icon cell fixed size to make sure it does not dissapear when there is too much content in the table
  • (admin) Remove json rendering in user list
  • (admin) Redesing director page in administration
  • (email) Add spacing between email person name and crm person badge
  • (email) Add email addresses automatically on blur

🚜 Refactor

  • (call-history) Refaactor styling of call history filter to remove legacy styling practices in favour of modern approach
  • Remove unused breadcrumb SUI styles
  • Remove forgotten breadcrumb style files
  • Remove unused ad SUI styles
  • Remove unused card SUI styles
  • Remove unused comment SUI styles
  • Remove unused container SUI styles
  • Remove unused embed SUI styles
  • Remove unused image SUI styles
  • Remove unused item SUI styles
  • Remove unused nag SUI styles
  • Remove unused placeholder SUI styles
  • Remove unused progress SUI styles
  • Remove unused rail SUI styles
  • Remove unused reveal SUI styles
  • Remove unused shape SUI styles
  • Remove unused sidebar SUI styles
  • Remove unused statistic SUI styles
  • Remove unused step SUI styles
  • Rename incorrectly named variable in email template selector

⚙️ Miscellaneous Tasks

  • Reformat code
  • Reformat css code
  • Ignore tanstack query query key lint rule because there is usually unserializable api instance

[9.2.1] - 2026-05-19

🐛 Bug Fixes

  • (queues) Listen for inbound queue update events and sync queue active state

[9.2.0] - 2026-05-18

🚀 Features

  • (uphone) Disable device selection inputs when device options are not loaded from browser api yet
  • (tabs) Automatically remove unused tabs after long inactivity

🚜 Refactor

  • (uphone) Unify auto answer and ring output device setting

[9.1.2] - 2026-05-18

🐛 Bug Fixes

  • (lexical) Install prettier as dependency to enable prettier plugin in lexical editor

⚙️ Miscellaneous Tasks

  • (uphone) Log whether output/ring/input device change was origined by user interaction or FE API call
  • (dev-server) Disable react-refresh for instance config and volumeMeterProcessor

[9.1.1] - 2026-05-15

🐛 Bug Fixes

  • (build) Define exact version of otel api library to make sure that patch is applied

[9.1.0] - 2026-05-15

🚀 Features

  • (widget-core) Rewrite widget layout edit mode core
  • (login) Reintroduce automatic user mobility logout when user logs out via Operator API to keep compatibility with 3rd party applications

🐛 Bug Fixes

  • Prevent datetime calendar picker to jump back to current month

⚙️ Miscellaneous Tasks

  • (changelog) Setup changelog generating to v9 file
  • (changelog) Automate generating changelog separated by major version into files

[9.0.0] - 2026-05-13

🚀 Features

  • (login) [breaking] User's paired device is no longer unpaired on logout

🚜 Refactor

  • (widget-core) Add typing of widget layout actions
  • (widget-core) Remove unsued exception declaration

⚙️ Miscellaneous Tasks

  • Reformat code
  • (oxlint) Install missing lint plugins
  • (oxlint) Remove rule causing oxlint fail on parsing typescript