Aller au contenu
KAMOUniverse

Changelog

Ce qui est nouveau.

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

  1. · kamo-internal

    Boucles de musique d'arrière-plan d'échecs et de Hold'em pendant que leur fenêtre est utilisée

    Trois nouveaux événements sonores des Jeux — Chess Background, Holdem Background et Holdem Lobby — joué sur répétition avec startLoopingEventSound. Boucles d'échecs chaque fois qu'une fenêtre d'échecs est ouverte; Hold'em joue le fond à une table et la musique dans le hall. Chacun est entendu seulement pendant que sa fenêtre est la fenêtre en cours d'utilisation et l'onglet navigateur a mis au point, et muté (pas redémarré) sinon. La boucle suit les paramètres sonores du membre en direct.

  2. · kamo-internal

    Boucles de musique d'arrière-plan d'échecs et de Hold'em pendant que leur fenêtre est utilisée

    Trois nouveaux événements sonores des Jeux — Chess Background, Holdem Background et Holdem Lobby — joué sur répétition avec startLoopingEventSound. Boucles d'échecs chaque fois qu'une fenêtre d'échecs est ouverte; Hold'em joue le fond à une table et la musique dans le hall. Chacun est entendu seulement pendant que sa fenêtre est la fenêtre en cours d'utilisation et l'onglet navigateur a mis au point, et muté (pas redémarré) sinon. La boucle suit les paramètres sonores du membre en direct.

  3. · kamo-internal

    Image frame indique quand un téléchargement atterrit, joue des vidéos une fois ou sur répétition, et ouvre plein écran

    - Les chargements montrent le fichier, sa place dans le lot et l'octet, puis un toast quand il est dedans. - Les vidéos d'un cadre jouent sur répétition (boucle pendant la projection, tenue pour des pièces entières) ou une fois (plus tard passe montrer le dernier cadre comme un immobile). - Le son ne joue que lorsque le pointeur est au-dessus du cadre ; "Mute videos" devient "Sound on hover". - Cliquer sur le cadre s'arrête et ouvre ce qui est en plein écran avec un téléchargement, et une vidéo lecteur avec jeu/pause, redémarrer, chercher, s'être écoulé/total, muet, volume et plein écran. Fermeture reprend la diapositive avec le temps qu'elle avait laissé.

  4. · kamo-internal

    Image frame indique quand un téléchargement atterrit, joue des vidéos une fois ou sur répétition, et ouvre plein écran

    - Les chargements montrent le fichier, sa place dans le lot et l'octet, puis un toast quand il est dedans. - Les vidéos d'un cadre jouent sur répétition (boucle pendant la projection, tenue pour des pièces entières) ou une fois (plus tard passe montrer le dernier cadre comme un immobile). - Le son ne joue que lorsque le pointeur est au-dessus du cadre ; "Mute videos" devient "Sound on hover". - Cliquer sur le cadre s'arrête et ouvre ce qui est en plein écran avec un téléchargement, et une vidéo lecteur avec jeu/pause, redémarrer, chercher, s'être écoulé/total, muet, volume et plein écran. Fermeture reprend la diapositive avec le temps qu'elle avait laissé.

  5. · kamo-internal

    Panneau d'embarquement pour un marché sans fournisseurs

    Un marché sans produits ne peut jamais montrer de plomb (un plomb a besoin d'un produit), donc /leads remplace maintenant la grille pour ce marché avec le même panneau d'embarquement utilisé quand il n'y a pas de marché, pointant les gestionnaires à Fournisseurs et produits. "Tous les marchés" le montre seulement quand aucun marché n'en a. Le CTA ouvre les paramètres du fournisseur sur ce marché via ?marketId=, et le marché / vendors cache est re-fetched une fois par montage pendant qu'il détient un marché sans produit, donc retour après avoir ajouté un fournisseur montre la grille.

  6. · kamo-internal

    Panneau d'embarquement pour un marché sans fournisseurs

    Un marché sans produits ne peut jamais montrer de plomb (un plomb a besoin d'un produit), donc /leads remplace maintenant la grille pour ce marché avec le même panneau d'embarquement utilisé quand il n'y a pas de marché, pointant les gestionnaires à Fournisseurs et produits. "Tous les marchés" le montre seulement quand aucun marché n'en a. Le CTA ouvre les paramètres du fournisseur sur ce marché via ?marketId=, et le marché / vendors cache est re-fetched une fois par montage pendant qu'il détient un marché sans produit, donc retour après avoir ajouté un fournisseur montre la grille.

  7. · kamo-internal

    Démarrer Org Config Wizard bouton obtient une bordure d'attention rouge

  8. · kamo-internal

    Démarrer Org Config Wizard bouton obtient une bordure d'attention rouge

  9. · EmailService

    Un message composé porte sa réunion, et les modifications de calendrier demandent avant de dire aux invités

    - /api/email/send prend réunionInvite: l'événement est déposé sur l'expéditeur calendrier dans la même transaction, ses ics rides sur le message composé avec un en-tête X-Kamo-Calendar-Event, et les destinataires sont enregistrés comme invités. Numéro deuxième courriel d'invitation. - Une invitation au calendrier conserve les pièces jointes du membre. - PUT /api/calendar/events prend notificationInvités: true élève la SEQUENCE et e-mails chaque invité invité; faux sauve sans écrire à personne. - Les invitations des invités et les mises à jour sortent comme les lettres de l'org. - Va te faire voir. l'invitation d'un message à événement de membre; événements publient invitésInvités et participants invités.

  10. · kamo-internal

    Rencontres compositeur sur l'email, les modifications demandent avant d'emailer les invités, les liens de courrier à son événement

    - Le compositeur envoie sa rencontre avec le message au lieu d'une seconde invitation. - Enregistrement d'une édition d'un événement avec les invités demande s'il faut leur envoyer une mise à jour (GuestNoticeDialog); oui envoie notificationInvités et conserve les invitations par courriel. - Une rencontre que le compositeur a envoyée avant que le public ne soit stocké rouvre avec ses invités. - /message montre la réunion d'un message avec un lien qui l'ouvre sur /calendrier.

  11. · kamo-shared-library

    Invitation à la réunion et mise à jour des lettres pour les invités du calendrier

    Ajoute calendrier.meeting invitation et calendrier.meeting mise à jour des modèles canoniques et MeetingInviteEmail, le constructeur de variables EmailService les remplit.

  12. · kamo-internal

    Affectation des membres de l'équipe aux cartes de tête; importations automatisées sur la toile de cartographie

    Une mission. Importations manuelles et automatisées obtenir un « Membre de l'équipe assigné » cible (remplaçant « Utilisateur assigné », qu'aucun importateur n'a jamais honoré). Ses dialogue définit un membre de l'équipe spécifique, non assigné, ou la correspondance à partir des champs: une liste ordonnée essayée à son tour (une valeur blanche ou non assortie se déplace), avec un un retrait de personne ou un membre choisi. Le serveur correspond au format-tolérant et ne jamais deviner entre deux personnes; les valeurs qui n'ont pas résolu sont énumérées après une importation manuelle et notée sur la file d'attente d'importation automatisée. Les importations automatisées se déplacent d'une table avec des transformations de texte libre (qui serveur jamais lu) sur la même toile glisser-déposer que les importations manuelles, avec les valeurs de l'échantillon des présentations récentes du paramètre. Un seul adaptateur (leadMappingAdapters.ts) traduit la toile pour les quatre écrans. Canvas: les transformations sont modifiables à partir de chaque mapping (le dialogue n'a jamais été avec chaque type de serveur, config inputs, reordering et live aperçu qui utilise les règles du serveur; plusieurs sources peuvent alimenter un champ, ordonnée par priorité; la partie d'une colonne scindée est enregistrée comme une partie scindée transformation de sorte que les importations prennent effectivement cette partie; lignes tirent sur la charge; Supprime/Backspace ne s'allume plus en tapant; les cartes fonctionnent depuis le clavier. Éditeur de modèles: les mappings dont la colonne avait des chapiteaux ont été lâchés sur charge et supprimé lors de l'enregistrement, parce que les en-têtes du modèle reviennent en minuscules.

  13. · DaemonService

    Introduire des cartes d'emploi à travers le moteur partagé, avec affectation des membres de l'équipe

    LeadIntakeProcessingJob construit chaque lead avec kamo-parted-library LeadRequestMapper au lieu de son propre commutateur de champ et transformer copie, donc Importations automatisées appliquer chaque transformation de toile (par défaut champ manquant), atteindre chaque champ de plomb, et honorer la cible d'affectation: un membre fixe, non assigné, ou une chaîne ordonnée de champs correspondant à équipe (email agent, puis nom de l'agent, puis nom de l'appelant pour Harmony JustCall). Les candidats sont les titulaires actifs de VIEW LEADS (Membres à retenir, chargé une fois par lot final). Une valeur qui ne correspond à personne, ou une valeur fixe ou membre de repli qui ne peut plus prendre de piste, est écrit comme une note sur le élément de file d'attente, afin que l'administrateur puisse voir pourquoi une piste est arrivée non assignée. IntakeAssigneeResolver est remplacé par le correspondant partagé.

  14. · SecurityService

    Importations manuelles et arriéré d'admission grâce au moteur de cartographie partagé

    LeadImportController cartographie chaque ligne avec kamo-parted-library LeadRequestMapper au lieu de son propre commutateur, donc les importations manuelles et modèles obtenir l'ensemble du terrain, chaque transformation, et l'affectation des membres de l'équipe cible. Le résultat d'importation porte désormais les valeurs totalAssigné et cessionnaire qui n'a pas résolu à un membre de l'équipe (attribution d'Émissions). Les cartes et les modèles sont validés lors de l'enregistrement: un type de transformation serveur ne peut pas appliquer est une 400, pas une chaîne silencieusement ignorée. LeadIntakeController perd son moteur d'admission en double. Processus Backlog maintenant Requêtes FAILED charge et rapporte ce qui est en attente; l'admission DaemonService travail les importe dans une minute, le même chemin une soumission en direct prend. Enregistrer les mappages d'un paramètre nécessite MANAGE CRM SETTINGS; rejouer le L'arriéré maintient CREATE LEADS. GrantAllRoleResolver et RightHolderResolver délégué à la bibliothèque partagée GrantAllRoles/RightHolders, donc la liste des membres assignables est la même DaemonService utilise.

  15. · kamo-shared-library

    Un moteur de cartographie pour les importations de plomb, avec affectation de membres d'équipe

    Importations manuelles, importations automatisées (entrées) et arriérés propre copie du code de mapping, et ils étaient en désaccord: date, regex et split les transformations étaient absentes partout, les copies d'admission ont sauté vide valeurs avant transformation (donc "valeur par défaut" jamais lancé), plusieurs chemins les offres de toile ont été abandonnées, et "Utilisateur assigné" a été ignoré sur les trois. leads.mapping est maintenant le seul moteur: - LeadRequestMapper : liste des règles -> CreateLeadRequest. Les cartes sont en ordre et la première valeur non vide par champ gagne; chaque chemin leadFields.ts, chaque champ hypothécaire et formulaire personnalisé champs terre (LeadRequestMapper Teste les broches). - LeadFieldTransforms + TransformationsJson: chaque transformation de toile, une mise en œuvre; les types inconnus sont refusés à temps. - Cible d'affectation "AssignéMembre de l'équipe" (la délégation "AssignéUsager" est toujours lue): un membre fixe, non assigné ou apparié à partir de champs. Les champs correspondants forment un chaîne ordonnée - une valeur blanche ou non assortie tombe à travers la suivante, la d'abord que le nom d'une personne décide, sinon le retour de la cartographie (personne ou un membre choisi) s'applique. Le paramètre JustCall d'Harmony repose sur cette chaîne. - TeamMemberMatcher: tolérance au format, correspondance typo-safe sur email, nom d'utilisateur et nom ("Last, First", initiales, surnoms, accents, une petite typo); une valeur qui convient à deux personnes n'est jamais devinée. - LeadAssignableMembres: les candidats sont les titulaires actifs de VIEW LEADS, les mêmes personnes que l'AgentSelector picking offre (RightHolders et GrantAllRoles déménage ici depuis SecurityService pour que DaemonService puisse les utiliser). Aussi: LeadImportResponse reports totalAssigné et affectationÉmissions; LeadIntakeService valide les transformations avant de remplacer les cartes et peut récupérer les charges utiles FAILED pour le travail d'admission.

  16. · kamo-internal

    Options d'appel et de réunion sur la carte vocale d'un membre AI (appels PS92)

    Sous la voix du membre AI dans la salle d'identité du profil : « Transférer les appels à une personne lorsqu'elle demande « Conservez les transcriptions complètes des appels et des réunions dans les notes » (non) et « Lors des réunions » : « Prenez des notes; "Parlez avec tout le monde, comme un appel téléphonique". Chaque sauvegarde à la fois par le relais BFF ******************* à AIService ; un spectateur AIService ne laisse pas les changer les voit désactivés et Pourquoi ? Les valeurs par défaut sont comment chaque AI fonctionnait avant.

  17. · VOIPService

    V7 — quel collègue appelle d'une extension interne (appels PS92)

    Allez-y. (KAMOAI INTERNAL SECRET) répond membre actif de l'org du serveur téléphonique auquel l'extension est attribuée ACTIVEment, ou 404 NO MEMBER. kamoai-service demande quand un appel atteint un membre AI d'une extension, de sorte que le AI sait quel collègue a appelé. Un numéro de téléphone, l'extension non assignée ou désactivée, le membre d'un autre org ou celui qui est parti n'est personne.

  18. · AIService

    Les options d'appel et de réunion d'un membre AI, à côté de ses voix (appels SP92)

    mots-clésTransfert (par défaut sur), keepFullTranscript (par défaut hors) et meetingMode COMPANION COMPANION), dans ai member call options (main-appliquée, re-exécutable DDL; pas de ligne = les valeurs par défaut = le comportement avant SP92). GET/PUT **************** avec les droits des voix (MANAGE AI WORKFORCE, ou son superviseur avec SUPERVISE AI MEMBERS, change; le AI lui-même ne le fait pas; un AI retraité est lu seulement), et le jumeau interne Ce kamoai-service lit pour chaque appel et réunion.

  19. · kamo-shared-library

    RENVOI COMPLETÉ Déclencheur d'exécution, pour le suivi d'une réunion de conversation (appels SP92)

    Une rencontre avec un membre de AI a pris part à une conversation en tant que partenaire le réveille une fois qu'il se termine, avec sa note de transcription, le comme le fait un appel téléphonique CALL COMPLETED. STRING-persisted in ai runs.trigger kind (pas de CHECK); un test de garde maintient chaque nom de déclenchement dans la colonne.

  20. · kamo-shared-library

    Le résolveur TRAIT et Profil de Personnalité — limites, serrures, la couche virtuelle archétype, tendance à écrire, adaptations, groupes ordonnés, la vue et le timbre de personnalité (KamoCollab CP03 T9)

  21. · kamo-internal

    L'onglet Org Chart sur la configuration essentielle, dans le menu de paramètres, sur la page d'atterrissage de paramètres et sur la barre d'administration d'origine (KamoCollab CP02 T24)

    ************* **** monte OrgChartPanel après les équipes : qui rapporte à qui à travers l'organisation, en lecture seule, de l'EEG /api/security/org-chart (nouveau relais BFF, avantToApi + relaisUpstream). orgChartApi analyse le graphique avec zod et garde chaque id une chaîne; un nombre id est refusé, jamais arrondi. orgChartTree (pur) place chaque personne sous son gestionnaire lorsqu'elle est montrée, un AI sous son superviseur lorsqu'il est montré, autrement à la racine; les propriétaires d'abord, puis par nom ; une boucle de reporting coupée à son plus petit id (« boucle de reporting ») ; une boucle cachée gestionnaire signalé ("Gestionnaire inactif"); le filtre du ministère garde le sous-arbre du département et la recherche conserve les noms ou les titres d'emploi, les deux avec les ancêtres qui les placent. Le panneau dessine une carte par personne (initiales, nom lié au profil) par le suivant/lien, le titre du poste, le département et jusqu'à trois jetons d'équipe +n, badges AI, Propriétaire, Inactif, Responsable, Responsable et Supervisé par le le superviseur n'est pas la carte ci-dessus, le compte de rapport direct), rails de connecteurs dans --accent-people, trois niveaux ouverts, EmptyState, ErrorState avec réessayer, et une vie rafraîchie comme ses frères et sœurs. ErreurL'État gagne une option RetryLabel. Aussi exposé par maître R1-37: { clé: 'orgChart' } après les équipes menu de paramètres, une entrée orgChart après les équipes sur la barre d'administrateur, et un carte d'atterrissage après les équipes. essentialSetupExposure, paramètresLandingCards et équipesTab suivre le nouvel onglet.

  22. · kamo-shared-library

    Les sept archétypes intégrés — 56 valeurs de base, tous les groupes et quatre adaptations chacun, la prose, le remplissage et la recherche intégrée (KamoCollab CP03 T8)

  23. · kamo-internal

    Équipes sur la carte membre et dans le répertoire (KamoCollab CP01 T25)

    La carte membre montre les équipes d'un membre de l'équipe sous leur titre et département: jusqu'à trois puces dans l'ordre du serveur, puis "+n", dont tooltip nomme le reste. Une carte sans équipe, ou dont l'équipe a échoué (équipes laissées à l'écart, CP01-T16-1), ne tire aucune rangée d'équipe. Lignes de répertoire équipes via normalizeDirectoryPerson, filtreLes gens matchent avec une équipe le titre, et le participant met jusqu'à deux titres d'équipe et "+n" sur un la ligne de détail de personne, à côté du département, avec toute la ligne dans son C'est un tooltip. Un analyseur (app/lib/teams/teamRefs.ts) lit [{id, title}] pour Les deux.

  24. · kamo-shared-library

    Le modèle de charte pour la couche ORG, PERSONNALITÉ et DocsTION — le vocabulaire, les douze colonnes d'articles, l'objet org charte, les archétypes et leurs dépôts; la validation refuse toujours les nouvelles sections (KamoCollab CP03 T7)

    CharterLevel appends ORG après l'ÉQUIPE du CP01; CharterRule appends TRAIT et COLLAB; CharteLes annexes de la section PERSONNALITE (TRAIT, 160) et DocsTION (COLLAB, 60), aiOnly et non supprimable; CharterValidationReason appends AUTHORITY LANGUAGE et GROUPE INCONSISTENT. CharterItem, CharterItemData et CharterItemDTO porte les douze champs de la section spéciale 5.2, et écrire, àData, toDto, rejetteFields et CharterView. article les porter (écrire refuse un nombre a SMALLINT ne peut pas tenir). MAX ITEMS PER OWNER est 500 (D4). Jusqu'à la tâche 12 valider refuse un élément PERSONNELITÉ ou DocsTION avec UNKNOWN SECTION, et Les marqueurs sont refusés à ORG comme à ROLE (D2). Nouveau pointMarque pour la section des résolveurs. Nouvelles entités OrgCharterItem (org charter items), OrgPersonnalité Archétype et de la personnalité ArchetypeItem avec leurs dépôts, et countByArchetypeRef sur le rôle, le ministère, le titre du poste et les dépôts d'articles des membres. La vérification du titre compare lower() comme l'indice unique. Les colonnes et tableaux existent dans production (PC03 Tâche 3).

  25. · kamo-internal

    Le miroir connaît la PERSONALITÉ et la Docsition (cachée jusqu'au CP09), le niveau ORG et les types de personnalité et de Docstion résolus (KamoCollab CP03 T21)

    - sections.ts: SectionSpec.editor; les deux sections jointes à l'éditeur false; les règles TRAIT et COLLAB; sectionsInBand liste seulement les sections éditées; MAX ITEMS PER OWNER 500 (D4). - items.ts : masquer les marqueurs refusés à ORG au lieu de ROLE (D2) ; les sections que l'éditeur ne modifie pas sont compte vers le capuchon et autrement laissé au serveur, comme les inconnus (D21, D22). - types.ts: niveau ORG, OUT OF BOUNDS, les douze champs d'éléments, résolus. personnalité et résolu. Docsition par spécification 5.6.4. - Le compte du panneau d'aperçu et les jetons de la galerie de gabarit sautent les sections cachées. - Nouvelle charteSectionLe critère de rareté est CharterSection.java et CharterItems.java.

  26. · kamo-internal

    Le chef d'un département — la colonne Head (nom, vide, inactif), le champ Head et le sélecteur de dialogue (personnel actif; membres AI énumérés mais non récupérables), réglé par PUT .../tête après la sauvegarde du département; et le gestionnaire d'un membre devient un administrateur à changer sur la carte Position (KamoCollab CP02 T23)

  27. · kamo-shared-library

    PersonnalitéTextLint — les sept modèles de langue d'autorité de la spécification §5.9, les exceptions de look-forward et {orgShortName}, les apostrophes typographiques et l'espacement Unicode (KamoCollab CP03 T6)

  28. · kamo-internal

    Équipes sur le formulaire de création, pour une personne et pour une location AI (KamoCollab CP01 T24A)

    /settings/membre de l'équipe/nouveaux gains Les équipes sur sa carte de rôle : un choix multiple les équipes de l'organisation (les équipes client), offertes à qui pourrait changer les équipes d'un membre sur le profil (équipesEditAtCreate, positionPorte des droits : MANAGE MEMBER SECURITE), et cachée autrement. Les choix sortir en tant qu'équipeIds, pour une personne et pour une location AI (aiHirePayload garde pas de choix, pas de clé. Un refus des équipes (400/403/409 avec field teamIds) montre sur le terrain et dans la bannière, dans le dictionnaire mots où il les a, NO ALOWED inclus. Un aperçu de la location de AI maintenant inclut les équipes choisies, la couche TEAM elle va commencer par. Les vivants Le résumé nomme les équipes.

  29. · kamo-shared-library

    Liens de tendance — entiers dérivent, l'inverse de mouvement minimal avec la portée à deux terme, et les deux portes (KamoCollab CP03 T5)

    Les tendances de faiblesse sont « propres contrôles, liés et l'option d'être pleinement (décision du propriétaire 6). TendencyLinks.LINKS détient les sept les liaisons des spécifications CP03 §5.4; dériver est de 2,5 x (s - pivot) arrondi à la moitié vers le haut dans les entiers; inversement arrondit la somme cible une fois et porte une pince le déficit de l'autre terme (décision CP03-T5-1..3).

  30. · kamo-internal

    Les équipes d'un membre sur la carte Position du profil, sauvegardées sur la route côté membre, et les noms d'équipes de conseils de cascade (KamoCollab CP01 T24)

    La carte Position gagne des équipes sous le titre de travail: jetons pour chaque spectateur de la carte, un choix multiple sur les équipes de l'organisation pour une sécurité administrateur, enregistré comme {teamIds} à PUT **************** (participant). Les équipes que le profil ne pouvait pas lire ne sont pas proposées pour l'édition, donc un save ne remplace jamais les équipes que personne n'a vues (CP01-T14-4). Un refus montre sur le champ dans les mots du dictionnaire où il les a. Le membre les noms de conseils de l'onglet sécurité, et Team: les sources obtiennent un ton propre.

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