Aller au contenu
KAMOUniverse

Changelog

Ce qui est nouveau.

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

  1. · kamo-shared-library

    Demandes de dépôt pour la recherche exacte, liste de pages, reçus

  2. · kamo-shared-library

    Ajouter dateLastViewed to MediaSessionMembre pour les horodatages de réception

  3. · kamo-shared-library

    Ajouter isAccessARevoked flag pour le contrôle d'accès par joint

  4. · kamo-marketing

    Distinguer activement les messages et les messages en file d'attente

    La file d'attente de traduction était déjà séquentielle, mais chaque bulle en file d'attente rendu "Translator....". Maintenant le message unique en vol montre "Traduction..." avec un point pulsant et le reste montrent "Pending Translation..." avec un point statique, afin que le visiteur puisse voir la file d'attente progresser.

  5. · kamo-internal

    Distinguer activement les messages et les messages en file d'attente

    La file d'attente en continu était déjà strictement séquentielle (on aille à la fois), Mais chaque message en file d'attente rendait "traduction..." parce qu'ils ont tous partagé le même drapeau en attente de traduction. Diviser cela en deux états: le single Un message actuellement en vol montre "traduction..." avec un point pulsant, tous les autres messages en file d'attente montrent "Pending Translation..." avec un point statique. Les messages en direct (arrivants) sont traduits seuls et commencent dans le cadre actif État.

  6. · kamo-marketing

    Afficher l'icône d'erreur lorsqu'un message ne se traduit pas

    Lorsque le message traduit les retours d'appel traduits traduits:faux, erreurs, ou fois dehors, la bulle du chat rend maintenant une icône AlertTriangle en rouge avec l'infobullère "Failed to translate message." au lieu de partir silencieusement la bulle dans la langue originale.

  7. · kamo-internal

    Afficher l'icône d'erreur lorsqu'un message ne se traduit pas

    Lorsque le vote de traduction d'appels traduit traduits:fève, erreurs, ou fois, la bulle de discussion rend maintenant une petite icône rouge ErrorOutline au lieu du badge de traduction avec infobulle "Failed to translate "au lieu de laisser silencieusement la bulle dans la langue originale. Le drapeau est réinitialisé chaque fois que l'utilisateur choisit une nouvelle langue donc une ré-fugition peut réussir sans que l'erreur irritée ne s'en tienne.

  8. · kamo-marketing

    Traductions les plus récentes pour l'histoire des visiteurs

    Lorsque le visiteur atterrit sur un local non anglais et que le chat de soutien a messages anglais existants, chaque bulle signalée Besoins backend montre maintenant un espace réservé en streaming.. les remplir en un par un, en commençant par le message le plus récent. A Un compteur de génération empêche les queues vétustes de clobber l'état de courant.

  9. · kamo-internal

    Traductions de messages les plus récents sur le commutateur linguistique

    Lorsque l'utilisateur choisit une nouvelle langue (ou ouvre une discussion existante dans un langage différent de la source des messages), chaque bulle qui a besoin la traduction rend immédiatement un "traduction..." placet le lieu d'espace et le les traductions sont en train de s'écouler en une seule fois à partir de la plus récente message et travailler à l'envers. Cela inclut le passé de l'utilisateur lui-même. messages - tout ce qui est rédigé dans une langue différente de celle du spectateur est maintenant traduit. Un compteur de génération annule les files d'attente en vol si l'utilisateur change à nouveau de langue.

  10. · kamo-marketing

    Messages de visiteur et d'agent auto-transférer

    Réponses de l'agent vivant arrivant dans une langue autre que l'URL du visiteur local maintenant montrer une bulle "Translating..." tandis que l'appel TranslateService se résout, puis échanger au texte traduit par un badge Langues dont l'infobulle montre la langue source et le message original. Les messages de visiteurs sont étiquetés avec l'URL locale sur l'envoi afin que le chat de l'agent puisse les traduire dans le langage de profil de l'agent. Les messages chargés dans l'histoire sont traduits face avant via la nouvelle requête 'lang'locale' param sur /api/chat/support.

  11. · kamo-internal

    Traduire les messages de discussion dans la langue du téléspectateur

    Ajoute un cueilleur de drapeau "My Language" dans NavTop (à gauche de l'outil d'e-mail, séparé par une règle verticale). Sélection d'une langue revient à Member.language et synchronise le cookie local afin que l'ensemble de l'interface utilisateur change; il diffuse également un événement que tout ChatBox ouvert utilise pour re-réfuter son histoire dans la nouvelle langue. ChatBox frit maintenant des messages avec ?lang-locale, rend les bulles traduites avec une petite badge Traduire dont l'infobulle montre le texte original et la source et montre un espace réservé pour les messages en direct jusqu'à la Retour d'appels TranslateService. Le chemin d'envoi marque chaque message sortant avec l'emplacement de l'auteur de sorte que d'autres téléspectateurs peuvent le traduire à la demande.

  12. · APIService

    Critère de traitement par prise en charge par procuration, texte-critère

    Ajoute une voie de passage pour le nouveau critère d'évaluation de MediaService qui traduit un un message d'assistance unique dans la localisation de l'URL du visiteur. Le côté marketing b) que la passerelle passe maintenant à MediaService avec le chat public standard contrôles auth et à taux limites.

  13. · MediaService

    Traduction à la demande pour les messages de discussion et d'appui

    Capture la langue source pour chaque message de discussion/soutien et ajoute un optionnel ?lang-XX param sur les critères d'évaluation de l'extraction par message plus un parmessage POST / traduire le critère d'évaluation. MediaService s'entretient désormais avec TranslateService via TralationServiceClient, et MessageTranslationService cachent des résultats MediaObjMsgTranslation donc la même traduction n'est jamais payée deux fois. Filage de la même chaussée dans le chemin public-chat (visiteur): les visiteurs envoient leur URL locale en tant que langue de sourceLanguage, et les côtés de l'agent/visiteur tirent chacun traductions dans leur propre langue préférée. Ajout du service de traduction secret du déploiement de MediaService afin que le nouveau client puisse s'authentifier.

  14. · kamo-shared-library

    Chat de traduction pour les messages de discussion

    Ajoute l'entité MediaObjMsgTranslation (une ligne par paire (message, langue)) et une colonne optionnelle sourceLanguageId sur MediaObjMsg afin que les messages de discussion puissent être traduit à la demande et remis instantanément en réserve à d'autres téléspectateurs dans le même langue. ChatMessageDto porte sourceLanguageId pour que les destinataires vivants sachent s'ils doivent être traduits? MediaService.createMessage gagne une surcharge qui prend le langage auteur, revenant à Member.language for legacy les appelants.

  15. · kamo-internal

    Ajouter des sections personnelles et Chat/Docs/Notes/KB/HRS

    L'indice /settings n'a montré aucune section aux non-administrateurs parce que chaque La section existante a été fermée sur un droit administratif (CONFIGURE-SYSTEME, GESTIONNEMENTS, GESTION-ACCESS-RULES. Un membre régulier de l'équipe avec uniquement les droits de soutien ont été exactement de 3 cartes (Thèmes, Analyses, Soutien) et rien d'autre. Ajouter une section personnelle toujours visible (Mon profil, audio et vidéo, Activité du compte, et plans et facturation des enfants) qui sont liés à la les prises de vue/réglages/membre/conneuds de l'utilisateur - donc les réglages ne sont jamais vides, quels que soient les droits d'org. Retourner également le poste de Chat/Deux/Notes précédemment manquants au début. Sections de base/SHR et chacune fermée sur le drapeau de l'org correspondent et la garantie de la fabrication appropriée - pour correspondre à la qualité de la mission /settings/features/-app----------------------------------------------

  16. · kamo-internal

    Élaboration de l'objectif sur la base du rapport d'aspect de la fenêtre de visualisation

    Le cadre de but s'incline maintenant de atan2 (viewportH, viewportW) donc son ouverture vise la diagonale de la fenêtre de visualisation - pour les moniteurs 16:9 points d'ouverture - 29 degrés au sud de l'est; pour le portrait, il pointe plus près sud. Lire comme les utilisateurs jettent naturellement les têtes de la majeure partie du écran vers le coin supérieur gauche. Physique: la collision de but est maintenant en but-LOCAL. Chaque lancé la vitesse centrale de la tête dans le cadre local, l'ABB existant collision contre des parois alignées sur des axaux passe sous forme inchangée, puis Le push-out et la réflexion de vitesse tournent vers l'espace mondial. Le Le contrôle de zone de score est également effectué en coordonnées locales, donc une tête vraiment entrer dans les obus fixes (rotatifs). Visuel: la trame SVG et la lueur d'entrée en direct à l'intérieur d'une rotation Conteneur; superpositions de célébration (GOAL/MISS) et sous-titres REMOVE s'asseoir à l'extérieur de la rotation de sorte que le texte reste lisible. Miss-souprage maintenant oscille autour de l'angle de base au lieu de zéro. L'angle d'objectif est recalculé sur la redimensionnement de la fenêtre d'affichage par l'intermédiaire d'un dispositif de réglage d'état, avec a ref parallèle de sorte que le lancer RAF lit la dernière valeur chaque trame sans recréer le rappel.

  17. · kamo-internal

    Jeter un but avec des célébrations de score/mans

    Une trame de but de 132 x 132 apparaît en haut-gauche chaque fois qu'une tête est en un front solo ou un ergot actif, décalé de 56px à partir du coin de sorte que les têtes peuvent Mlle le passé ou derrière. Trois parois pleines (en haut, à gauche, en bas) agissent comme surface élastique rebond (20,65) restitution); le côté droit est ouvert entrée. Un X rouge gras dans le panneau arrière fait l'intention "retirer" indubitable, et un indicateur d'entrée pulsée marque le côté ouvert. Quand le centre d'une tête jetée croise dans la zone de score, il est enlevé à partir de la carte de jets, la fenêtre de l'outil sous-jacente est fermée via outil: fermer, et la tête est enlevée via removeHead. Un vert radial flash, rafale d'or 18 particules/orterange, et superposition rebondissante l'incendie sur le piège. Quand une tête jetée rebondit simplement sur n'importe quel mur de but (débouclé par 350ms pour qu'une seule panne n'embilisse pas d'événements de spam), l'objectif Se secoue le rouge et un MISS- recoudre des coups de poing. Stabilité: la collision d'objectifs se rejoigne entièrement à l'intérieur de la boucle RAF (pas de contention de système de ressort), et HexHeadGoal-one possède tous Célébration de l'état interne - le moteur ne fait que déclencher des événements. Pure caractéristique additive; les chemins de traînage/dépossion non-jets sont inchangés.

  18. · kamo-internal

    Jeter de la physique avec des collisions avec des collisions de table de pool et des sentiers de comètes

    En franchissant le seuil de jet le lance à travers la fenêtre de visualisation en physique explicite (friction, rebond de bord, tête-vs tête-tête élastique collisions). Des gouttes lentes atterrissent encore exactement là où elle est relâchée. Pendant la tête est en mouvement une piste d'incendie de style arcade qui le suit. Le jet est fermé par les deux vitesses de déclenchement (plus de 650 px/s moyenne sur le territoire de la la distance totale de la traînée (plus de 30 px) est donc rapide précise le repositionnement ne déclenche jamais accidentellement un lancer. L'eau est coiffée à 3200 px/s pour maintenir les films de bord de détection apprivoisés. La boucle de lancer RAF entraîne des écritures de valeur de mouvement directement via .set() en contournant le cadre-mouvement ressort en vol - et auto-stops lorsque toutes les têtes descendent en dessous du seuil de vitesse d'arrêt. softPushCluster saute n'importe quelle ancre actuellement dans la carte de lancement de sorte que Le système de printemps ne combat jamais l'intégrateur de physique. Les têtes foncés de n'importe quel groupe, promeuvent vers un cluster solo, et joindre la simulation de jet avec l'impulsion communiquée par la collision. Remise de la piste: couche SVG avec bôme de gradient radial le long récent positions, mélange-mélange-mode: criblage pour la lueur additif, flou CSS unique Filtre pour la douceur et l'esthétique de l'arcade, coût de l'unité centrale proche de la solution à taux de gravité.

  19. · kamo-internal

    Utiliser OTK mis en place par serveur pour passer à un nouvel org

    Préférez le taux de suivi par POST /api/security/org /api/sécurité/enter-comme aller-retour. Le serveur chanfreine un nouveau propriétaire en tant que partie de la création d'une og, de sorte que la création post-créer vers la nouvelle org's /validate est déterministe - pas de race avec création de domaine, non un silence comme échec laissant le créateur sur la session parent-org.

  20. · SecurityService

    Le propriétaire de la Monnaie sur la création d'une ug

    Après la créationOrganizationOwner, frapper une nouvelle et liée au nouveau propriétaire TeamMember et retourne son OTK aux côtés d'id/symne. Sans cela, le le créateur reste à la session parent-org - droits limités et is OrganisationOwner-false - donc la page des paramètres de l'ordre de l'enfant apparaît Les plans et la facturation sont cachés jusqu'à leur retour manuel.

  21. · kamo-shared-library

    Ordres COMP auto-récuplés non provisionnés au démarrage

    À la rubrique « PostConstruct », scanner toutes les commandes APPROUVÉ COMP et prévoir les dispositions qui Manque d'abonnement à un compte. Idempotent et find-or-create signifie en toute sécurité courir à plusieurs reprises.

  22. · kamo-internal

    Déplacer l'état d'avancement de la disponibilité vers le côté gauche avant My Businesses

    Relocalise la pilule de statut de la barre d'action de droite à la section d'accueil de gauche, en la plaçant entre le séparateur d'accueil et My Businesses avec un séparateur. Supprime la règle verticale maintenant orphanée qui séparait auparavant le statut des boutons d'icône.

  23. · kamo-internal

    Ajouter targetOrganizationId aux types d'ordonnances d'abonnement et créerAbonnementOrder

  24. · SecurityService

    Ajouter le point d'extrémité de provisioncomp pour activer l'abonnement COMP à partir d'une commande approuvée

    POST - appels - invalide les droits pour l'org cible via EntitlementService.

  25. · kamo-shared-library

    Comp. COMP est approuvé par l'approbation des ordonnances Auto-dispositions Comptabilité Abonnement et attribue la licence

    - Abonnement: ajouter la cible Organisation (volet FK à des entrepôts) Ajouter la chaîne de cibleOrganizationId - AccountRepository: ajouter findByPrimaryMember-Id pour la recherche de compte par membre du titulaire - SubscriptionService : injectez la base de facturation; provisionSoubonnement créant/upserts - SubscriptionMember, et AccountLicense ACTIVE pour le membre cible-org; approuver l'ordonnance l'appelant pour la méthode de paiement COMP; nouvel activateurComporder pour la fourniture rétroactive des ordres APPROVED COMP existants

  26. · kamo-internal

    Remplacer click-to-open avec action popover et contrôle de taille

    Cliquer une tête hexagonale ouvre maintenant un popover de morphisme du verre poli avec des actions contextuelles au lieu d'ouvrir immédiatement sa fenêtre d'outil. Membre les têtes de discussion exposées: Open Chat, View Account, Email, Invitation à la réunion, Appel (lorsque les deux parties ont une extension VOIP enregistrée); têtes d'outils Expédier l'"OutilName" ouvert. Un sous-menu de taille permet à l'utilisateur de choisir petit/moyen/ pour cette tête spécifique (persisté par membre via la nouvelle MemberUiPreference store) plus un diaporno-échelle mondiale qui affecte tous les tête hexagonale sur cette machine (persistée dans localStorage). Fenêtres d'outils maintenant largeur/hauteur de la pince à la fenêtre de visionnage de sorte qu'ils ne s'ouvrent jamais partiellement - écran même avec des fenêtres rétractées.

  27. · InitializerService

    Ajouter le tableau MEMBRE-UI-PRÉFÉRENCES (ordre 60)

    Idempotent CREATE pour le support de mémoire de préférences UI par membre le sélecteur de taille popover hexagone et les paramètres d'interface utilisateur futur par membre. Schéma reflète la convention EbRecordState (est-active, date-créée, date-mise à jour) utilisée ailleurs dans le modèle de données.

  28. · SecurityService

    Ajouter MemberUiPreferenceContrôleur pour les paramètres d'UI par membre

    Soute le nouveau sélecteur de taille popover hexagone et tout futur petit par préférence de l'utilisateur membre. Points d'extrémité sous /api/sécurité/membres/moi/ui- les préférences résoudrent le membre à partir de la session OTK et lire/écrire JSON valeurs clavette d'une corde de préfKey opaque.

  29. · kamo-shared-library

    Ajouter MemberUiPreference entité pour les préfs d'UI par membre

    Magasin de préférences UI par membre générique (memberId, prefKey, valeur JSONB) pour les petits paramètres d'interface utilisateur persistent. Le premier consommateur est le popover hexagone Sélecteur de taille.

  30. · kamo-internal

    Wire FeaturesManager à l'abonnement à la plate-forme pour le portage d'ors enfants

    FeaturesManager appelait l'héritage, qui lancers (retirage noué) au lieu de lire le véritable abonnement à la plate-forme. Maintenant, appelle - qui interroge l'orge de la racine les ordres d'abonnement commercial pour l'adhésion de l'appelant à l'orge. Lorsque le l'appelant a un ordre COMP APPROVED sur l'orge racine, toutes les portes de caractéristiques ouvertes comme attendus pour les enfants-orgs composites.

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