Déplacer l'état de connexion à la ligne d'entrée numéro, alignée à droite
Afficher l'erreur actionnable lorsque les identifiants SIP échouent (autorisation VoipCalling manquante)
Ciligemment stringify Long IDs dans les réponses SmsContrôleur
L'approche à long-saut n'était pas l'effet. Appeler directement .toString() sur tous les Longs ID dans le les réponses de la carte plate du contrôleur pour ne g...
Ajouter JsonIgnore à VoipMessage.conversation pour empêcher la charge paresseuse lors de la sérialisation
Utiliser la conversation de chaîne dans l'ensemble de l'outil SMS pour gérer les identifiants 64 bits
Backend maintenant serialise Long en chaîne; mettre à jour tous les types de conversationId du nombre à la corde pour correspondre. Autez également le bouton d'...
Sétériner les identifiants longs en tant que cordes pour empêcher la perte de précision de la JS
CockroachDB unique-rowid() génère des entiers de 64 bits plus grands que Numéro.MAX-SAFE-INTEGER (2-53-1). JS JSON.parse silencieusement autour d'eux, provoquer...
Retirez le bouton Dossier du dupliqué de RingCentralConfig
Parent PhoneProviderSetup rend déjà un IconButton avec ArrowLeft dans l'en-tête de visualisation de configuration, faire le bouton arrière à l'intérieur de Ring...
Retour de la carte plate à partir de l'envoi du critère d'évaluation pour prévenir LazyInitializationException
VoipMessage.conversation est FetchType.LA-Y; après «Transactional commits», Jackson sérialisant l'entité lancerait LazyInitializationException provoquer un 500,...
Retour à l'org mainPhoneNombre lorsque le membre n'a pas de configuration VOIP
Membres sans membreVoipConfig (ou pas de l'ensemble de PutonNombre) utilisent maintenant le principal PhoneNumber de VoipProviderConfig comme sortie numéro, au ...
Supprimer getJwtKey() de WebhookController après la migration d'OAuth
La validation de la signature a utilisé jwtKey comme secret HMAC qui n'existe plus sur VoipProviderConfig. Sauter la validation pour maintenant être cohérente a...
Utiliser des étiquettes img simples pour les logos locaux du fournisseur de SVG
next/image ne dessert pas de manière fiable les SVG locaux sans drapeau non optimisé. Les étiquettes d'impgilents de plaine charge/les biens publics directement...
Utiliser un boîtier de clé de session correct pour orgID et memberID
KSessionService stocke les clés en tant qu'orgodID et memberID (capital D). Les deux contrôleurs appelaient .get("orgId") et .get("memberId") qui retourne toujo...
Montez toujours des boutons de téléphone portable et de SMS dans NavTop
Porte isVip enlevée de sorte que les boutons sont toujours visibles indépendamment de indiquer l'état du drapeau.
Utiliser le nom du type de fonction comme clé avant l'identifiant numérique dans le prétraitement de la fonctionnalité d'org
Java retourne des caractéristiques avec "type: "VOIP" et un id numérique. Le la chaîne de prétraitement avait 'obj.id' avant 'obj.type', provoquant toutes les c...
Ajouter voip à NATS stream sujets et traiter IllegalStateException dans VoipStompRelayContrôleur
Le flux NATS ne couvrait que le chat. ' donc abonnant à voip. Illegal StateException ([SUB-90007) Pas de flux correspondants). Ajout de voip. aux sujets de flux...
Ajoutez un service de sécurité à K8s ConfigMap
KamoJwtService nécessite cette propriété pour la validation de jeton de porteur dans DavAuthFilter, mais la ConfigMap de K8s remplace application.yml et était l...
Montrer les paramètres du système de téléphone inconditionnellement afin que les orgs puissent configurer la VOIP avant de l'activer
- Retirez la porte isVoip de la section téléphonique sur la page /settings et la carte de configuration du fournisseur n'a pas de condition, de sorte qu'elle ap...
Garde contre les réponses API non-arrane en utilisationContacts hook
setBooks, fetchooksContacts, et searchContacts maintenant gérer les objets d'erreur en toute sécurité et les enveloppes paginées de printemps au lieu de s'écras...
Nom de champ correct dans findEventsNeedingSync requête from 'integration' to 'contactIntegration'
Stabiliser le rappel de la charge et réparer la réinitialisation modale dans la section PersonalProvider
Aligner le chemin du contrôleur avec la convention de proxy par courrier électronique
Supprimer non-op PrePersist/PreUpdate de ContactIntegration; ajouter syncA assertion de testStatus
La saisie du téléphone SmsBox résout et stocke désormais l'identifiant de conversation
Injecter helpTips dans ParamètresView help panel over-passant dans PhoneProviderSetup
Maintenir VoipStompRelayRelayAbonnement du contrôleur et ajouter PreDestroy
Rendre NATS expectedSS configurable via la propriété nats.jetstream.stream.name
Déplacer l'utilisation d'aideContentMemo avant utilisationEffet qui le référence
Utiliser le panneau d'aide de la visualisation des paramètres externes sur la page de configuration du fournisseur de courrier électronique
Aidez le fournisseur à HelpTipsOverrideContext donc la configuration view utilise la même mise en page du panneau d'aide et de conseils que la vue de la liste, ...
Renommer le sous-élément de la navigation par courrier électronique de General to Provider Setup
Utilise la clé arligne de noms Email - Configurer pour éviter les collisions avec l'entrée de la route de configuration de fournisseur d'IA.
Retirer le doublement de la recap par onglet JPA et utiliser uniquement l'emballage parent
com.kamo.z.shared.email couvre metadata.repos, balayage à la fois cause BeanDefinitionOverrideException sur messageLabelRepository.
Recharger la source, par défaut à l'utilisateur, utiliser l'étiquette des membres de l'équipe
- Le champ d'application par défaut est passé de "entreprise" à "utilisateur" - Ordre de retombée inversé: membres de l'équipe d'abord, Département, puis org - ...
Supprimer le texte de l'espace réservé de l'aperçu, autoriser l'envoi sans objet
- Le corps de courrier électronique vide en prévisualisation ne montre plus "Démarrer taper votre e-mail..." - Le sujet n'est plus tenu d'envoyer le bouton d'en...
Le modèle d'abandon remplit la largeur restante, autres commandes alignées à droite
La liste déroulante de la source du modèle a maintenant flex:1 pour remplir tous les autres l'espace. Éditer/prévisualiser la basculement, le bouton de fixation...
Envelopper le corps de courrier électronique dans le modèle HTML lors de l'envoi
Le gestionnaire d'envoi envoyait du contenu brut de l'éditeur sans le modèle. Maintenant, enveloppe le corps dans la disposition du gabarit complet (far bg, mar...
Enlever la barre de défilement horizontale et étendre la prévisualisation à pleine hauteur
- Utiliser un rembourrage sur la div extérieure far-bg au lieu de marge sur l'intérieur (Terre de débord) proche de la bg pour éviter la largeur: 100 % : débo...
Repouver les données du membre/de l'orge lors du remplacement du champ d'application de la source
La synchronisation ref a été réglée une fois et jamais re-réinitialisée, donc la lune de changement de portée gauche la configuration de la nouvelle portée avec...
Déplacer le menu déroulant, la basculement de prévisualisation et la fixation à la rangée de pied de page
Déplacer le champ d'application du modèle, l'évolution/le basculement de l'aperçu et la fixation un bouton de la rangée du sujet à la barre inférieure, alignée ...
Sortir directement des données du membre/org au lieu de passer par des crochets
Utilisation suppriméeUserInfo, useSignatureData et UseImageResolver crochets qui avaient chacun des cycles d'extraction indépendants async provoquant des condit...
Utiliser des données d'exemple dans la prévisualisation du courrier électronique lorsque les données membres/org ne sont pas chargées
L'aperçu consistait à rendre vide les signatures parce que les données membres/org de useSignatureData retourne des chaînes vides pendant le chargement (ou quan...
Comme ce que tu vois expédier ?
Chacune de ces mises à jour atterrit automatiquement dans votre espace de travail. Commencez gratuitement et regardez-le grandir semaine après semaine.