Ajouter l'enregistrement au téléchargementCritère d'évaluation au sol
Log org/index, information de fichier, userId, décisions d'authentification et organisation MinIO la clé pour déterminer pourquoi les téléchargements de fond n'...
Ajouter l'enregistrement à la route proxy de base de téléchargement
Log org/index, nom/taille/type de fichier et état de la réponse en amont pour diagnostiquer pourquoi les téléchargements de fonds n'atteignent pas APIService.
Ajouter la colonne d'emplacement au réseau de données sur les billets
Lire directement sur le supportTicketDTO (maintenant instantané sur l'entité du billet à l'adresse suivante: temps de création - pas d'aller-retour supplémentai...
Magasin de géo sur le billet à la création, abandonnez GeoLite lire
- Désigner maintenant la géo géosite du visiteur une fois (via GeoLookupService) et persiste ip/pays/ville/subdivision le supportTicket lui-même. SupportTicket...
Snapshot visitor geo sur l'entité de billetterie
Ajout du VISITOR-IP-ADDRESS, VISITOR-COUNRY-CODE, VISITOR-COUNTRY-NAME, Colonnes VISITOR-CITY, VISITOR-SUBDIVISION. Capturé lors de la création des billets de s...
Visiteurs à charge en vrac et saut de GeoLite dans la liste
Le critère d'évaluation de la liste /api/support/tickets était en cours d'exécution, par page de 20 lignes: - 20 euros d'appels (N-1) - 20 appels dans GeoLo...
Ajouter findBySessionGuidIn pour le chargement en vrac
Utilisé par le point d'extrémité de la liste de billets de soutien pour aller chercher tous les visiteurs pour un page dans une requête au lieu de N findSession...
Dépliant de passage pour charger le bouton de réessayer
loadThread prend (threadId, dossier); le bouton d'erreur ré-essai seulement passé threadId, brisant la construction kamo-interne. Associer l'appel à la signatur...
Reconstruire pour prendre le rapport kamo-shared-library
kamo-shared-library b57d156 fixe 'JsonIdentityInfo (propriété ''uniqueId'd' "id" sur Member, résolution de 400 erreurs sur PUT /api/security/org/'id'.
Propriété correcte JsonIdentityInfo de 'uniqueId' à 'id'
Entité membre déclaré «JsonIdentityInfo» (propriété - "uniqueId") mais Le champ clé principal réel est nommé 'id'. Jackson a été jeté "ne peut pas trouver la pr...
Ajouter /ws/public-chat-natif webSocket à côté de SockJS
Enregistre un deuxième critère d'évaluation STOMP sans SockJS à /ws/public-chat-natif de sorte que le frontend peut se connecter à une prise WebSocket native (b...
Supprimer le dispositif de protection SSR provoquant un désadaptation d'hydratation; chuter SockJS pour WebSocket natif
- Hero.tsx : supprimer le typeof window check around ParticleField et ParticleField déjà a ssr:false de sorte que la garde a produit un dispositif d'arboresce...
Bader à perticket non lue et filtre « Nouveaux messages seulement »
- La liste des billets montre une badge de bulles de discussion avec le compte non lu à côté de chaque fois que la session a des messages plus récents que ceu...
Diffuser non lu compte de l'agent sur le message adressé aux visiteurs
Après qu'un visiteur a envoyé un message de soutien, poussez les derniers comptes non lus charge utile à - donc la liste des billets de l'agent la mise à jour d...
Inclure les sessions de SUPPORT-TICKET dans la requête d'adhésion non lue
findChatMembershipsByMemberId retourne maintenant des adhésions pour le CHAT et Types de sessions SUPPORT-TICKET, de sorte que le nombre de participants par mem...
Indicateurs non lus clairs lors de l'ouverture de la conversation
ThreadDetailView envoie maintenant e-mail:folder-changed after markConversationRead Succupe MailButton réfute le nombre de badges de la boîte de réception de l'...
Déplacer le CORS vers Traefik via les kamo-middlewares, enlever le filtre CorsFilter
L'application CorsFilter «Bean in the Spring» n'appliquait pas silencieusement les en-têtes après WebConfig.java a été supprimé. Le CORS est désormais entièreme...
Utiliser /public/-mainDomain-------------------------------------------
getThemePath() était la génération /domaine/-tld-/-split-/kamosite chemins qui n'existent pas dans MinIO et les fichiers thématiques en direct dans le seau publ...
Briser la chaîne min-w-0 pour contenir le défilement des e-mails dans la colonne corporelle uniquement
Ajouter min-w-0 dans le récipient extérieur et contenu principal flex div so flex enfants ne peut pas s'étendre à la largeur du contenu min-content, ce qui étai...
Fournisseurs de paloupets au-dessus de ToolProviders
Même cause profonde que le treuil ChatWebSocketProvider: SupportTicketWindow appels et appels "chatBox" useUnread().markAsRead(), mais les deux fenêtres d'outil...
Ajouter la suppressionHydrationAspect et fixer les images d'espace réservé cassées
suppressHydrationWarning sur html empêche l'erreur React 418 causée par le navigateur extensions (par exemple, traduction, mode sombre) en mutation d'attributs ...
Autoriser /domain/préfixe de chemin sur le thème IngressRoute pour CORS
Le thème config à thème theme.kamocrm.com/domain/... n'a pas été égalé par le les règles de la voie existante (uniquement /public/ et /internal/ étaient autoris...
Supprimer les têtes de CORS en amont en double CorsFilter et bander en amont
WebConfig.java a défini un deuxième grain CorsFilter en concurrence avec CorsConfig.java haricot, risquer d'écrire un en-tête dupliqué. Il l'a supprimé de sorte...
Retirer le dupliqué CorsFilter bean provoquant le double tête d'en-tête Access-Control-Allow-Origine
Le haricot CorsFilter explicite a provoqué un deuxième filtre CORS à côté de Spring Le support CORS intégré de sécurité (qui utilise CorsConfigurationSource). L...
Supprimer les instructions de débogus console.log et ajouter les itinéraires manquants
Supprimer toutes les informations de déconomisation temporaires ajoutées lors du traçage WebSocket de ChatBox, TicketChat, MemberItem, ChatTool, et useChatWebSo...
Empêcher l'en-tête de messager d'élargir la colonne sur les longues adresses
L'enfant flex gauche de l'en-tête n'avait pas de min-w-0, si longtemps incassable e-mail Adresses dans From/To/Cc a forcé sa largeur de contenu min à croître, t...
Chat ChatWebSocketProvider ci-dessus ToolProviders
ToolDock (et ses fenêtres d'outils comme SupportTicketWindow et TicketChat) est Monté à l'intérieur de ToolProviders, qui se trouve ABOVE PresenceWrapper dans l...
Drop Shadow DOM dans le moteur de rendu de courrier électronique donc les feux de débordement x-auto
Le DOM de l'ombre a été la cause profonde. Contenu de courrier électronique large (tableaux de largeur fixe) à l'intérieur de l'arbre d'ombre peint devant l'hôt...
Align ChatWebSocketFonnier d'importation de contexte pour correspondre au fournisseur
TicketChat et ChatNotificationListener ont importé le contexte via le « '/app/contexts/...' pseudonyme de PrésenceFrère (le fournisseur) l'importer via le chemi...
Temporary console.log pour tracer le chemin d'abonnement TicketChat STOMP
Ajoute des bûches de console à chaque étape du pipeline d'abonnement (incendie d'effet, Passe de garde, abonnez() appel, joignezSessionAbonnement, client.subscr...
L'hôte de l'ombre de force avec des styles en ligne - contenir: disposition
Le débordement de classe x-auto sur l'hôte de l'ombre n'a pas été de fiabilité en gagnant contre l'ombre ':host 'tout: réinitialisation initiale, si large email...
Faire défiler le contenu large du courrier électronique à l'intérieur de l'ombre DOM, pas à l'extérieur
Les tentatives précédentes d'ajouter des ancêtres de dévers de x-auto à la lumière des ancêtres DOM ne pouvait pas attraper un contenu de courrier électronique ...
Utiliser getHastachments() pour correspondre à l'emballage booléen
est un booléen (étouveur), donc Lombok génère getHasAttachments() not isHasAttachments(). Ce dernier seul existe pour booléen primitif. Utiliser Boolean.TRUE.eq...
Étendre l'analyse du référentiel JPA pour y inclure le module de commerce
La nouvelle bibliothèque kamo-shared introduit qui nécessite (dans le com.kamo.z.shared.commerce). MediaService n'a scanné que donotmodify.dao.repos, de sorte q...
Restaurer l'importation de HashMap dans ChatWebSocketCutteur
Le réfactoracteur précédent a supprimé l'importation de HashMap mais la manipulationTypage Une méthode continue de construire une HashMap pour la charge utile d...
Ajouter min-w-0 au contenu de courrier électronique div afin que les incendies débordent x-auto
Sans min-w-0, la largeur min-width:auto de l'enfant flex-col/fréquence de min-content, l'attribution de larges tables d'e-mails élargissent la div au-delà de la...
Supprimer lepliage connectStomp call in sendMessage
Lorsque le premier message crée une nouvelle session, onSessionCreated met à jour des accessoires qui déclenche l'utilisationEffet pour appeler connectStomp. L'...
Créer de manière proactive le consommateur NATS lors de la création de session pour éviter la perte de messages
Auparavant, le consommateur de poussée NATS JetStream n'était créé que lorsqu'un client STOMP envoyé /app/chat/s'abonner. Avec DeliverPolicy.Nouveau, tous les m...
Écart de reconnecter étroit, ce qui a entraîné une baisse des messages en temps réel
Retirer «connecté» de l'utilisation de l'abonnementEffente dans TicketChat et ChatBox. Auparavant, chaque reconnectement WebSocket avait déclenché l'effet. le n...
Permettre à l'utilisateur du système de gérer l'image de marque de l'orge et de fixer le logo auth
- Ajouter la dérivation de l'utilisateur du système en tant que premier garde dans canManageOrgBranding de sorte L'utilisateur du système a un contrôle total ...
Contient le débordement horizontal dans la feuille de visualisation des e-mails jusqu'à la 3ème colonne
- Ajouter overflow-x-hidden to MessageBrowser conteneur extérieur en frontière dure - Ajouter overflow-x-hidden to column 3 wrapper et overflow-x-auto à la zone...
Production infaillible2ban avec les prisons du PJSIP et l'état persistant
- Ajouter fail2ban-configmap.yaml avec [asterisk et [freepbx-web, l'augmentation progressive de l'interdiction (1h-24h-30d plafond), LAN ignoreip, et a Fil ...
Remplacer le Coqui TTS par Piper TTS (en-US-norman-med--norman)
Le modèle Coqui VCTK n'a pas de haut-parleurs nominés et le remplacer par Piper TTS qui a la voix exacte de norman. binaire de Piper (-3 MB) et modèle (60 MB) s...
Reset stale hasApicements en synchronisation et accumulation correctement
- Reset has-tachs-tachs-fausse au début de la synchronisation de la masse de manière aussi périmés valeurs vraies à partir d'anciennes détections MIME faussem...
Ajouter resetHastachmentsForFolder requête à ConversationRepository
Permet la synchronisation à réinitialiser les drapeaux de fixation avant de réindexer. Une détection MIME corrigée peut reconstruire le champ à partir de donnée...
Intégrer Coqui TTS avec la voix norman (VCTK p267)
- Déployer un serveur coqui-tts (modèle VCTK VITS, CPU uniquement) en tant que service ClusterIP sur le port 5002 avec cache modèle à /var/lib/coqui-tts sur k...
Pré-remplir à la suite de la réponse/à l'avant et à l'envoi de l'envoi à partir d'Address
- DraftMessage se transporte désormais de l'adresse de l'extérieur pour qu'il s'écoule de l'ouvertureNewMessage jusqu'au compositeur - MessageBrowser stocke l...
Soutien de l'annulation de l'envoi d'Adress
Adds FromAddaddressRequest à EmailSendRequest afin que le frontend puisse spécifier quelle adresse alias/partagé/case de courrier à envoyer. SmtpOnlyProvider ma...
Ajouter LAN DNS gousse pour DNS split-DNS sur k1m1
Déployer un dnsmasq pod avec hostNetwork sur k1m1 qui écoute 192.168.4.22:53. Désirce pbx.k1.kluster.kamocrm.com Les téléphones LAN atteignent le PBX directemen...
Ajouter un net local pour split-DNS/client LAN client RTP
Téléphones sur le même réseau local que k1m1 se connectent via un DNS divisé (domaine se détache vers 192.168.4.22 en interne). Sans le filet local, Asterisk fa...
Comme ce que tu vois expédier ?
Tout cela arrive dans votre espace de travail par lui-même. Commencez sur le plan gratuit et relisez cette page dans un mois.
