2022-04-22 · 4 🎉 · 7 🚀 · 33 🐛 · 47 🔍 · 34 👩💻👨💻
🎉 New features
-
Add expire index to integration history (#25087)
-
Alpha Matrix Federation (#23688)
Experimental support for Matrix Federation with a Bridge
Quick.Example.showing.Matrix.org.mp4
-
Expand Apps Engine's environment variable allowed list (#23870 by @cuonghuunguyen)
-
Message Template React Component (#23971)
Complete rewrite of the messages component in react. Visual changes should be minimal as well as user impact, with no break changes (unless you've customized the blaze template).
In case you encounter any problems, or want to compare, temporarily it is possible to use the old version
🚀 Improvements
-
Add OTR Room States (#24565)
Earlier OTR room uses only 2 states, we need more states to support future features.
This adds more states for the OTR contextualBar.- Expired
- Declined
- Error
-
Add tooltip to sidebar room menu (#24405 by @Himanshu664)
-
Added MaxNickNameLength and MaxBioLength constants (#25231 by @aakash-gitdev)
-
Added tooltip options for message menu (#24431 by @Himanshu664)
-
Improve active/hover colors in account sidebar (#25024 by @Himanshu664)
-
Performance for some Omnichannel features (#25217)
-
Rename upgrade tab routes (#25097)
Change 'upgrade tab' routes names from camelCase ('goFullyFeatured') to kebab-case ('go-fully-featured') due to URL naming consistency. Changed types, main function and test.
🐛 Bug fixes
-
Add katex render to new message react template (#25239)
-
Add reaction not working in legacy messages (#25222)
-
Added invalid password error message (#24714 by @Himanshu664)
-
Adjust email label in Setup Wizard i18n files (#25260)
- remove 'Company' label on onboarding email keys in certain languages
-
AgentOverview analytics wrong departmentId parameter (#25073 by @paulobernardoaf)
When filtering the analytics charts by department, data would not appear because the object:
{ value: "department-id", label: "department-name" }
was being used in the
departmentId
parameter. -
Client disconnection on network loss (#25170)
Agent gets disconnected (or Unregistered) from asterisk in multiple ways. The goal is that agent should remain online
unless agent explicitly logs off.
Agent can stop receiving calls in multiple ways due to network loss. Network loss can happen in following ways.-
User tries to switch the network. User experiences a glitch of disconnectivity. This can be simulated by turning the network off
in the network tab of chrome's dev tool. This can disconnect the UA if the disconnection happens just before the registration refresh. -
Second reason is when computer goes in sleep mode.
-
Third reason is that when asterisk is crashed/in maintenance mode/explicitly stopped.
Solution:
The idea is to detect the network disconnection and start the start the attempts to reconnect.
The detection of the disconnection does not happen in case#1. The SIPUA's UserAgent transport does not
call onDisconnected when network loss of such kind happens. To tackle this problem, window's online and offline event handlers are
used.The number of retries is configurable but ideally it is to be kept at -1. Whenever disconnection happens, it should keep on trying to
reconnect with increasing backoff time. This behaviour is useful when the asterisk is stopped.When the server is disconnected, it should be indicated on the phone button.
-
-
Close room when dismiss wrap up call modal (#25056)
-
Custom sound error toast messages (#24515 by @Himanshu664)
-
Deactivating user breaks if user is the only room owner (#24933 by @sidmohanty11)
Before
deactivating-user-breaks.mp4
After
fix.deactivating-user-breaks-room-with-no-owner.mp4
-
Desktop notification on multi-instance environments (#25220)
-
End call button disappearing when on-hold (#24936)
-
FormData uploads not working (#25069)
-
Full error message is visible (#24856 by @Himanshu664)
-
Incorrect websocket url in livechat widget (#25261)
-
Invitation links don't redirect to the registration form (#25082)
-
Message menu action not working on legacy messages. (#25148)
-
Message preview not available for queued chats (#25092)
-
NPS never finishing sending results (#25067)
-
Prevent sequential messages edited icon to hide on hover (#24984)
before
after
-
Proxy settings being ignored (#25022)
Modify Meteor's
HTTP.call
to add back proxy support -
Read receipts show with color gray when not read yet (#25244)
-
Read receipts showing before message read (#25216)
-
Replace encrypted text to Encrypted Message Placeholder (#24166)
before
after
-
Reply button behavior on broadcast channel (#25175)
Hide reply button for the user that sent the message
-
room creation fails if app framework is disabled (#25200)
-
Showing Blank Message Inside Report (#25007 by @nishant23122000)
Desktop.2022.03.31.-.15.58.05.02.mp4
-
Toolbox hiding under contextual bar (#25237)
-
Upgrade Tab showing for a split second (#25050)
-
Use correct room property for call ended at (#24932)
-
UserAutoComplete not rendering UserAvatar correctly (#25055)
before
after
-
UserCard sanitization (#25089)
-
Rewrites the component to TS
-
Fixes some visual issues
before
after
-
-
Video and Audio not skipping forward (#19866)
-
VoIP disabled/enabled sequence puts voip agent in error state (#25230)
Initially it was thought that the issue occurs because of the race condition while changing the client settings vs those settings reflected on server side. So a natural solution to solve this is to wait for setting change event 'private-settings-changed'. Then if 'VoIP_Enabled' is updated and it is true, set voipEnabled to true in useVoipClient.ts (on client side)
It was realised that the race does not happen because of the database or server noticing the changes late. But because of the time taken to establish the AMI connection with Asterisk.
Solution:
-
Change apps/meteor/app/voip/server/startup.ts. When VoIP_Enabled is changed, await for Voip.init() to complete and then broadcast connector.statuschanged with changed value.
-
From apps/meteor/server/modules/listeners/listeners.module.ts use notifyLoggedInThisInstance to notify all logged in users on current instance.
-
in apps/meteor/client/providers/CallProvider/hooks/useVoipClient.ts add the event handler that receives this event. Change voipEnabled from constant to state. Change this state based on the 'value' that is received by the handler.
-
🔍 Minor changes
-
Bump body-parser from 1.19.2 to 1.20.0 in /ee/server/services (#25042 by @dependabot[bot])
-
Bump ejson from 2.2.1 to 2.2.2 (#25057 by @dependabot[bot])
-
Bump eslint-plugin-anti-trojan-source from 1.0.6 to 1.1.0 (#25076 by @dependabot[bot])
-
Bump minimist from 1.2.5 to 1.2.6 in /ee/server/services (#24991 by @dependabot[bot])
-
Bump pino and pino-pretty (#25052)
-
Bump template-file from 6.0.0 to 6.0.1 (#25002 by @dependabot[bot])
-
Chore: Add error boundary to message component (#25223)
Not crash the whole application if something goes wrong in the MessageList component.
-
Chore: Add root package.json to houston files (#25286)
See title
-
Chore: Add yarn plugin to check node and yarn version (#25224)
-
Chore: Bump Fuselage packages (#25259)
-
Chore: Cancel running jobs if PR is updated (#24708)
-
Chore: Convert admin custom sound to tsx (#25128)
-
Chore: Convert LivechatAgentActivity to raw model and TS (#25123)
-
Chore: Convert Mailer to TS (#25121)
-
Chore: Convert NotificationStatus to TS (#25125)
-
Chore: Fix return type warnings (#25275)
-
Chore: Migrate oauth2server to typescript (#25126)
-
Chore: Minor dependency updates (#25269)
-
Chore: Missing keys in APIsDisplay (#24464)
-
Chore: Monorepo (#25074)
-
Chore: move definitions to packages (#25085)
-
Chore: organize test files and fix code coverage (#24900)
-
Chore: Remove Alpine image deps after using them (#25053)
-
Chore: Remove duplicated useUserRoom (#25180)
-
Chore: Remove old files from removed Omnichannel feature (#25129)
-
Chore: Remove package-lock.json from houston files (#25280)
Houston config in the
package.json
file still mentionedpackage-lock.json
, but it doesn't exist anymore -
Chore: Remove unused Drone CI files (#25124)
-
Chore: Sync with master (#25284)
-
Chore: Template to generate packages (#25174)
npx hygen package new test
-
Chore: Tests with Playwright (task: All works) (#25122)
-
Chore: Tests with Playwright (task: ROC-28, 09-channels) (#25196)
-
Chore: TS conversion folder client (#25031)
-
Chore: TS migration SortList (#25167)
-
Chore: Update Livechat to the last version (#25257)
-
Chore: Update Livechat version (#25130)
-
Chore: update OTR icon (#24521 by @kibonusp)
I changed the shredder icon in OTR contextual bar to the stopwatch icon, recently added to the fuselage.
-
i18n: Language update from LingoHub 🤖 on 2022-04-04Z (#25043)
-
Merge master into develop & Set version to 4.7.0-develop (#25028)
-
Regression: Add select message to system message and thread preview and allow select on legacy template (#25251)
-
Regression: Avatar not loading on first direct message (#25211)
fix avatar not loading on a first direct message
-
Regression: CI playwright (#25168)
-
Regression: Fix CI monorepo build (#25107)
-
Regression: Fix federation Matrix bridge startup (#25273)
-
Regression: Fix micro services Docker build (#25193)
-
Regression: Fix services Docker build on CI (#25181)
-
Regression: Show username and real name on the message system (#25254)
-
Regression: yarn dev triggers build dependencies (#25208)
👩💻👨💻 Contributors 😍
- @Himanshu664
- @aakash-gitdev
- @cuonghuunguyen
- @dependabot[bot]
- @kibonusp
- @nishant23122000
- @paulobernardoaf
- @sidmohanty11
👩💻👨💻 Core Team 🤓
- @AllanPazRibeiro
- @KevLehman
- @MarcosSpessatto
- @MartinSchoeler
- @alansikora
- @albuquerquefabio
- @amolghode1981
- @d-gubert
- @debdutdeb
- @dougfabris
- @filipemarins
- @gabriellsh
- @geekgonecrazy
- @ggazzo
- @guijun13
- @jeanfbrito
- @juliajforesti
- @murtaza98
- @pierre-lehnen-rc
- @rodrigok
- @sampaiodiego
- @tassoevan
- @tiagoevanp
- @tmontini
- @weslley543
- @yash-rajpal