Skip to main content

v8

UCS Operator - changelog

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

[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

[8.20.3] - 2026-02-19​

πŸ› Bug Fixes​

  • (widget-link) Add missing localizations

[8.20.2] - 2026-02-19​

πŸ› Bug Fixes​

  • (widget-link) Remove path from executable api parser as it will not be provided anymore

[8.20.1] - 2026-02-19​

πŸ› Bug Fixes​

  • (crm) Fix interaction editation crashing on metadata modification
  • (widget-link) Expand executable parameter template

🚜 Refactor​

  • Replace call_metadata selectors with metadataView selector

βš™οΈ Miscellaneous Tasks​

  • Switch to metadata_view instead of call_metatada but keep backwards compatibility

[8.20.0] - 2026-02-19​

πŸš€ Features​

  • (widget-button) When running in electron and executable api is exposed, allow configuring button to open executable

πŸ› Bug Fixes​

  • (dispatch-bridge) Display placeholders when there are no attended or unattended calls
  • (app-settings) Do not reset crm open configuration in app settings
  • (widget-button) Remove debug data
  • (localization) Add missing cz localization

🚜 Refactor​

  • Pass crmSuspend config as property instead of selecting it via hook to make sure it's not null
  • Select username via type checked selector to enhance type safety which prevents crashes

🎨 Styling​

  • Reformat code

βš™οΈ Miscellaneous Tasks​

  • Add test case

[8.19.0] - 2026-02-12​

πŸš€ Features​

  • (lookups) If configured, display input for new lookup record as first row of table instead of last

[8.18.2] - 2026-02-12​

πŸ› Bug Fixes​

  • (dispatch-bridge) Display participants number next to their name

[8.18.1] - 2026-02-12​

πŸ› Bug Fixes​

  • (dispatch-bridge) Fix unsubscribing from dispatching call while not connected

[8.18.0] - 2026-02-12​

πŸš€ Features​

  • (dial) Allow number typing confirmation using # symbol and focus dial input using F2 key
  • (dial) Allow hanging up outgoing call using hotkey anytime
  • (time-parser) Add unix timestamp parser
  • (dispatch-bridge) Add dispatch rooms widget that allow user act as a dispatcher
  • (dispathing) Add widget displaying calls in dispatching queues
  • (dial) If configured, focus dial whenever numpad is pressed

πŸ› Bug Fixes​

  • (api) Remove kvargs support in api connector as it isn't much of compatible with typing and replace the kvargs with positional args
  • (dispatch-bridge) Add target agent id to dispatch join request
  • (localization) Add missing cz localization

🚜 Refactor​

  • Extract dispatch bridges separation to function to enhance readability
  • (dispatch-bridge) Extract dispatch bridge buttons to component
  • Remove dead code

🎨 Styling​

  • Reformat code

βš™οΈ Miscellaneous Tasks​

  • Remove testing script

[8.17.0] - 2026-02-09​

πŸš€ Features​

  • (core) Change static tabs using Ctrl + Shift + 0-9 shortut

πŸ› Bug Fixes​

  • (widget-core) Support passing widget data in plain form instead of immutable in ComponentWrapper
  • Hide call dial error notification after 10 seconds
  • (dial) Do not focus dial automatically after app laods
  • (reports) Distinct query key in view and form body to prevent infinite data fetching

🚜 Refactor​

  • (widget-link) Remove dead code
  • (rating-templates) Remove immutable from data passed to server api
  • Select offset via selector to enhance type safety
  • Enhance typing of temp tabs
  • Replace tab data in content with js alternative to immutable to enhance type safety
  • Type widget select handler and sanitize invalid inputs
  • (supervisor-ctrl) Rewrite redux slice to toolkit approach to enhance type safety

⚑ Performance​

  • Do not memoize scroll callback as it does nothing since the child component is not memoized either

🎨 Styling​

  • Reformat code

βš™οΈ Miscellaneous Tasks​

  • Add comment warning that shared data should not be removed from ucs state even if it's not referenced by code because it can bse used in colorPath

[8.16.5] - 2026-02-02​

πŸ› Bug Fixes​

  • (waiting-callers) Passs correct data to waiting callers computation when calling api method 'state'

🚜 Refactor​

  • (waiting-callers) Remove dead code
  • Remove dead code (legacy notification state)
  • (shared-data-view) Use shared data in plain js form instead of legacy immutable
  • (recordins) Select configuration parameters via selector with parser to enhance type safety
  • (supervisor-view) Select shared data from new state
  • (widget-board) Replace state value with constant because the state was never changed anyway
  • (core) Move dashboard state (widget settings modal) to separate reducer

[8.16.4] - 2026-01-27​

βš™οΈ Miscellaneous Tasks​

  • (tanstack-query) Integrate devtools
  • (uPhone) Add uphone webrtc connection state change logging

[8.16.3] - 2026-01-26​

πŸ› Bug Fixes​

  • Mount context menu of Calls and Inbound queue widgets correctly so the context menu is correctly styled

⚑ Performance​

  • (waiting-callers) Compute number of waiting callers lazily to reduce memory footprint when the value is not needed

βš™οΈ Miscellaneous Tasks​

  • Fix v8 changelog

[8.16.2] - 2026-01-21​

πŸ› Bug Fixes​

  • (dial) Make contact type optional to support older UCS versions

[8.16.1] - 2026-01-21​

πŸ› Bug Fixes​

  • (dial) Add cz localization

[8.16.0] - 2026-01-21​

πŸš€ Features​

  • (dial) Add infinite scrolling of recent calls and lookup contacts

[8.15.0] - 2026-01-20​

πŸš€ Features​

  • (speed-dial) Allow changing font size in settings

🚜 Refactor​

  • (dial) Replace memo with TQ select

[8.14.0] - 2026-01-15​

πŸš€ Features​

  • (dial) Rewrite dial to enhance UX

πŸ› Bug Fixes​

  • (settings-modifier) Silence warning logged due to resource loading

[8.13.0] - 2026-01-13​

πŸš€ Features​

  • (menu) Display home link in top menu if tabs are displayed in dropdown menu

[8.12.8] - 2026-01-13​

πŸ› Bug Fixes​

  • (settings-modifier) Display currently configured value

[8.12.7] - 2026-01-09​

πŸ› Bug Fixes​

  • (localization) Add missing cz localization

[8.12.6] - 2026-01-09​

πŸ› Bug Fixes​

  • (director) Remove debug render

[8.12.5] - 2026-01-09​

πŸ› Bug Fixes​

  • (director) Disable director introduction when app is running in iframe and mic permission not provided

🚜 Refactor​

  • Move throttling detector to separate component to simplify connector
  • Separate buildUrl function from Connector so it can be reused out of the class scope
  • Separate recording download methods from Connector
  • Make chat subscription more idiomatic and via ref counted api
  • Load mergable persons via react query instead of saga and redux actions to simplify code
  • (crm-person-merging) Load merged person via react query to simplify code
  • (crm-person-merging) Merge persons via mutation instead of saga

βš™οΈ Miscellaneous Tasks​

  • Add process.env typing to silence errors

[8.12.4] - 2026-01-06​

πŸ› Bug Fixes​

  • (app-state-manager) Fix typing and fall back to console log if api log is not available
  • (impersonation) Add impersonated query param to websocket uri to let uauth know that connection is being made for someone else
  • (session-manager) Fix type error and warn when director main app is not string|null
  • (authentication) Broadcast information about logout to all context tabs
  • (app-settings) Do not ignore number of rows in call history

🚜 Refactor​

  • (mail-attachment) Remove attachment upload api methods from connector instance

[8.12.3] - 2025-12-03​

πŸ› Bug Fixes​

  • (osl-integration) Add app source to log metadata

[8.12.2] - 2025-12-03​

πŸ› Bug Fixes​

  • (uphone) Log in try block to bypass tests missing mocked logger

[8.12.1] - 2025-12-03​

πŸ› Bug Fixes​

  • (uphone) Add logging of main app and uphone device

[8.12.0] - 2025-12-03​

πŸš€ Features​

  • (outbound) Display language metadata as flag in outbound queue
  • (osl-integration) Do not register to director if app loaded in osl dashboard

[8.11.0] - 2025-12-02​

πŸš€ Features​

  • (core) Add indicator to ready button that shows dot for each channel. The dot indicates whether the channel is active

πŸ› Bug Fixes​

  • (diagram) User can modify time in diagram settings via clock tooltip
  • (settings-modifier) Center radio button at variable option
  • (lint) Upgrade eslint-plugin-react-compiler
  • (uphone) Fix possible race condition in audio device sync
  • (uphone) Sync audio devices even if the instance is not main

🚜 Refactor​

  • Add typing to statistics api endpoint
  • Replace immer produce with plain js object manipulation
  • Remove dev log
  • Remove immer produce from filter sort table as it was not required because the object is not needed to be immutably changed

⚑ Performance​

  • (hotkeys) Replace useCallback with useEffectEvent to avoid frequent adding and removing window event listener

βš™οΈ Miscellaneous Tasks​

  • Migrate react-datetime styles import to support next version of sass
  • Migrate rgl styles imports to support next version of sass
  • Remove redundant handsontable styles import
  • Upgrade prettier
  • Remove immer as direct dependency
  • Remove legacy backwards compatibility libraries (regenerator and core-js)

[8.10.1] - 2025-11-24​

πŸ› Bug Fixes​

  • (framed-content) Add allow same origin scripts to enable auth when embedding admin page

βš™οΈ Miscellaneous Tasks​

  • Migrate to v3 sass use instead of import

Reafactor​

  • (mail) Directly import attachment drop style file into attachment component

[8.10.0] - 2025-11-24​

πŸš€ Features​

  • (settings-modifier) Add phone transfer options that modify both internal and external transfer number

βš™οΈ Miscellaneous Tasks​

  • Upgrade sass-loader and replace sass with sass-emebedded

[8.9.0] - 2025-11-24​

πŸš€ Features​

  • (diagram) Let user filter queues for diagram data

πŸ› Bug Fixes​

  • (diagram) Prevent diagram overflowing and incrementally enlarging itself
  • (crm-task) Redirect user to crm person when new task is canceled
  • (settings-analyzer) Update parser with new Diagram widget

🚜 Refactor​

  • Use import instead of require in audio analyser

βš™οΈ Miscellaneous Tasks​

  • Upgrade uuid library
  • Upgrade lingui library
  • Update remeda library
  • Update zod library
  • Bump libraries to their latest versions of same major

[8.8.0] - 2025-11-12​

πŸš€ Features​

  • (widget-board) Allow hiding widget content to enhance performence while moving and resizing widgets
  • (time-input) Add time value parser to enable integration with app
  • (config) Warn user that configuration might be lost when reloading/closing the app while the app is unlocked
  • (supervisor) Add checkbox that hides aggressivity and priority rows in supervisor control
  • (diagram) Create new diagram widget displaying connected to originated outbound leads
  • (time-input) Support format with seconds

πŸ› Bug Fixes​

  • (telemetry) Upgrade wrap-ansi package because installed version does not exist
  • (package) Migrate from binary to text-based lockfile
  • (package) Remove wrap-ansi as direct dependency
  • (package) Migrate original lockfile
  • (queue-selector) Fix adding queues in select
  • (widget-board) Button hiding widget content when editing layout is correctly styled
  • (supervisor) Add czech locales to supervisor control settings
  • (diagram) Remove scope directive from styles as compiler does not support it yet
  • (diagram) Add czech localization

🚜 Refactor​

  • Remove unused redux action
  • Fix typing issues in phone number input

βš™οΈ Miscellaneous Tasks​

  • (build) Enable incremental type checks to speedup static analysis
  • Trace dialing
  • (build) Rename bun lockfile in justfile to match current version

[8.7.1] - 2025-11-04​

πŸ› Bug Fixes​

  • (style) Added missing themed background and text color to dialog modal.

[8.7.0] - 2025-11-04​

πŸš€ Features​

  • (supervisor) Add outbound queue (campaign) aggressivity, priority and lead retry counts to supervisor control

[8.6.0] - 2025-11-03​

πŸš€ Features​

  • (call-history) Replace agent filter input with mutlti-agent filter that allows adding whole team agents

[8.5.4] - 2025-10-23​

πŸ› Bug Fixes​

  • (widget-board) Fix app freeze when widget is pasted to empty board

[8.5.3] - 2025-10-23​

πŸ› Bug Fixes​

  • (button-widget) Button metadata can be modified

[8.5.2] - 2025-10-22​

πŸ› Bug Fixes​

  • (transcription) Only show transcription header when transcription or summary actually exists
  • (dialog) Style closable dialog a bit

[8.5.1] - 2025-10-17​

πŸ› Bug Fixes​

  • (call-history) Do not show error in call history fulltext filter if it's emptyr

[8.5.0] - 2025-10-17​

πŸš€ Features​

  • (tts) Understand numeric values of transcription confidence
  • (call-history) Allow fulltext search in call history
  • (ice) Support also turn servers based on url protocol
  • (call-history) Split fulltext search by comma to enable union search

πŸ› Bug Fixes​

  • (uphone) Fix possible redundant rerenders
  • (call-history) Put call history fulltext search under feature flag to make possible disabling it for instances without stt
  • (call-history) Inform user that fulltext needles needs to be at least 3 characters long and filter out shorter needles

⚑ Performance​

  • (call-history) Restructure call history filter components to re-render only components depending on change data

[8.4.0] - 2025-10-08​

πŸš€ Features​

  • (supervisor) Add multiple agent status changing to supervisor overview header
  • (supervisor) Replace multi agent status change icon to make it more intuitive

πŸ› Bug Fixes​

  • (button) Make it look disabled when it's disabled
  • (supervisor) Display selected value of team in multi agent status change

[8.3.0] - 2025-10-07​

πŸš€ Features​

  • (main-app-sync) Add debugging utilities that show which app is currently main and will be used as call endpoint

πŸ› Bug Fixes​

  • (admin-settings) Export route component correctly
  • (button-widget) Animate hover faster to align with other buttons
  • (supervisor) Expect agent data without team (not all agents have to be in team)

[8.2.1] - 2025-09-19​

πŸ› Bug Fixes​

  • (settings-analyzer) Add widget settings parsers to settings analyzer to completely check stored configuration

[8.2.0] - 2025-09-17​

πŸš€ Features​

  • (supervisor) [experimental] allow changing state of multiple agents at once via supervisor control

πŸ› Bug Fixes​

  • (sms-widget) Fallback to empty array as queue configuration in SMS widget when value not recognized
  • (archived-queues) Do not overwrite queue deleted parameter

🚜 Refactor​

  • Remove dead code
  • Replace empty object type with unknown
  • Migrate compact campaign settings parsing to core api instead of custom
  • Migrate speed dial settings parsing to core api instead of custom
  • Add model to status control widget to satisfy core api
  • Add model to task queue widget to satisfy core api

[8.1.0] - 2025-09-15​

πŸš€ Features​

  • (admin) Create administration page that allows superuser inspect stored settings and upgrade their schema
  • (admin) Add link user settings inspection
  • (transcription) Wrap transcription to object having channels prop as forwards compatibility

πŸ› Bug Fixes​

  • (queue-status-widget) Set default value and label size to 36 and 22
  • (autospy-widget) Accept anything as settings and fall back to empty settings
  • (link-widget) Re-id metadata if they are in legacy form
  • (widget-plot) Add defaults to settings
  • (widget-calls-count) Add defaults to settings
  • (widget-report) Add defaults to settings
  • (admin-settings) Add locales

🚜 Refactor​

  • (settings-upgrader) Pass logger as argument to settings upgrader to make it testable
  • Add typing to tmpDataStore HOC
  • (tabs) Select number of tabs via parsed value
  • (tabs) Render tabs via settings parser as a preparation for full settings migration
  • (tabs) Render tabs in top menu via parsed settings

βš™οΈ Miscellaneous Tasks​

  • (widget-plot) Add typing to widget configuration

[8.0.4] - 2025-09-05​

πŸ› Bug Fixes​

  • (widget-core) Make widget settings parsing more forgiving by introducing defaults
  • (task) Add border to time tracking comment textarea
  • (localization) Add missing cz localization

βš™οΈ Miscellaneous Tasks​

  • Upgrade vitest
  • Disable coverage
  • Upgrade vitest plugins and enable coverage

[8.0.3] - 2025-09-05​

πŸ› Bug Fixes​

  • (reports) Display available reports when loaded

[8.0.2] - 2025-09-04​

πŸ› Bug Fixes​

  • (reports) Ignore if new report service is not available and fallback to old one

[8.0.1] - 2025-09-04​

πŸ› Bug Fixes​

  • (reports) Ignore if new report service is not available and fallback to old one

[8.0.0] - 2025-09-04​

πŸš€ Features​

  • (button) Disable link buttons that are active only on call when agent has no call, add icon indication, that button is call only
  • (core) Add support for widget settings parsing to widget core
  • (shared-editor) Migrate shared editor widget to modern settings manipulation core api
  • (widget-core) [breaking] Remove support of configuring widgets via settings reducers
  • (call-history) Display metadata by team configuration and allow filtering using various input elements in call history
  • (stt) Allow manual transcription request
  • (report) Add configurable columns when new api is used
  • (call-detail) Add call tags to call detail

πŸ› Bug Fixes​

  • (button) Update tests
  • (widget-core) Fix widget registration scheme typing
  • (link) Add title to phone icon at call only link
  • Syntax error
  • (sms) Fix czech language typo
  • (settings) Fix czech language typo
  • (widget-core) Fall back to default settings if settings does not exist yet
  • (widget-core) Fall back to default settings if settings does not exist yet - fix not using stored settings at all
  • (supervisor_view) Make minimum font size 1 to avoid table being empty
  • (call-detail) Add cz localization
  • (uphone) Respect ring and audio output volume settings
  • (uphone) Enable autoanswer sound alert when using uphone
  • (call-metadata) Select metadata from agent team instead of personal settings

🚜 Refactor​

  • (speed-dial) Replace widget settings reducer with settings change callback
  • (shared-editor) Add typing to options transformer
  • (shared-view) Migrate shared data view widget to modern settings manipulation core api
  • (plot) Migrate plot widget to modern settings manipulation core api
  • (outbound-queue) Migrate outbound queue widget to modern settings manipulation core api
  • (note) Migrate note widget to modern settings manipulation core api and convert to TS FC
  • (email) Migrate email widget to modern settings manipulation core api and convert to TS FC
  • (calls-count) Migrate calls count widget to modern settings manipulation core api and convert to TS FC
  • (calls) Migrate calls widget to modern settings manipulation core api and convert to TS FC
  • (agent-status) Migrate agent status widget to modern settings manipulation core api and convert to TS FC
  • (shared-data) Migrate shared data widget to modern settings manipulation core api and convert to TS FC
  • (aux-status) Migrate agent statistics widget to modern settings manipulation core api and convert to TS FC
  • (checklist) Migrate checklist widget to modern settings manipulation core api and convert to TS FC
  • (queue status) Migrate queue status widget to modern settings manipulation core api and convert to TS FC
  • (color-levels) Remove legacy unused color level computation function
  • (queue) Migrate queue widget to modern settings manipulation core api and convert to TS FC
  • (sms) Migrate sms widget to modern settings manipulation core api and convert to TS FC
  • (button) Migrate button widget to modern settings manipulation core api and convert to TS FC
  • (settings-modifier) Migrate settings modifier widget to modern settings manipulation core api and convert to TS FC
  • (supervisor-view) Migrate supervisor view widget to modern settings manipulation core api and convert to TS FC
  • (widget-core) Remove dead code
  • (call-history) Remove dead code