v8
UCS Operator - changelog
All notable changes to this project will be documented in this file.
[8.40.5] - 2026-05-12β
π Bug Fixesβ
- (uphone) Never play ringing when user has dialer call that is autoanswered
[8.40.4] - 2026-05-11β
π Bug Fixesβ
- (uphone) Play ringtone even for outbound calls that were dialed via dialer and user is assigned to the call
[8.40.3] - 2026-05-11β
π Bug Fixesβ
- (uphone) Play auto-answer beep also when autodialer outbound call is assigned to agent with auto-answer feature
[8.40.2] - 2026-05-11β
π Bug Fixesβ
- (uphone) Prevent ring audio replay on call update by reassigning the audio src only when the src actually changed
[8.40.1] - 2026-05-11β
π Bug Fixesβ
- (uphone) Change auto-answer beep src via useEffect so changing src does not pause the audio
[8.40.0] - 2026-05-08β
π Featuresβ
- (core) Display line selector based on new device sync
π Bug Fixesβ
- (Licences) Add rel=noreferrer to external links
- (uphone) Change audio src via useEffect so audio is not played before the src is set
π Refactorβ
- (call-history) Dial call participant in call history using dial mutation instead of saga
- (call-history) Separate recording cell to avoid calling unused hooks when the cell is not rendered
- Replace Flexbox with div
- (ui/dialog-modal) Migrate to tailwind utilities
- (ui) Remove VerticalContainer and its styles
- (callUtils) Replace Participation enum with string union
- (component) Use type-only Map import
βοΈ Miscellaneous Tasksβ
- Remove IE support in call history
[8.39.0] - 2026-05-06β
π Featuresβ
- (core) Create identity hook that allows accesing user profile
- (core) Create device hook that allows accesing device detail
- (core) Add device lines to device parser
π Bug Fixesβ
- (email) Align buttons with email table under it to remove extra space
- (campaign-compact) Inform user about lead loading error with more detail
- (outbound) Add missing czech translation
- (reports) Add backwards compatible report conditions (call direction + answered/unanswered)
π Refactorβ
- (campaign-compact) Remove unused property
- Simplify ResultForm layout
-
- Replace the Flexbox layout in ResultForm with div wrappers
-
- Introduce Button.Group and Popup for finishing mood options
- Move Trans import to the correct path
- Delete obsolete index.scss for finishers styling
- (core) Experimentally prepare next device sync via new API under feature flag
- (core) Replace clearInterval with clearTimeout
βοΈ Miscellaneous Tasksβ
- (storybook) Create stories for compact campaign widget
- Reformat code
- (typing) Make scrollable widget area ref nullable
[8.38.0] - 2026-05-04β
π Featuresβ
- (uphone) Ring with different audio file if distinctive_ring parameter is set on call
- (uphone) Change auto-answer notificaion sound according to distinctive ring call parameter
[8.37.0] - 2026-05-01β
π Featuresβ
- (account-code) Move window to top to draw attention if running in electron container
[8.36.0] - 2026-04-22β
π Featuresβ
- (api) Add dialer_id to queue parameters
π Bug Fixesβ
- (webrtc) Avoid throwing error when webrtc was gracefully asked to shut down
[8.35.2] - 2026-04-20β
βοΈ Miscellaneous Tasksβ
- Reformat code
[8.35.1] - 2026-04-20β
π Bug Fixesβ
- (uphone) Pass handshake add at correct position
[8.35.0] - 2026-04-20β
π Featuresβ
- (uphone) Send handshakeId while webrtc setup to correctly pair sdp and candidates
[8.34.1] - 2026-04-20β
π Bug Fixesβ
- (sms-widget) Handle legacy queue settings and upgrade it to current shape
- (settings-parser) Register RecentCalls widget to settings parser
- (settings-parser) Assign position to all tabs if one of them is missing the position
- (settings-parser) Rename Note to NoteWidget in application settings to support legacy schema
- (settings-parser) Rename Transformation to SettingsModifier in application settings to support legacy schema
- (design) Make note widget space around the text more compact
π Refactorβ
- (user-add) Replace target user selection input with final form integrated component to remove deprecated redux form component
- (form-datetime-input) Conver redux form datetime input integration to typesript
- Remove unused code
π§ͺ Testingβ
- (settings-parser) Add settings parser unit test
- (settings-parser) Add customer settings to enable tests
βοΈ Miscellaneous Tasksβ
- Remove debug log from application settings parser
- (settings) Parse application settings alongside with tabs in futureParser
[8.34.0] - 2026-04-15β
π Featuresβ
- (menu) Enable home button even when tabs are on the right side
π Refactorβ
- (app-settings) Replace space characters with flex gap
[8.33.4] - 2026-04-14β
π Bug Fixesβ
- (widget-core) Rewrite small overflow detection to avoid infinite re-render loop
- (widget-core) Replace small overflow detection with thin scrollbar to not fight browser behaviour
[8.33.3] - 2026-04-14β
π Bug Fixesβ
- (supervisor-control) Prevent application crash when supervisor control component is configured to display queues that user has no access to
[8.33.2] - 2026-04-14β
π Bug Fixesβ
- (error-handling) Replace decorator with function call to avoid experimental parser features
[8.33.1] - 2026-04-14β
π Bug Fixesβ
- (error-handling) Add czech locales
[8.33.0] - 2026-04-14β
π Featuresβ
- (error-handling) Add error boundaries that will catch rendering errors early and do not block application vitals
π Bug Fixesβ
- (pbx-structure) Add ai extension to parser
- (director) Add director api method to API stub
βοΈ Miscellaneous Tasksβ
- Allow multiple classes per file
- Reformat code
- Disable max-lines eslint rule
[8.32.1] - 2026-04-09β
π Bug Fixesβ
- (design) Make sure that button widget modern desing styles are applied even in production build
[8.32.0] - 2026-04-09β
π Featuresβ
- (email) Modernize email widget colors (modern feature flag required)
- (tasks) Modernize task widget colors (modern feature flag required)
- (design) Allow enabling modern design via feature flag
βοΈ Miscellaneous Tasksβ
- Reformat code
[8.31.0] - 2026-04-09β
π Featuresβ
- (call-history) Replace loading circle and overlay with lightweight loading line above call history
π Bug Fixesβ
- (call-history) Stick pagination to page bottom and make call history table scrollable to avoid pagination jumping
π Refactorβ
- (call-history) Reformat code
[8.30.0] - 2026-04-08β
π Featuresβ
- (call-detail) Rearrange layout to make it more compact and easier to reach call transcription
- (call-detail) Color call detail based on call direction
[8.29.3] - 2026-04-08β
π Bug Fixesβ
- (references) Replace non breaking space with inline flex gap which disappears when reference description is not defined
- (dial) Do not show 'Call originate failed' error to user as it's usually a false positive (api)
π Refactorβ
- (crm) Extract interaction rendering to compoenent to enhance readability
[8.29.2] - 2026-04-07β
π Bug Fixesβ
- (dial) Do not show 'Call originate failed' error to user as it's usually a false positive
βοΈ Miscellaneous Tasksβ
- Reformat code
[8.29.1] - 2026-04-02β
π Bug Fixesβ
- (call-detail) Handle missing call path because it's not available in active call
[8.29.0] - 2026-04-02β
π Featuresβ
- (button) Add button widget option opening detail of active call
- (call-detail) Add call path timeline and redesign call detail
π Bug Fixesβ
- (widget-core) Use default settings if stored widget settings is empty
[8.28.3] - 2026-04-01β
π Bug Fixesβ
- (call-history) Datetime range will no longer disappear
[8.28.2] - 2026-03-31β
π Bug Fixesβ
- (passwordless) Pass public hostname to mobile app instead of origin to enable logging in from different networks
[8.28.1] - 2026-03-31β
π Bug Fixesβ
- (widget-link) Add space around so border is not clipped when the widget is 1 unit high
- (design) Adjust main color lightness level in modern design
π Refactorβ
- (widget-core) Redesign small overflow recalculation to idiomatic react approach
[8.28.0] - 2026-03-31β
π Featuresβ
- (crm) Add crm person tasks state filter
[8.27.0] - 2026-03-30β
π Featuresβ
- (button) Simplify button design to align it with design of rest of the application
- (task) Replace time tracking reset button icon with eraser icon instead of X
- (task) Make 'Add comment' button disabled if comment textarea is empty
- (crm) Make crm person contacts scrollable
π Bug Fixesβ
- (crm) Fix disappearing changes while editing crm person
π Refactorβ
- (crm) Add and edit crm contacts using mutation to reflect request state and hide the modal when change was successful
βοΈ Miscellaneous Tasksβ
- Reformat code
- Reformat code
[8.26.0] - 2026-03-27β
π Featuresβ
- (dial) Dial number via mutation to utilize synchronization of call dial on server
π Bug Fixesβ
- (dial) Begin transferring call after pressing Enter or # while in number input
- (call-history) Fix parsing from and to filter parameters
- (otp) Generate token for impersonated user instead of real user
- (sms-widget) Correctly pass selected queue to api
π Refactorβ
- (selectors) Reuse selector
- (button) Remove value prop from design system button component
βοΈ Miscellaneous Tasksβ
- Reformat code
- Allow inline comments and todos in linter
Reafactorβ
- (task) Repalce disabled prop with click handler that may be undefined
[8.25.0] - 2026-03-25β
π Featuresβ
- (call-detail) Call path tooltips are localized
- (crm) Add 'New Task' button to the top of CRM Person
- (recording-playback) Playback can start right after modal opening if enabled in feature flag
- (outbound) Display only queue name in Outbound queue widget when only one queue is configured. It makes the widget design more lightweight.
- (touchscreen) Enlarge hitbox of play icon in recent calls widget to enhance ux while using touch screen
- (tel-protocol) Register for tel: protocol request from electron native app wrapper to enable integration with other applications
- (uphone) Advertise multiple supported codecs
- (design) Allow enabling modern design via dev toolbelt
- (link-widget) Redesign link/button widget (only available if modern design is enabled)
- (design) Redesign tile statistics widgets (modern design configuration required)
- (design) Apply default widget design (modern design settings required)
- (design) Modernize checklist design (modern design needs to be enabled)
π Bug Fixesβ
- (recording-playback) Fix waveform ignoring autoplay parameter in configuration
- (recent-calls-widget) Handle case when agents in cdr event might be null
- (design) Wrap Task allocation button and Campaign lead dial buttons in button group to remove redundant spacing
- (sms-widget) Ignore configured queues that are not available to user.
- (recent-calls-widget) Localize text of play recording icon title
- (recent-calls-widget) Enhance UI of Recent calls widget by using beautified variants of widget configured color
- (recent-calls-widget) Localize text of play recording icon title
- (link-widget) Add default value of exe integration
- (design) Adjust color levels
- (design) Make default widget background 1 level lighter
- (test) Update test snapshot to match new design
- (design) Fix link widget hover incorrect color shade (modern design)
- (dial) Disable dialing component when call is already in progress
- (person-metadata) Display metadata even when only built-in metadata are available (e.g. person.id)
- (agent-stats) Divide total idle duration by number of idle periods instead of number of calls
π Refactorβ
- Remove unused localizations
- Select all required state parameters in one selector
- Replace custom Flexbox component with tailwind flexbox which is more ergonomic
- Replace custom Flexbox component with tailwind flexbox which is more ergonomic
- Add type check of value in AllocateButton in task queue widget to prevent type errors
- (link-widget) Remove commented code
- (link-widget) Move link widget styling into the component to clean widget composition core
- (agent-status-widget) Remove unused import
- (widget-core) Delegate tile widget color stylig to tile core with only provided css variable with required color
- (link-widget) Determine text color via css computation and increse text contrast to enhance accessibility
π¨ Stylingβ
- Reformat code
- Reformat code
- Reformat code
- Reformat code
- Reformat code
- Reformat code
- Reorder package.json library dependencies to respect alphabet
- Reformat code
- Reformat code
- Reformat code
βοΈ Miscellaneous Tasksβ
- Remove unused import
- Add parameter type to fix type error
- Make rspack proxy work finally
- Add logout route to proxy
- Add uauth route to proxy
- Fix typing of Pick component
- Add api route to proxy
- Upgrade rspack and storybook
- Add ElementRoot as storybook decorator to provide theme variables
- Fix remove.proxy patch
- Add missing typing to Pick component
- Make the development proxy optional via environment variable DEV_PROXY instead of patch
- Add development toolbelt to bottom of app and move there dev indicator icon from top menu
- Add primary/secondary colors to tailwind palette
- (styling) Add tailwind radius levels to css variable palette and map them to tailwind to allow their usage in css files
- (test) Update snapshots to match redesign
- (eslint) Fix usage of typescript parser in eslint config
- (eslint) Remove eslint-plugin-react-compiler as it's no longer needed because eslint-plugin-react-hooks covers it
- (code) Sort imports using eslint instead of prettier
- (tooling) Replace prettier with oxfmt
- (linting) Replace eslint with oxlint
- (ci) Adjust linting of changed files to avoid linting everything when nothing changed
- Disable no-negated-condition in oxlint conf
[8.24.1] - 2026-03-02β
π Bug Fixesβ
- (recent-calls-widget) Add czech localization
[8.24.0] - 2026-03-02β
π Featuresβ
- (widget) Add widget displaying agent's recent calls with ability to play call recording
[8.23.1] - 2026-02-27β
π Bug Fixesβ
- Supervisor view shared data column won't display characters of string values
- Display tabs menu in main menu in correct order
π Refactorβ
- Provide electron executable via react context to avoid parsing it multiple times
- Unify rich metadata parsers with core lib
- Remove empty component props interface
- Remove empty props interface of lookup search component
- Remove DashboardState from store state type as it gets inferred from store
- Parse widgetIds from selected widgets when editing dashboard to avoid type error
- Remove deprecated AgentSortEnum enum
- Rewrite supervisor overview reducer to redux toolkit slice to enhance type safety
- Replace supervisor view agent sorting enum with union
- Pass agent sort value to change callback to enhance clarity and type safety
- Convert boolean to integer to avoid dynamic conversion when using + operator
- Remove all global store type definitions that can be inferred
- Remove dead code
- Remove non-existent global store slice type
- Define that transferNumber can be null
[8.23.0] - 2026-02-25β
π Featuresβ
- (supervisor-view) Add option allowing to hide suspended agents
π Refactorβ
- Remove unused import
[8.22.0] - 2026-02-25β
π Featuresβ
- (person-metadata) Add person.displayname as button template variable
[8.21.1] - 2026-02-24β
π Bug Fixesβ
- (structure-diagram) Add bigger spacing between components to avoid orphan nodes overlaping
[8.21.0] - 2026-02-24β
π Featuresβ
- (url-variables) Make url variable expansion handle legacy format using %
- (task) Support modern url template format in task metadata button
- (crm) Display crm person metadata
- (metadata) Support electron executable button type
π Refactorβ
- Replace runtime UnreachableError with compile time checked exhaustive switch
- Replace MetadataButtonType enum with union of constants
- Extract union types to constants to enhance readability and possibility to infer types
π¨ Stylingβ
- Reformat code
- Reformat code
- Convert direct return to classical function syntax
- Reformat code