Aller au contenu
KAMOUniverse

Changelog

Ce qui est nouveau.

Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.

  1. · KlusterServices

    Rendre le chuchotement autocollant indépendamment (HPA, multi-noeuds)

    Retirez la broche à un seul nœud et passez à un cache de modèle per-pod ainsi que les gousses peuvent programmer sur n'importe quel noeud, et ajouter un HPA (min 1 / max 4, CPU 75 %, délibéré mise à l'échelle avec le modèle lents-démarrages froids). voix-autrede est la transcription partagée backend pour les enregistrements de réunion et les enregistrements VOIP/voicemails.

  2. · KlusterServices

    Texte d'état de connexion client de guacamole rebaptiser Guacamole à KamoDesktop

    Dépassement - donc le L'écran (et l'état connexe) indique KamoDesktop.

  3. · MediaService

    Enregistrement ingest, conservation/quota, utilisation du stockage, pipeline récapitulatif

    - MeetRecordingContrôleur: ingérer le point de terminaison interne (X-Internal-Auth) Finaliser les enregistrements de postes.sh ont été terminés. - MeetRecordingService : télécharge des enregistrements à l'orge MinIO (imagerie-remise-records), persister MeetingRecording metadata, impose le quota de stockage de l'ordre (éteindre le plus ancien), et - lorsque postMeetingSummaryEnabled - exécute le pipeline récapitulatif: transcrire (Modèle de résumé de réunion par courrier électronique). - MeetRecordingRetainSweep: suppression programmée des enregistrements de la rétention passée. - MeetConfigureCtroleur : GET/enregistrement pour le compteur de stockage des réglages réels. - app.yml: conversion/ai/email base URLs et secret interne auth. Nécessite (ops): KamoInitializer run pour créer MEETING-RECORDINGS; La valeur doit correspondre à MediaService, jibri, et Service de conversion.

  4. · EmailService

    Exemples de fournisseurs pour l'aperçu du modèle de résumé de réunion

    Ajoute un échantillonVariables pour le nouveau modèle de résumé de réunion de manière à l'intendant l'interface utilisateur de l'avance rend un contenu réaliste.

  5. · kamo-shared-library

    Modèle canonique-résumé

    Ajout du modèle transactionnel "réunion-résumé" (sujet et HTML de marque avec -Nom de la chambre et raw "summaryHtml") et l'enregistre dans CANONICAL-KEYS afin qu'il graines par org. Utilisé par le résumé de l'IA après la réunion. Corre également la correction le compte de touches de l'essai de charge.

  6. · KlusterServices

    Module de modérateur de Prosody, chuchoter, enregistrement jibri upload

    - Meet-prosody: télécharger la version-plugins ConfigMap (capture de la une dérogation existante en cas de vérification de la vérification de l'œil qui a été créée hors bande) et ajouter le module canonique mod-token-modération, activé via - Fait la réclamation du modérateur JWT Les membres font autorité - les membres deviennent propriétaires, les invités/anonymes ne peuvent pas attraper le propriétaire. - chuchoter-aser: discours à texte auto-hébergé (cUP plus rapide, pas de clé externe) pour la transcription après la réunion. - Meet-jibri: final.sh télécharge maintenant des enregistrements terminés sur MediaService avec X-Internal-Auth afin qu'ils atterrissent en MinIO : rétention/contingents de conduite. Le secret est facultatif donc jibri still commence en cas de non-fixe.

  7. · ConversionService

    Enregistrement du critère de transcription pour les résumés post-réunion

    POST /api/conversion/remise/transcribe (X-Internal-Auth): normalise un téléchargement l'enregistrement à 16 kHz mono WAV par l'intermédiaire d'un nouvel additif FfmpegService, le transmet au service auto-hébergé chuchotée, et retourne la transcription. URL de karsper de kamo.services.whisper.url.

  8. · kamo-internal

    Intégration du calendrier pour les réunions prévues et compteur de stockage d'enregistrement réel

    - CalendrierIntegrationAmérable: lorsqu'une réunion programmée du clubhouse est également ajouté au calendrier du créateur (via le système de calendrier existant) portant le lien authentifié/remise/rejoindre. Les rappels des participants restent traités par le un balayeur de backend, donc pas de doublons d'e-mails de participants. - Paramètres d'enregistrement: le compteur de stockage affiche désormais un usage REAL par or à partir de GET/api/meet/record-usage (replaçant l'espace réservé enlevé).

  9. · kamo-shared-library

    Entité d'enregistrement de la réunion - dépôt des enregistrements capturés

    Nouveau tableau de la réunion (org, réunion réf, salle, seau/pistolet d'objet MinIO, taille, durée, hochets-temporels capturés/expires, état récapitulatif) - l'enregistrement parent pour un fichier d'enregistrement Jibri terminé, de la rétention/contingent de conduite et après la réunion traitement récapitulatif. Le tableau est créé lors de la prochaine course KamoInitializer.

  10. · kamo-internal

    Application de commercialisation, centre de paramètres, matériaux Canva

    Faire de la commercialisation une application compatible avec l'orge de première classe et expédier la Canva Expérience matérielle. Permis d'utilisation: - Filtre de marquage, organisation.is Remarqueur de marché - section de commercialisation de la ligne (navRegistre) et de droits (permissionsAppSections, SecurityRoleManager) sur organisation.isMarketing - Carte de commercialisation dans FeaturesManager (/settings/account?tab-apps) Paramètres: - nouveau /settings/spectives/centre de commercialisation (prestataires généraux/mécaniens de médias sociaux/ Canva) - Faire sortir les fournisseurs de médias sociaux hors des paramètres CRM vers le marketing - 3 emplacements de la navigation mis à jour (débarcations d'atterrissage, réglagesMenu, icône SettingsButton); repointe SocialTimeline lien État vide Canva: - CanvaIntegrationManager paramétre l'onglet et canva ProviderDef dans la plate-forme Registre OAuth (loge) - /api/canva/- proxys (statut, raccord-démarrage, conceptions, exportations, mode d'exportation, Déconnecter) - MediaService - /marketing/matériaux: grille de bibliothèque (imaginant MATERIALS assoc), téléchargement, Création d'une entreprise à l'importation à partir de Canva, à l'importation à l'importation à la navigation de retour

  11. · ConversionService

    Vidéo-cadre d'affiches pour le matériel de commercialisation

    Les exportations de Canva MP4 (et n'importe quel téléchargement vidéo) sautissent le chemin des documents PDF et obtiennent un ffmpeg affiche-frame nhumil (-thumb-p0.png) au lieu de l'échec. - Branche de la catégorie VIDEO - -

  12. · MediaService

    Canva Connect OAuth et conceptions/arrière-plan d'exportation

    - CanvaApiClient: PKCE autoriser, échange/rafraîchir/revoque jetons, utilisateurs, conceptions (créate/liste), emplois à l'exportation, octet fetch - CanvaTokenService: jetons cryptés par membre (PlatformSecretCipher), rafraîchissement proactif à un seul vol (les jetons de rafraîchissement de Canva sont à usage unique/rotatifs) - CanvaOAuthContariser (permis-tout): connecter l'intention de connexion atterrissage de retour-navir - CanvaController (authed): statut, connect-start, création/liste de conceptions, exporter (créate-poll-cache), indicateur-réglage-pouvoir d'exportation, déconnecter

  13. · kamo-shared-library

    L'intégration de Canva et le marketing en tant qu'application compatible avec l'obligation

    S'inscrire au client Canva Connect - ImageAssocType.MATERIALS(13, imagerie-matériaux) et org commercialisateur seau - sous ServiceType.MARKETING - ServiceType.MARKETING(24) - COMPLETED/actived pour qu'il devienne une véritable application (FeatureController auto-fournifle s'auto-fourche par org, comme le CRM) - Entonne CanvaConnection et repo: jetons cryptés par membre (accès et rafraîchissement)

  14. · KlusterServices

    Activer la rebrande Guacamole json-auth SSO et KamoDesktop

    - JSON-SECRET-KEY (facultatif) sur le guacamole à partir du secret de bureau partagé l'extension re-cacamole-auth-json paquets que les liens god-SSO valident contre. - extension de la marque kamo (titre - KamoDesktop, logo kamocrm et favicon) construite à partir de écran de bureau/guacamole/marquage/en un .jar, livré en tant que configettariage binaire et ensemencé dans GUACAMOLE-HOME via un initContainer. - CI crée la clé de signature partagée dans les deux espaces de noms (doyen-sso pour guacamole, guac-sso pour le service de sécurité) du secret de la Guac-SIGNING-KEY; jamais commis.

  15. · kamo-internal

    Icônes KamoDesktop réservées par Dieu (Linux et Windows) ouvrant des sessions connectées automatiquement

    Deux icônes nav restantes d'Analytics, montrées uniquement aux membres éligibles à Dieu (isGod ajouté à NavGateContexte). Chaque arbore une liaison SSO de courte durée à partir de SecurityService et ouvre le Passerelle KamoDesktop dans une nouvelle fenêtre, connectée automatiquement à son instance. Utilise les personnes engagées Marques.

  16. · SecurityService

    Critère d'évaluation en jeton KamoDesktop SSO pour les membres de Dieu

    GET (doivs éligible seulement) ment a Jeton de 5 minutes guacamole-auth-json (HMAC-SHA256 et AES-128-CBC, selon l'extension) fil format) et retourne une URL auto-connecting et auto-connecting pour le KamoDesktop Passerelle. Clé de signature - Mot de passe RDP injecté à partir du secret guac-sso; jamais Encouragé (granch-safe: SSO reste désactivé jusqu'à ce que l'on ait été configuré).

  17. · kamo-internal

    Noms de salle à l'échelle org, nom de salle, calendrier des réunions Kamo, rappels de départ; paramètres i18n

    - utilisationMeeting/MeetingDialog: les noms de pièces sont maintenant désinscrits en org jeton de deux les orgs ne peuvent jamais entrer en collision dans la même conférence Proody, et honorer l'ordre roomNameFormat (RANDOM vs DISPLAY-NAME-RANDOM en utilisant l'alias du membre). - Compositeur de réunion (calendrier): le bouton "Kamo Meeting" génère une salle à cris d'org et définit l'URL de l'événement sur le lien /meet/join click-time OTK, donc calendrier Les destinataires et rappels sont signés en tant que membres vérifiés. - MeetReminderPopup: s'abonne à /topic/meet/reminder/-memberId (MediaService) balayeuse) et montre un toast "réunion de départ" avec un bouton d'assemblage; monté dans PresenceWrapper sur le chat partagé WS. - répond aux onglets des paramètres: remplacer les chaînes de toast/error en anglais codées en dur par Clés next-intl t()

  18. · MediaService

    Rappels de début de réunion programmée et expiration de lien d'invité

    - MeetingReminderSweep: «La balayeuse planifiée qui tire un coup de fouet en temps réel "réunion de départ" rappel aux membres invités à l'adresse suivante (début et rappelMinutesÀ l'avant) sur la période d'alors transitions de la réunion à dudepe. Les réunions qui ont suivi plus d'une heure de départ sont franchies sans rappel (pas de spam). Le client construit le lien de jonction authentifié de sa propre origine. - - honore maintenant l'invitéLinkExpiryHours: une réunion plus ancien que la fenêtre config de l'ordonnance (ancré au démarrage programmé, sinon la création) est considérée comme non coulissante (0 . . . . . . . . . . . . . . . . . . .

  19. · kamo-internal

    Afficher la disponibilité des membres dans la liste des chats; renommer l'onglet "Adestation"

    1:1 les lignes de discussion font maintenant surface de la présence en direct de la contrepartie. de la même manière, l'onglet Répertoire est utilisé de même utilisationDisponibilité/utilisationPresence sources et les mêmes couleurs/étiquettes que MemberItem (point et étiquette majuscule, pulsation lorsque en ligne, gris quand hors ligne), avec une infobulle. Les discussions de groupe gardent les "quelqu'un" en ligne" point d'avatar; les lignes sociales/soutien sont inchangées. L'onglet Membres est rebaptisé "Annuaire" (valeur i18n seulement), ce qui autorise également la collision de nommage avec le groupe de sous-onglets "Membres" des chats.

  20. · KlusterServices

    Télécommande de bureau à distance KubeVirt et passerelle de Guacamole

    Ajoute une pile complète de bureau distante, GitOps appliquée via le flux de travail de déploiement: - KubeVirt et CDI installés au moment du déploiement (URL de libération stable) - bureau-1: Kubuntu 24.04 VM, 8 vCPU / 16Gi / 500Gi Disque de bloc Longhorn, massate net (groupement natif DNS), session KDE xrdp; installation cloud-init Chrome, Code VS, NetBeans, Temurin JDK 21-17, Projecteur, Kate, LibreOffice et enlève Firefox - Apache Guacamole (guacamole et guacd et postgres config DB) à Desktop.kamocrm.com; guacd gère hostNetwork sur k1m1 pour qu'il puisse diffuser WoL-batalement et RDP directement sur le réseau local 192.168.4.0/22 tout en atteignant la VM via ClusterFirstWithHostNet DNS - LAN Windows PC (192.168.4.44, MAC f4:4d:30:62:8a:68) ajouté en tant que connexion avec Guacamole native Wake-on-LAN (paquet magique en connect, 30s attends) - Dûlage de bord: Traefik TLS - limite de vitesse de bureau serrée - en-tête de sécurité, plus Guacamole intégré à l'interdiction de force brute par IP - auto-cert: desktop.kamocrm.com ajouté à STATIC-DOMAINS et cross-ns miroir de sorte cert-manager problème/renouvellement tls-desktop-kamocrm-com dans le bureau ns - Identifiants: 'adresse'' de l'utilisateur; mot de passe injecté à partir de CI secret DESKTOP-PASSWORD au moment du déploiement (env subst/sed - impératif Secret) - jamais engagé

  21. · kamo-internal

    Sous-tabs pour les groupes de discussion, rappelez-vous l'onglet dernier ouvert

    La liste des chats filtrée par une rangée de puces de pilule multi-select qui regardaient de lieu sous l'onglet Chats. Remplacer-les par une barre de sous-onglet à simple sélection (un onglet par groupe: membres de l'équipe / membres / soutien social) resserré les onglets parents/clots de chat, de sorte que la liste du groupe sélectionné remplit l'ensemble zone de contenu. - Un seul onduleur actif au lieu d'un ensemble de seaux actifs; le serveur va maintenant chercher ne tire que sur la catégorie sélectionnée. - Défaut des membres de l'équipe et persiste l'onglet dernier ouvert par membre (entrevus) dispositifs) via le magasin ui-Preferences (key chatsActiveBucket), le port de la premier aller chercher jusqu'à ce que la languette sauvegardée se dérira de sorte qu'elle se charge directement.

  22. · kamo-internal

    Expliquer quand l'e-mail n'est pas configuré; gate compose

    La boîte de messagerie a précédemment rendu sa coque complète même lorsque l'org n'avait pas de fournisseur de courrier électronique ou le membre n'avait pas de boîte aux lettres, en échec silencieusement Appel API. Ajouter un crochet partagéEmailAvailability qui résout si le courrier électronique est utilisable et, si ce n'est pas le cas, pourquoi (fournisseur non configuré ou pas de boîte aux lettres) et si le membre actuel peut s'engager à titre de support en fonction de ses droits? - MessageBrowser affiche désormais un élégant panneau EmailNotConfiguré au lieu d'un Boîte de réception vide, avec copie et CTA qui s'adaptent à la raison et à celle du membre droits (lien vers les paramètres du fournisseur de courrier électronique pour MANAGE-EMAIL-SETTINGS, ou leur propre onglet de boîte aux lettres pour MANAGE-EMAIL-ACCOUNTS, sinon s'en remettre à l'admin. - MailButton désactive "Composer un nouveau courrier électronique" jusqu'à ce que le courrier électronique soit entièrement prêt, avec un L'infobullère spécifique à la raison; NavToolButton gagne désactivé/support d'élément d'essuyage. - Ancrer la règle des 'messages/'gitignore' à la racine de repo afin qu'elle s'arrête aussi ignorer les app/composants/messages/qui y a laissé tomber silencieusement de nouveaux fichiers là).

  23. · kamo-internal

    Tous types Chats list et navigateur-in attention

    Les discussions téléphoniques sont désormais des listes de membres, de groupe, de soutien et de conversations sociales. ensemble, le plus récent en premier, avec un filtre à plusieurs sélections (membres de l'équipe / Membres / Social / Soutien; les deux premiers utilisent les étiquettes personnalisées de l'ordre). Les membres de l'équipe et les membres sont répartis en membres de leur homologue. montrer si vous ou l'autre partie êtes l'agent; chaque ligne ouvre son Fenêtre d'outil natif (chat / soutien / social). Ajouter TabAttention: un badge favicon et un document clignotant.title lorsqu'il y a sont des messages inconnus de tout type de chat (nombre rouge) ou un titre d'acceptation-chef-chef en attente (almber - boulon, apparier l'icône fils/CRM; est prioritaire). Lire le UnreadContext et LeadAlertContext existants, donc pas de nouveau backend.

  24. · MediaService

    Alimentation des conversations non unifiées entre les sessions membres/soutien/sociales

    GET /api/media/sessions/chat accepte maintenant un filtre de catégorie (chat, le soutien, la société; la défaillance totale) et retourne l'un des plus récents au niveau mondial, fusionner des requêtes par nature. Chaque ligne porte: - sessionType (CHAT-SUPPORT-SOCIAL) - membres[-memberType de type pour le client peut diviser les discussions internes entre les membres de l'équipe et les membres, - ticketId et supportRôle (AGENT-REQUESTOR - support est bidirectionnel) pour soutenir les lignes, et le fournisseur et la connexionTitor pour les lignes sociales, De sorte que chaque ligne ouvre sa fenêtre d'outil natif.

  25. · kamo-shared-library

    Demandes de renseignements à l'intention des séances d'appui et de discussion sociale

    alimenter pour que la liste unifiée des centres d'interactions Chats puisse inclure toutes sortes: - SOUTIEN (TYPE-ID-2): sessions où le membre est l'agent affecté OU le demandeur (également retour du ticket id et agent affecté id pour la ligne). - SOCIAL (TYPEID-3) : sessions sur les relations sociales appartenant au membre organisation.

  26. · kamo-internal

    Finir les actions d'en-tête de visualisation et les rappels

    - En-tête: scission Appel en appel (travaux)/Appel (Personnel) ouvrant le softphone (cachée lorsque le membre n'a pas de prolongation enregistrée), le courrier électronique ouvre la Compositeur, Texte --comms/textes, Note déplacée à gauche avec une règle et clignote jusqu'à ce que une note est placée depuis la dernière réaffectation. Retirez le bouton Tâche. - État: supprimer le menu d'état de changement nul et le bouton d'état d'édition cassé; Ajouter une ligne STATUS ET SOUS-ÉTAT qui nécessite de choisir un sous-état et seulement permet la mise à jour lorsqu'elle change. - Retour: dialogue (date/heure et fuseau horaire et commentaire), liste en attente/surmontée l'onglet Détails avec des invites de marquage/annulage, et leadsApi et proxy les itinéraires pour l'horaire/liste/lesolve.

  27. · EmailService

    Critère d'évaluation interne pour créer/annulation d'un événement de calendrier d'un membre

    POST/api/interne/calendrier/events (X-Internal-Auth gated) résout le membre le calendrier primaire de l'utilisateur (créant une valeur par défaut si nécessaire) et crée un événement. Utilisé par SecurityService pour refléter les rappels d'avance sur le calendrier d'un membre.

  28. · SecurityService

    Critères d'appel d'or de tête (tableau/liste/résoudre)

    Nouveau contrôleur et service: persiste rappel, postures de calendrier/notes de résultat dans le flux multimédia de l'adressage, et met en miroir le rappel sur le calendrier du membre de planification via EmailService terminaison d'évaluation du calendrier interne (meilleur effort).

  29. · kamo-shared-library

    Ajouter l'entité LeadCallback, l'enum et le référentiel

    Retrouve la fonction de rappel d'orchève: un enregistrement de rappel appartenant aux leads (PENDING/CONTACTED/CANCELED) claveté du plombUid, avec une référence souple à l'événement de calendrier EmailService miroir.

  30. · kamo-internal

    Créer une session pour les discussions de groupe ouvertes par memberIds

    ChatTool ignoré props.memberIds: un groupe ouvert est arrivé avec un vide userId et pas de sessionGuid, donc le projet 1:1 createSession renfloué tôt et le Window n'a jamais eu de session. Maintenant, quand memberIds est présent ChatTool résout la session via POST /sessions/chat/find-or-create et MemberIds (le même critère d'évaluation Le même chemin de triMemberIds initial de ChatBox utilise; le backend ajoute l'appelant lui-même). La liste des membres est mise à la frappe en tant que chaîne stable triée de sorte que l'effet ne se réifle pas sur l'identité de l'armateur, et les flux de guid résolus par l'écriture existante de sorte que la fenêtre de groupe est GUID-annchée pour dedup.

Votre univers vous attend.

Commencez gratuitement en quelques minutes. Ajoutez des produits quand vous êtes prêt. Pas de migration, pas de nouvelles connexions.

Gratuit pour toujours — aucune carte de crédit requise