Aller au contenu
KAMOUniverse

Changelog

Ce qui est nouveau.

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

  1. · MCPGatewayService

    Rag search prend audience PUBLIC, la recherche du public peut lire (SP95 T12)

    Une AI sur un appel téléphonique répond à un appel anonyme, donc il recherche seulement le les articles publiés par le public peuvent lire, jamais les notes (spéc D12). L'option public enum est ["PUBLIC"] et est transmis à RAGService (Tâche 11); autre valeur est INVALID ARGUMENTS par schéma et n'atteint jamais RAG.

  2. · KlusterServices

    Rspamd conserve ses données dans sa propre Redis

    local.d/redis.conf est maintenant la clé redis-own.conf: rspamd-redis in mail, base de données 0, la même connexion mail rspamd. Le changement de sous-path roule la goupille. La vieille clé reste dans la ConfigMap jusqu'à ce que le commutateur soit confirmé, donc `kubectl -n le déploiement du courrier défaire le déploiement/rspamd` est le retour complet (SP98-M-1, étape 2 de 3). Expédiez-le seulement après la copie des données de rspamd en rspamd-redis.

  3. · KlusterServices

    Un redis de rspamd

    rspamd parses untrusted mail et se connecte à la plate-forme Redis, à côté de chaque session du membre, et aucune ACL ne peut les garder là-bas: un utilisateur ne peut pas être scoped to one database; les scripts de rspamd passent les étiquettes de classe, drapeaux et msgpack blobs comme KEYS, de sorte qu'une ACL clé-pattern refuse chaque Bayes apprendre; et ses Bayes expiration SCANs, qui énumère chaque nom de clé (*** et les noms OTK sont porteurs les lettres de créances) quels que soient les modèles. Ceci ajoute rspamd-redis dans le courrier: la plate-forme Redis construit, épinglé à k1m1 à côté de rspamd avec ses fichiers sur le disque de ce noeud, une base de données, PING seulement sans login, mail rspamd avec le mot de passe existant de rspamd, kamo ops pour les opérateurs, et une politique de réseau qui admet les pods de rspamd seul. CI l'applique et l'attend avant Rspamd. rspamd lui-même est inchangé jusqu'à la suivante commit (SP98-M-1, étape 1 de 3).

  4. · SecurityService

    Un charter save atteint le temps d'exécution AI à la fois, et le profil charter nomme l'entreprise (SP95 T6)

    ************* **** est maintenant une cause. La voie des droits envoie DROITS; une charte engagée sauve envoie CHARTE pour chaque AI touchée membre, avec les droits actuels du membreStamp (lire après le commit, dans une requête) et vide ajouté/supprimé, donc chaque pod kamoai tombe que l'IA charte et listes d'outils à la fois au lieu de servir une liste d'outils périmés. - Une sauvegarde de niveau membre (S6) annonce le membre lorsqu'il s'agit d'une AI. - Un rôle, un département ou un titre d'emploi sauf, une charte seulement (S7-S9) ou un mise à jour transport charterItems, annonce chaque équipe d'IA non-retraitée membre de l'org, d'une requête org-keyed. - CharterProfile gagne orgName, le nom de la société parlée (OrgSpoken) Nom: nom abrégé, autre nom, autre nom légal), ligne d'identité.

  5. · MCPGatewayService

    Approbations request envoie une classe qu'un outil effectue à cet outil; le timbre charte garde les outils frais (SP95 T10)

    approbations request refuse une classe d'action un outil de catalogue effectue avec INVALID ARGUMENTS UTILISATION TOOL {outil, outils, classe d'action}, ou NO TOOL FOR YOU lorsque l'appelant ne peut voir aucun de ces outils; seulement les classes DECISION ONLY obtiennent toujours une l'approbation de décision seulement. ToolSpec. alsoClasses déclare les classes qu'un planificateur peut re-classer à (mail, chat, calendrier, tâches, téléphone appel), le registre dérive le classe -> table d'outils d'eux, et la visibilité cache un outil seulement quand chaque classe qu'il peut prendre est FORBIDDEN. Le pipeline refuse maintenant un FORBIDDEN prévu classe sur une nouvelle exécution approuvée aussi, et CharterPolicy miroirs D1 (un sans nom PLACE INTERNAL CALL hérite d'une PLACE CALL FORBIDDEN). X-Kamo-Charter-Stamp atteint CharterClient.policy(membreId, attenduStamp), qui relise une charte mise en cache sous un autre tampon à la fois; outils/liste est jugé par une charte lire et répond ****************

  6. · kamo-apps

    Ouvrir l'application avec les réponses qu'un site de prêteur a déjà prises

    Un site de marketing d'un prêteur peut maintenant porter son propre formulaire court "get started" et envoyer l'emprunteur ici avec but, nom, email et téléphone rempli, Donc personne ne les tape deux fois. Les réponses voyagent dans le fragment d'URL, jamais la chaîne de requête: un fragment n'est pas envoyé au serveur, donc un emprunteur e-mail ne atterrit jamais dans un journal d'accès ou un référent, et le formulaire l'efface dès qu'il l'a lu. L'objet voyage comme le nom de l'enum (achat, refinance) et est assorti contre les propres options du produit, de sorte que le site n'a jamais besoin d'un id ordinal. Seeding n'épargne rien : sur un premier contact, le plomb est encore créé par le premier «continuer» de l'emprunteur, comme s'il avait dactylographié les réponses.

  7. · SecurityService

    SP94 DDL pour les deux colonnes du nom phonétique de l'org, appuyée par un test de contrat

    orgs.title phonetic et orgs.title short phonetic, tous deux nuls VARCHAR(255) sans défaut et pas de CHECK, la même forme que users.name phonetic. Appliquée à la production (SP94 Tâche 2); contrat test pins le fichier à la spécification 5.1 une déclaration.

  8. · AIService

    E5 parle avec la voix rappelée d'un membre AI, son modèle préféré d'abord, et nomme la voix qu'il a envoyée

    Pour un sujet d'IA (la propre session de l'IA, ou le jumeau interne avec ?memberId=) chaque Le candidat TTS reçoit la voix que décide le résolveur SP96, et le modèle de réponse La décision est rappelée après la synthèse (insérer, comparer et fixer, toucher horaire). Avec le modèle kamo:auto le modèle préféré du membre est marché en premier. Une session de personne, y compris un envoyé en tant qu'acteur d'IA, garde voixPour inchangé. La mémoire est le meilleur effort : une lecture ou une écriture ratée est un WARN et le membre parle encore. Chaque discours répond Il porte X-Kamo-Voice-Id.

  9. · RAGService

    Public Public restreint une session recherche d'articles publics publiés

    Une recherche de session peut envoyer le public: "PUBLIC" à rechercher en tant que public widget ne (aucun membre, aucun type de membre): articles publiés marqués pour le public, jamais un mot. Un membre de l'IA sur un appel téléphonique recherche avec son propre session TEAM MEMBER tandis qu'un appelant anonyme dirige les questions. Le champ se rétrécit seulement: toute autre valeur est 400 {erreur, champ:"audience"}. Le chemin interne l'ignore. KamoAI SP95 Tâche 11, spec §5.5, D12.

  10. · VOIPService

    La ligne d'équipe du serveur téléphonique pour le transfert sans nom d'un membre AI

    SP95 D10: les paramètres de voix AI prennent par défautTransferExtension (chiffres, comme le retour; blanc l'éclaircit) et l'écho. La nouvelle voie interne Allez-y. répond à la cible SIP de la ligne d'équipe, ou 404 NO TEAM LINE lorsqu'elle est déconnectée.

  11. · SecurityService

    Carte d'appel d'un collègue pour les appels d'IA et consentement aux appels d'IA sur son propre profil (SP95 T5)

    - Allez-y. (X-Internal-Auth): une équipe nom du membre, gentil, qu'ils soient encore ici, leur zone effective (site de travail, membre, org, UTC), les numéros E.164 sur leur profil (CELL, PHONE, TRAVAIL) et leur propre consentement permanent. A membre qui n'est pas dans l'équipe (un portail de connexion) n'a pas de carte. - GET/PUT **************** une personne change de membre de l'équipe d'IA» appelle pour l'un de leurs propres numéros, ou off; un registre sous membre:<id>, via PROFIL MEMBRE. Self ou MANAGE MEMBER SECURITE lit (chaque nombre masqué); seule la personne eux-mêmes écrit. - MemberZoneResolver: Résolution TimezoneController, extraite inchangée, donc la propre La zone et les heures d'appel de l'IA sont d'accord.

  12. · AIService

    L'utilisation de l'ordinateur est gagnée par les propres outils d'ordinateur * de Kamo par tout fournisseur (SP98 T25A)

    outil d'ordinateur natif avec un en-tête bêta et transmis sur n'importe quel 2xx. Les membres de l'IA conduisent leur poste de travail à travers les outils d'ordinateur du Tool Plane, jamais un fournisseur API native, donc la vérification teste maintenant exactement cela, la même chose pour chaque fournisseur type dont l'adaptateur de chat envoie des images: trois écrans de test 1280x800, un nom bouton sur chaque, cliqué par ordinateur click(x, y) à l'intérieur de ce bouton. Un laissez-passer écrit toolVersion kamo computer 1, le contrat passé avec le modèle. - Le routeur sert COMPUTER USE où l'adaptateur envoie des images et rejoue résultats de l'outil (une boucle d'outils sur des captures d'écran), quel que soit le fournisseur. (UI-TARS, GUI-*, un modèle d'utilisation de l'ordinateur) sont suggérés pour le contrôle à régler. - Une AI peut toujours utiliser COMPUTER USE seulement une fois qu'elle est VÉRIFIÉE.

  13. · MCPGatewayService

    Appel téléphonique appelle un collègue par membreId, comme PLACE INTERNAL CALL (SP95 T9)

    Un collègue est nommé par membreId, jamais par numéro: le planificateur lit leur Sécurité Service carte d'appel et compose la cellule, sinon le téléphone, sinon le travail numéro sur leur profil (un nom doit être l'un des leurs). Seulement un actif personne de l'org de l'appelant peut être appelé ainsi; les refus sont INVALID ARGUMENTS NON A COLLEAGUE, NE PEUVENT CALL SELF, NO NUMBER ON PROFIL ou Pas du tout. L'appel est PLACE INTERNAL CALL, son résumé nomme et K6 est appeléMembreId. C'est la sienne. requête vérifiée, remise sur le plan par défaut comme une demande vérifiée, est la consentement de l'appel (consentementBasis CALLEE REQUEST avec sa requêteRef). Un appel de nombre reste PLACE CALL, inchangé. ActionClasses gagne PLACE INTERNAL CALL.

  14. · kamo-internal

    SP96 sexe sur le profil de membre, fermé en tant que données personnelles

    Une carte de renseignements personnels dans la salle d'identité contient le sexe du membre : Non spécifié, femme ou homme. Il est sur la rangée des membres, donc les portes miroir de la règle D3 de SecurityService: le membre et leurs administrateurs voir, et sur un AI ainsi que ses gestionnaires de l'effectif et son superviseur. Une personne change sa propre AI jamais. Non spécifié sauvegarde comme null. La clé fait un sauvetage seulement quand c'était changé, parce que SecurityService refuse de toute personne qui ne écrire (SP96-T5-1). Un refus qui donne le nom d'un champ montre maintenant sous ce champ au lieu de sous chaque champ dans la même demande.

  15. · kamo-internal

    SP96 sexe sur le profil de membre, fermé en tant que données personnelles

    Une carte de renseignements personnels dans la salle d'identité contient le sexe du membre : Non spécifié, femme ou homme. Il est sur la rangée des membres, donc les portes miroir de la règle D3 de SecurityService: le membre et leurs administrateurs En outre, les gestionnaires de la main-d'oeuvre et leur superviseur le voient, et sur une AI. Une personne change la sienne, une AI ne le fait jamais. Non spécifié sauvegarde comme null. La clé fait un sauvetage seulement quand c'était changé, parce que SecurityService refuse de toute personne qui ne écrire (SP96-T5-1). Un refus qui donne le nom d'un champ montre maintenant sous ce champ au lieu de sous chaque champ dans la même demande.

  16. · kamo-shared-library

    La vérification d'utilisation de l'ordinateur écrit le contrat un modèle passé (SP98 T25A)

    COMPUTER USE est gagné par les propres outils d'ordinateur de Kamo par n'importe quel fournisseur, donc toolVersion est rempli de sondes: les enregistrements de vérification qui contractent le modèle passé, et un administrateur qui ajoute la capacité n'a pas de version d'outil fournisseur à taper.

  17. · kamo-shared-library

    SP96 retire l'épingle VOICE TTS de la charte

    Un élément VOIX est seulement style : validation refuse voiceModelId/voiceId (FIELD NOT ALOWED), le résolveur n'a pas de clé TTS et EffectiveCharter pas de Tts, et CharterView n'émet pas de voix.tts. AIService se souvient de chaque AI voix du membre par modèle à la place. Les colonnes et les cartes des entités restent inchangées; une ligne tenant encore une broche est émise comme son style, et l'épargner l'épingle.

  18. · kamo-shared-library

    PLACE INTERNAL CALL, consentement du membre, nom de la société parlée, la ligne d'équipe, approbations ON REQUEST

    SP95 Tâche 4 (spéc §5.2, D1, D4, D10, D15, D24): - AiActionClass gagne PLACE INTERNAL CALL (AUTONOMEUX), annexé en dernier. CharterResolver résout un PLACE INTERNAL CALL FORBIDDEN sans nom, avec la source de PLACE CALL, lorsque PLACE CALL résolu FORBIDDEN. Le plafond de section d'HOMOLOGATION suit le nombre de classes (19). - AiVoiceConsentVia gagne MEMBRE PROFIL ; **************** - OrgSpokenName: le nom court, sinon le nom d'affichage, sinon le nom légal. - Oui. (DEFAULT TRANSFER EXTENSION, nulle). - AiCallEventType gagne CONSENT BASIS. - AiApprovalMode gagne ON REQUEST; AiApproval.requestRef (request ref VARCHAR(200)). Les deux nouvelles colonnes doivent exister (la DDL de la tâche 3 du PS95) avant que cela n'atteigne le principal.

  19. · AIService

    Un membre de l'IA se souvient de la voix par modèle de parole, et le résolveur qui la garde ou la repique

    Le magasin ai member voices (JDBC, TransientDbRetry, compare-and-set re-picks, une touche horaire, le CHOSEN le drapeau préféré d'un état), les faits de membre dont il a besoin (AI, sexe, langue), et le résolveur pur de SP96 spec Section 5.4: PASS, UTILISATION, PECO ou PICK par candidat, par langue puis par sexe, ancré sur la voix préférée

  20. · VOIPService

    Le fichier DDL pour la ligne d'équipe du serveur téléphonique

    SP95 Tâche 2. VARCHAR(20) qui détient l'extension d'un transfert sans nom d'IA anneaux (la ligne d'équipe, 8200 sur le k1m1 FreePBX). Appliquée manuellement par la tâche 3 avant les constructions qui la cartographient; Sp95DdlContract Teste les pins dans le fichier spec est une déclaration ré-exécutable, additive, nulle.

  21. · SecurityService

    SP96 options de location pour laisser dehors l'extension téléphonique et le poste de travail

    Le corps créé d'une location d'IA prend aiPhoneExtension et aiWorkstation (JSON booleans, vrai en cas d'absence). Une étape laissée de côté est créée SKIPPED avec NO REQUESTED AT HIRE, donc la location atteint toujours COMPLETE, et la route de réessayer la rouvre comme mise en place maintenant. La vue de la liste de contrôle marque une telle rangée déchaînéeAtHire et réutilisable. Une nouvelle étiquette de retrait il avec la raison de la retraite, de sorte qu'il ne peut jamais être installé sur une AI à la retraite.

  22. · AIService

    Le genre d'une voix, à partir de son dossier, une table soignée ou son style, et le genre des vendeurs gardé par la sonde

    Tâche 7 de la SP96 : et VoiceGenders.de(type, modèle, enregistrement) appliquant la spécification 5.3 dans l'ordre: convention, Piper norman, Deepgram thalia), un style exactement féminin/mâle, C'est faux. VoiceInfo gagne genre: OnzeLabs cartographie les étiquettes. sexe, Aucune. ProbeRunner stocke le sexe avec les autres champs de voix. Rien ne lit le sexe (tâche 8).

  23. · SecurityService

    SP96 sexe sur le profil de membre et à la création, fermé comme données personnelles

    GET /api/security/members/{id} noms sex (FEMALE, MALE ou NULL) uniquement à une appelant qui peut le lire (MembreSexAccess, spec D3); la clé est absente pour Tout le monde. PUT refuse une mauvaise valeur (400 sexe de champ) et un appelant qui peut ne pas l'écrire (403 NOT ALOWED field sex) avant que quelque chose ne soit écrit, ensembles il, et vérifie un changement par quelqu'un d'autre que le membre: les valeurs, une personne est sans elles. La création de membre lit le sexe de la organisme pour tout enregistrement via le même MemberSexWire.

  24. · kamo-shared-library

    SP96 MemberSex, Member.sex et un sexe sur le disque vocal

    membres. sexe est une colonne STRING annulable (Female, null = pas spécifié), donc un membre de l'IA peut parler avec une voix correspondante. Le TTS et REALTIME AUDIO voice record accepte un champ de genre optionnel.

  25. · AIService

    La table ai member voices et la migration charter voix-pin, comme SQL appliqué main

    DS96 Tâche 2. Le tableau se souvient de la voix d'un membre de l'IA par modèle TTS (spéc 5.1); la migration déplace chaque pin VOICE charter vers un CHOSEN, MIGRÉ, ligne préférée et n'efface qu'une épingle dont la voix exacte est maintenant rappelée (spéc 5.9). Il est lancé une fois par tâche 11, après le déploiement de la tâche 10. Sp96VoiceDdlContractTest maintient les deux fichiers ré-exécutables, additifs et exactement le contrat.

  26. · SecurityService

    SP96 DDL pour les membres. sexe, soutenu par un test de contrat

    Le sexe d'un membre est un VARCHAR(16) nul (FEMALE, NULL = non) spécifié), appliqué à la main dans la tâche SP96 3. Le test de contrat conserve le dossier re-runnable, sans PAS NULL sans DEFAULT et sans CHECK, JSON ou DROP.

  27. · kamo-internal

    La liste de messagerie vocale met à jour en direct (SP98-Q-3)

    Rien dans le navigateur n'a souscrit à /topic/voicemail/<member>, où MediaService relaie le nouveau cadre de messagerie de VOIPService, donc la carte est arrivée et la liste n'a pas changé. Chaque onglet écoute déjà sur la prise de chat holds (la socket d'appel est seulement ouvert dans l'onglet qui possède la ligne, et seulement pour un org qui peut prendre des appels), et plie la première page de la boîte aux lettres dans la liste, garder les pages déjà défilées. Un reconnect rattrape de la même façon. Les la branche VOICEMAIL DEPOSITED morte sur le sujet SMS a disparu.

  28. · TranslateService

    Envoyer en->ta à Kamo IndicTrans, et journal du moteur répondu

    Aucun fournisseur n'a réclamé fr->ta (Libre liste aucun Tamil, Bergamot sert Allemand seulement), donc le routeur a rendu la source anglaise pour chaque Tamil requête, et le dictionnaire sync l'a écrit comme la valeur: kamo-internal ta.json a égalé l'anglais en 34 549 sur 34 779 clés. IndicTransProvider revendique exactement en->ta, la paire des services kluster le modèle indic->en, qui est pas déployé, donc il reste non réclamé. Ça parle du moteur. Libre API en forme derrière le même jeton mandataire auth, avec LibreTraduisez comme suit: 503 occupé est à nouveau essayé dans un budget de 100 s). Le routeur essaie après Bergamot et avant LibreTrail. FournisseurRouter enregistre maintenant une ligne par traduction: la paire, le fournisseur qui a effectivement répondu, les tailles et le temps, jamais le texte (traduction en->ta provider=indictrans chars=21->34 ms=412). translate.indictrans.base-url va dans application.yml et les k8s ConfigMap, qui le remplace en production.

  29. · KlusterServices

    Un moteur anglais-tamil, donc Tamil arrête d'être anglais

    LibreTraduit par la Rédaction. en->ta request (la synchronisation du dictionnaire, les articles du Centre d'aide, le chat) correspond non fournisseur et est revenu comme sa source anglaise: ta.json de kamo-internal 34,549 de 34,779 clés. Kamo IndicTrans sert le modèle 200M distillé en->indique d'IndicTrans2 (MIT; la variante de position rotative par ses auteurs, convertie en CTrail2) sur CPU sur k3m1, derrière le même proxy d'auth Kamo que bergamote et libretranslate (kamo-translate-auth). Il parle API de LibreTranslate et sert en->ta seulement; toute autre paire est un 400, jamais un écho anglais. - scripts/server.py: IndicTransToolkit's IndicProcesseur pour un anglais source, portée; Kamo's KMPH<n> sentinelles rouler comme le propre modèle <ID n> des entités (150 sur 150 détenus); et quatre réparations de production mesurées sur kamo-chaînes internes: des tirets espacés gardés, le visarga-pour-colon du modèle (Tamil aytham) se retourna en côlon, le caractère ellipse gardé, et pas d'arrêt complet ajouté à une étiquette. Loge les tailles et les horaires, jamais de texte. SIGTERM termine les demandes en vol. - scripts/fetch models.py: Job indictrans-models récupère le modèle par révision et SHA-256 et les paquets par requirements.txt avec --requer-hashes dans un PVC local; un fichier qui ne vérifie jamais prend le nom servi. Le pod de service le monte en lecture seule et n'a pas egress (CiliumNetwork Policy); seul le service de traduction atteint le proxy. - Taille (mesurée): 0,9 Go de CNR maximum, 0,5-0,6 Go de service; p50 0,16 s par chaîne à 4 fils. Demande 2 CPU / 1Gi, limite 2Gi, aucune limite CPU. - Étape du flux de travail Déployer IndicTrans (K3M1), avant la vérification; un changement script ou serveur mandataire redémarre un serveur en cours d'exécution. SECRETS.md énumère les nouveau consommateur de kamo-translate-auth. Tests: python3 -m unittest discover -s indictrans/tests (70; les deux test de modèle réel exécuté avec INDICTRANS MODEL DIR set).

  30. · kamo-register

    Un visiteur remis d'un autre sommet comme ?vid= garde son identité

    l'inscription à l'adresse www.kamocrm.com ouvre maintenant le site register.kamocrmuniverse.com (propriétaire, 2026-09-28). Son cookie kdsc vid est projeté sur .kamocrm.com et ne peut pas suivre, donc kamo-marketing porte le GUID comme ?vid= à côté de ?discount= (app/lib/register-link.ts). résoudre le problème du marketing Le suivi adopte maintenant un système bien formé a porté GUID, et le persiste avec le code sur ce sommet, au lieu de nouvelle identité. L'inscription atterrit alors sur le même calendrier de visiteurs membre voit. Il n'est adopté qu'avec un code, une identité de cookie sur cet apex toujours gagne, et une valeur mal formée n'est jamais adoptée.

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