Changelog
Ce qui est nouveau.
Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.
· BillingService
Points de terminaison de carte internes pour la facturation automatique des abonnements
GET **************** et POST /charge, gardés par le partage X-Internal-Auth secret (comparaison en temps constant; 403 sans). Une charge est un Intention de paiement hors session sur la carte enregistrée par défaut du client avec un Clé d'idempotence fournie par l'appelant; décodeurs et authentification requise Comme des états, pas des erreurs.
· kamo-shared-library
Comptabilité de débit automatique sur les factures d'abonnement
Les factures AUTO_BILL sont facturées le jour de leur facturation une fois approuvées et réessayées Chaque tentative est numérotée avant d'être effectuée, et chaque tentative est validée par un numéro Ainsi, sa clé d'idempotence n'est jamais réutilisée. Nouvelles colonnes nulles: - card_charge_attempts - last_charge_attempt - last_charge_error - last_payment_intent_id
· kamo-internal
Console de facturation d'abonnement — tiroir de facturation, éditeur de brouillon, paiements, facturation de marché
Onglet Factures: lignes en clair (période, total, montant dû, date d'échéance, statut) ouvrent un tiroir avec Les lignes, les totaux, les paiements reçus, où et quand il a été envoyé, les notes et le PDF éditeur de ligne (type, description, quantité, prix unitaire par période, crédits, taxe, date d'échéance, notes) avec un Prévisualiser en direct côté client, puis approuver et envoyer via une boîte de dialogue pré-remplie à partir du contact de facturation. L'enregistrement du paiement remplace le Marquage payé: montant en un clic (par défaut, montant dû, paiements partiels Annuler (avec motif), Rembourser et Renvoyer. Annuler (avec motif), Rembourser et Renvoyer. Vue d'ensemble : date de la prochaine facture et existence ou non d'un brouillon, solde impayé, et Préparer la prochaine Le total unique de la commande est divisé en frais récurrents par période, frais d'installation uniques et frais de facturation Total de la première facture. Paramètres du marché: un onglet de facturation pour les marchés d'abonnement (retenir pour approbation vs envoyer sur la facturation) Jour, projet de jours d'avance, les jours de paiement, les instructions de paiement). Assistant de commande: quantité de licence par module complémentaire (nombre de sièges par défaut pour les modules complémentaires par utilisateur), envoyé comme addonQuantities; ACH et les méthodes de paiement par chèque. Notifications: BILLING_INVOICE type, gated sur VIEW_SUBSCRIPTION_INVOICES, après DISCLOSURE_REQUESTED. Aussi: updateSubscriptionOrder est envoyé en tant que PUT (la route POSController maps; PATCH n'a rien répondu), Ainsi, des notes peuvent être ajoutées à un ordre préliminaire; la boîte de note indique cela sur tout autre ordre.
· SecurityService
Facturation automatique d'abonnement - brouillons, examen du propriétaire, e-mail avec PDF, paiements, rappels
SubscriptionBillingJob (par heure, par pod et au démarrage) exécute le cycle: - soulever chaque facture de renouvellement en tant qu'ébauche d'avance-jours avant sa date de facturation - déplacer les abonnements sur la période suivante une fois facturés - dire aux propriétaires du vendeur in-app (BILLING_INVOICE) et par e-mail qu'un projet est en attente - envoyer les brouillons le jour de la facturation uniquement dans les marchés définis pour l'envoi automatique (par défaut: en attente d ' approbation) - marquer les factures en retard en retard, alerter les propriétaires et rappeler le client hebdomadaire InvoiceDelivery envoie au client la facture avec un PDF (InvoicePdfRenderer, PDFBox) et un lien de visualisation en ligne sur l'hôte du signataire, avec la remise de l'organisation InvoicePublicController fournit ce lien (jeton dans le corps, taux limité, une réponse pour les jetons inconnus). Points de terminaison POS: - éditer un brouillon - Envoyer / renvoyer avec destinataire et message - destinataire par défaut - PDF - enregistrer les paiements avec la date de réception, la méthode et la référence (partiellement OK) - annuler avec une raison - Politique de facturation par marché - quantités de licences supplémentaires dans le calculateur de prix
· kamo-signer-monorepo
La facture du client, en ligne — personnalisée, imprimable, avec un téléchargement PDF
/[locale]/i/[token] résout la facture côté serveur (token dans un corps POST, jamais une URL) et Le vendeur le rend dans le nom et la couleur du vendeur, en revenant à un noir neutre plutôt que Grand statut en haut, facture-à, dates, période de service, lignes, totaux, comment payer, /pdf renvoie le fichier PDF de SecurityService avec un nom de fichier désinfecté Toute défaillance est une page indiscernable « plus disponible ».
· EmailService
BILLING_INVOICE, gated sur la visualisation des factures d'abonnement
Soulevé par SecurityService aux propriétaires de l'organisation de vente quand un Un brouillon de facture d'abonnement est en attente d'examen ou la facture d'un client Reconstruit également sur la bibliothèque partagée qui contient le fichier commerce.invoice_* Modèles de courriels.
· kamo-shared-library
Tarification des modules complémentaires basée sur les licences et un véritable cycle de vie de facturation des abonnements
Une règle pour la quantité d'add-on (AddOnLicenses): chaque add-on facture les licences ACHETÉ, comme les sièges - par défaut, les add-ons par utilisateur au nombre de sièges, le stockage au Le calculateur de commande a facturé tout ce qui n'était pas PER_SEAT Une fois, donc une commande de 10 sièges avec un e-mail et un téléphone de tierce partie était au prix de 5 $ au lieu de Les lignes de commande contiennent maintenant la quantité réelle et le prix unitaire; un projet de réévaluation des prix conserve les Les licences qu'il indique. L'activation transforme les lignes complémentaires de la commande en instances complémentaires sous licence (elles étaient Supprimé, donc aucune facture n'a jamais facturé un add-on), ancre le jour de facturation, inclut Approuver une commande payée par MRR, et élève la première facture en tant qu'ébauche La facture, le virement, l'ACH ou le chèque accorde maintenant l'accès en tant que PAYÉ; seul COMP a fait quoi que ce soit. SubscriptionInvoiceService: - les projets de renouvellement soulevés des jours à l'avance, une fois par période (contrainte unique) - les périodes roulent le jour de la facturation uniquement une fois facturées - les essais sont convertis; les abonnements non renouvelables prennent fin - les paiements enregistrés avec la date de réception, la méthode et la référence, Paiements pris en charge (nouveau **************** - brouillon d'édition avec les totaux côté serveur - annulation/remboursement surveillé - marquage en retard et planification de rappel - Voir les jetons en ligne (SHA-256 au repos) - numérotation INV-YYYY-NNNN sur le compteur de documents partagés MarketInvoicePolicy par marché: envoi automatique vs mise en attente (mise en attente par défaut), jours de livraison, échéance Délai de livraison: 3-5 jours, instructions de paiement. PaymentMethod gagne ACH et CHECK commerce.invoice_sent / invoice_reminder / invoice_ready et NotificationKind BILLING_INVOICE.
· BillingService
Reconstruire le miroir Stripe à partir de Stripe la nuit et au démarrage
Les événements anciens de plus de 30 jours ne peuvent pas être récupérés, donc la facture de septembre et Les événements d'abonnement perdus à la non-correspondance de la version API sont irrécupérables StripeMirrorReconciler lit chaque abonnement basé sur Stripe et ses Il facture directement et écrit account_subscriptions / account_invoices, à 03:30 et une fois après le démarrage (hors du thread de démarrage) L'horloge de défaut sur une facture payée mais ne commence jamais à rappeler.
· TranslateService
Un moteur, MADLAD-400, pour chaque paire de langues
Remplace les fournisseurs LibreTranslate, Bergamot et IndicTrans par MadladProvider (klusterservices madlad/). Leurs langues ne se chevauchent pas, et une paire d'entre elles n'étaient pas revenues comme sa source anglaise et a été sauvée comme la traduction; MADLAD traduit entre deux de ~400 langues, donc le chat entrant dans n'importe quelle langue atteint aussi l'anglais. - Le fournisseur envoie une liste de textes en une seule requête : un modèle 3B est lié en lisant ses poids, et 16 cordes courtes a pris 9,7 s ensemble contre 25,8 s un par un. FournisseurRouter.translateTous les groupes les clés d'un lot (32 textes / 6.000 et un groupe le moteur échoue est retrié texte par texte donc un mauvais texte échoue seul. - TranslationService.batch masque les noms protégés d'abord, envoie chaque texte distinct une fois, en groupes, et restaure le une réponse qui a perdu une réponse est toujours traduite autour des noms. La date limite de l'appelant est vérifiée entre les groupes. - Jusqu'à ce que le moteur ait répondu /langues le fournisseur revendique les 22 langues de Kamo, jamais aucune : une paire non réclamée est est retourné comme source anglaise et enregistré comme traduction. - Un temps d'arrêt n'est toujours jamais récupéré; 503 occupés et 5xx sont, dans la date limite de l'appelant. Le travail de fond contient une fente par pod donc un message de chat ne file jamais derrière une synchronisation.
· KlusterServices
Un moteur de traduction pour chaque paire, MADLAD-400-3B sur CPU
Remplace LibreTranslate (Argos), Bergamot et Kamo IndicTrans, dont les ensembles de langage ne se chevauchent pas et dont les lacunes sont revenues en anglais. MADLAD-400-3B-MT (Apache-2.0, int8 C(2 par Santhosh Thottingal) traduit entre deux de ~400 langues, donc le chat entrant dans n'importe quelle langue atteint maintenant l'anglais aussi. - 8 carottes / 16 GiB réservées, jusqu'à 16 carottes / 32 GiB, comme demandé. Deux flux de huit fils: seize des fils sur un flux mesuré plus lentement (83 vs 123 chars/s) sur la classe CPU des nœuds (Haswell, AVX2). - L'API prend des listes : 16 chaînes courtes en un appel ont pris 9,7 s contre 25,8 s une par une. - Chaque entrée se termine par </s>; sans elle, une étiquette courte s'exécutait (Save est revenu trois fois, et en arabe "Enregistrez 10% de la valeur de commande". Le faisceau suit la longueur de la pièce. - Placeholders aller au modèle comme {0}, pas KMPH0: perdu en 0 de 60 cordes dans chacun des ar, hi, sw et zh contre 11, 6, 6 et 4. Une réponse qui perd encore une fois est demandé plus large, puis traduit autour. - Le même modèle que Indictrans/: modèle de hachage et roues récupérées par un Job, le pod de service n'a pas d'évacuation, auth proxy en avant, en lecture seule root, k3m1. Les anciens moteurs continuent de fonctionner et sont supprimés dans la prochaine commit, une fois TranslateService parle à celui-ci.
· kamo-internal
Le filtre de l'agent de prêt du Pipeline montre les visages et ouvre la carte de membre
Chaque officier dans les options du filtre, et celui sélectionné, est son avatar et son nom enveloppé dans la carte MemberHover. Un clic sélectionne toujours.
· kamo-internal
L'agent de prêt du pipeline ouvre la carte de membre partagée
L'agent de prêt de chaque transaction est enveloppé dans MemberHoverCard, le popup chaque autre utilisation de surface pour un membre. Il s'ouvre sur hover et le clavier focus; un clic reste ouvre la boîte de dialogue assign-loan-officer.
· kamo-internal
Une page HMDA LAR pleine largeur et pleine hauteur; boutons de marque lisibles sur la page de prêt
- HMDA LAR : le registre est une grille AG qui prend toute la largeur et chaque pixel sous l'en-tête, et défile en lui - même — la page ne défile plus. Numéro détails ouverts dans un popover sur le corps au lieu de l'intérieur de la boîte de débordement de la table (qui a mis des barres de défilement sur la table chaque fois qu'une a été ouverte). Tuiles sommaires (prêts, volume, erreurs, avertissements), recherche, filtre d'émission seulement, prêt effectué et les colonnes d'émission. - Cinq boutons de couleur sur la page de prêt (Pricing, Pipeline, Divulgations) avait du texte-gray-900 sur la couleur de la marque; ils sont blancs comme le reste. - HMDA LAR, le Board et la redirection de delete-loan sont allés à /applications, qui n'a pas de page; ils reviennent maintenant à l'origine du membre, sinon /commerce. Les boutons HMDA LAR et Board du pipeline passent à leur emplacement. Complète 50pieds1b25.
· kamo-internal
Une nouvelle hypothèque Pipeline — open deals d'abord, les dernières un clic loin, et chaque deal géré à partir de sa carte
L'onglet Pipeline sous un marché hypothécaire est reconstruit autour des transactions : Toutes les vues (passé = terminé ou annulé), avec nombres - les chiffres qui comptent et doublent comme filtres : les transactions ouvertes, prêts en vol, volume en vol, fermeture dans 30 jours, besoin d'attention (cible passée close, ou un prêt refusé) - un rail d'étape indiquant l'emplacement des offres ouvertes; cliquez sur une étape pour filtrer - chaque transaction est une carte: anneau de progression autour de l'emprunteur, étape, total quantité, combien de jours pour cibler fermer (ambre bientôt, rouge en retard), et le agent de prêt; il s'étend à ses prêts - gérer à partir de la carte: renommer, assigner/changer l'agent de prêt (le membre de sélectionneur), ajouter un autre prêt à l'accord, supprimer un projet de prêt, copier le numéro de transaction, ouvrir tout prêt - recherche ("/" à focaliser), filtre de bureau-prêt, quatre sortes, exportation CSV, Trouver prêt, pension et HMDA LAR conservés; ancres guidées conservées - les couleurs proviennent de la marque de l'org; Plus rapide à ouvrir : - PrimeReact (sa DataTable, son thème CSS et sa police d'icônes) est parti de la page — Il a été utilisé ici et nulle part ailleurs - chaque écran de steward mais le Pipeline se charge maintenant de la première visite au lieu de tous les huit en un seul morceau - la dernière lecture est gardée pour la vie de la page, donc revenir aux peintures de l'onglet à la fois et se rafraîchit derrière elle - PipelineView a résolu un ?tab= lien profond seulement dans un effet, donc le premier marché de peinture 0 et a commencé ses charges avant le changement - pair avec SecurityService 7ca04ac3, qui supprime les requêtes N+1 derrière les deux pipelines lit Ondules Steward réordonnés: Pipeline, Documents, Tarification, Assurance, Capital & Risque, ingestion, catalogue — La gouvernance, pas dans l'ordre demandé, reste la dernière.
· SecurityService
Approuver et toujours permettre de vérifier les droits dont un outil a besoin dans un seul cas
Suivi de l'approbation 2026-10-21: la carte de l'avion d'outil nomme maintenant les droits le service de l'outil ne fait que dans certains cas (toujoursAllow.rights Lorsque: les coordonnées de son collègue principal, la fiche de temps d'un autre membre, ...). Les preview les prend comme quand=CODE=RIGHT=RIGHT (ou CODE=any:...) et répond chaque sous cas, vérifié comme les droits de l'outil: ce que l'IS manque, et si cette personne peut le donner.
· kamo-internal
Rubans d'angle sur chaque bord, sur les onglets et sur les pages ouvertes de la barre supérieure
Après le tour de gauche, les trois autres bords obtiennent le même traitement, sur une cartographie fixe: une règle supérieure devient un ruban supérieur gauche, une règle droite a ruban inférieur droit, règle inférieure, ruban inférieur gauche. CornerRibbon apprend son coin. Le composant prend "corner"; coinRibbonSx prend un objet options ({ taille, coin, pseudo, ancre }, l'ancienne position forme fonctionne encore); la classe CSS gagne --tr, --bl et --br. La lumière reste vient d'en haut, donc sur un coin inférieur l'ombrage se retourne et l'ombre tombe entre le groupe et le coin. Tabs : le thème racine masque l'indicateur d'onglet de MUI et donne chaque onglet sélectionné un ruban de xs en bas à gauche (en bas à droite sur une barre verticale) dans le propre onglet couleur. Une barre qui veut un autre jeu de couleurs --tab-ribbon-color; par site les styles d'indicateur sont enlevés ou reportés à lui, et les barres d'onglets construites à la main (IoT, lead view, softphone, emoji picking, Docs) marquent leur onglet de la même façon. Nav: la barre supérieure sélectionne une option exactement comme le rail, allumé avec un ruban blanc xs au lieu d'un soulignement, et un menu d'outils (Mail, Docs, Téléphone et le reste) est sélectionné pendant que l'une de ses pages est ouverte, dans les deux navs. Laisser seul comme avant : diviseurs, barres de progression et de chargement, spinners, pleines les bordures, les lignes de connecteur, les poignées et le contenu des styles des membres eux-mêmes.
· SecurityService
S-I1 accepte REMPLACÉ, donc IoTService révoque une subvention de lien Alexa remplacée
Propriétaire 2026-10-21. KamoOAuthRevokeReason.REPLACED existe déjà (persistant, pas de CHECK sur revocated raison), donc pas de changement de lib partagée ou de DDL; la liste blanche de révocation interne l'ajoute et vérifie OUATH GRANT REVOKED (REPLACED). Les raisons de sécurité uniquement (CODE REUSE, REFRESH REUSE, CLIENT REVOKED, ORG VOIDED) ont été refusées (appuyées).
· kamo-internal
Les rubans d'angle remplacent tous les rails d'accent de gauche
La page de System Bugs est passée en premier. Ce changement fait le reste de kamo-interne: environ 120 fichiers où un élément a été marqué par une règle de couleur en bas de sa gauche edge — un borderLeft, un border-l-N Tailwind, une boîte encastrée, un ::avant ou une barre absolument placée, ou une barre de flex de tête courte — maintenant porter le coin ruban de la même couleur et dans le même état. CornerRibbon gagne deux formes pour les endroits où un élément enfant ne peut pas aller, les deux dessiner le ruban identique d'un gradient de 135 degrés: - coinRibbonSx(couleur, taille, pseudo, ancre) — fragment sx sur l'élément propre pseudo-élément. ancre=faux feuilles position seule pour les lignes AG Grid, que la grille se place elle-même ; « &: after » évite la grille : avant les teintes. - la classe kamo-corner-ribbon dans globals.css (--xs/--md, couleur via --corner-ribbon-color), pour Tailwind, style jsx et CSS texte riche. Texte riche blockquotes utilisent la même règle. LegalStateRail devient LegalStateRibbon. Les rendeurs de cellules Grid rendent le ruban sans enrouleur positionné, donc il ancre à l'absolue position .ag-cell et assis dans le coin de la rangée. Le marqueur actif du nav dans le rail est un ruban blanc de xs ; la variante de la barre garde son accent en bas. Rails animés (arrivée d'armes, impulsion de plomb disponible) garder leur éclat et perdre seulement le rail. Ceux-ci ont été laissés seuls parce qu'ils ne sont pas des indicateurs d'éléments: 1px pane diviseurs, connecteurs timeline/tree, barres de progression, poignées redimensionnées, audio plage de sélection de la forme d'onde, et barres de pointe ou de pointe.
· kamo-internal
Approuver et toujours permettre, le nom pourquoi, la propre image de l'IS, les couleurs de l'org
Toujours permettre: à partir de la barre de décision, l'approbateur choisit juste cette action ou la tout le genre (en mots simples), lit exactement ce qui change dans le travail de l'IS description, et confirme; SecurityService écrit la règle (préview/subvention/revoke) les relais), puis la demande est approuvée et l'IS a dit. Quelqu'un qui ne peut pas changer la description de travail est dit pourquoi et qui peut, et peut approuver une fois; les besoins d'action ne sont offerts qu'à quelqu'un qui peut les donner. "Demande-moi encore" dans le résultat et sur la règle dans la description de travail de l'IS reprend. Pourquoi: un suivi nomme la demande antérieure dans les mots de sa propre carte, qui a décidé il et quand, avec un lien; la ligne de description de travail indique quelle règle demande. Avatar: la recherche des fenêtres de chat (fetchMemberAvatar: photo, puis choisi avatar, les initiales du dernier) sur la carte et dans la boîte de réception. Couleurs : les peintures de l'UI approuvées de --color-primary jusqu'à ApprovalBrandScope (boutons, puces, focus, badges, progrès, alertes, statut); mots sur un remplissage de marque sont en noir ou blanc par la propre luminance de la marque, donc n'importe quelle marque lit à AA. Risque et de garder leurs couleurs sémantiques.
· kamo-login
Alexa consent à nommer des liens par emplacement et indique un re-lien pour remplacer
· kamo-internal
Alexa section dit que chaque compte Alexa est son propre lien
· MCPGatewayService
Autorisations permanentes d'honneur; offre Approuver et toujours autoriser sur la carte
ChartePolitique lit résolu.toolApprovals et le drapeau de chaque règle. A la règle du membre sur un outil représente la règle de sa classe pour cet outil; l'autorisation permanente (accordée d'une approbation) est détenue par un plafond mais jamais pour un SHADOW SI ou une charte qui ne pouvait pas être lue, et un La classe FORBIDDEN gagne toujours. Le pipeline et le premier juge de contrôle de contact par outil, donc un envoi toujours autorisé demande toujours avant un premier contact. La carte d'approbation gagne toujoursOffre: offert à moins que l'outil ne soit personnel, déplace de l'argent, touche la sécurité ou les appareils, ou son genre d'action est jamais permis pour le bien, avec la raison en mots simples, le titre de l'outil, le genre en mots clairs et les droits dont l'outil a besoin.
· SecurityService
Approuver et toujours autoriser, de l'approbation d'un SI
Allez-y. POST **************** {approbationId, champ d'application OUTILS, subventionsDroits?} DELETE **************** (Demandez-moi encore) L'approbation désigne l'outil et le genre d'action; seulement quelqu'un qui peut modifier la La charte SI (CharterAccess.editRefusal) l'accorde, par l'intermédiaire de MemberCharterWriter (validation, nouveau timbre, runtime dit). Refusé pour les types PermanentPermissions ne permet jamais, une politique de communication ou l'approbation de la divulgation, une demande décidée, un SI ombre, une règle un autre jeu de couches, et une classe interdite; chaque refus et l'avant/après sont dits en termes clairs. Un droit l'outil a besoin que le SI les manques sont offerts seulement à quelqu'un qui gère la sécurité des membres et la détient.
· kamo-shared-library
Autorisations permanentes d'une approbation (Approuver et permettre toujours)
Un élément d'HOMOLOGATION propre à un membre peut maintenant nommer un outil (tool name) et enregistrer le l'approbation qu'elle venait de, qui l'a accordée et quand (item origin APPROVAL). Les résolveur réponses resolved.toolApprovals pour les règles d'outils qui s'assoient sous une classe règle qui est le défaut ou le propre du membre et non FORBIDDEN; règle d'un calque n'est jamais desserré. PermanentPermissions liste les types d'action qui ne sont jamais permis pour bon (argent, appareils, ordinateur de l'IS, diffusion d'information, partage extérieur, premier contact) et dit chaque genre en mots simples. La vue et estampille sont octet-pour-octet inchangé pour les chartes sans ces articles. DDL: service de sécurité - Oui. (appliqué).
· kamo-internal
Les rubans d'angle remplacent les rails d'accentuation de gauche sur les bugs système
CornerRibbon est la forme indicatrice du ruban d'ouverture de la vitre de kamo-login : un mince bande diagonale ombragée sur le coin supérieur gauche d'un objet, de n'importe quelle couleur, à trois tailles. Il se clipse à sa propre boîte d'angle et hérite du rayon du parent, un parent n'a besoin que d'une position: relative. Il remplace le rail sur la carte de bogue, le statut-raison du tiroir, parent cité de thread et sa réponse à la barre, et la carte de retrait SI montrée dans le fil (partagé avec Live Support).
· KlusterServices
Svc iot peut s'abonner à iot.live.device.> — le canari de production IoT surveille son propre cadre en direct (SP14)
· kamo-marketing
Annoncez IoT Devices — la catégorie /caractéristiques, le groupe de capacités et /device-compatibilité vont en direct (SP14 T+0)
IoT Devices a été publié le 2026-10-21 03:47 UTC (remplacement du catalogue COMPLETÉ + disponible, approuvé par le propriétaire). Les page de compatibilité lit le flux en direct: 8 services aujourd'hui.
· kamo-internal
Cartes d'approbation en langage clair et une boîte de réception d'approbation prime
Commande du propriétaire 2026-10-20: l'onglet Approbations du centre d'interaction et les popups d'approbation ont montré les membres GUIDS et JSON. Chaque approbation se lit maintenant comme une carte une personne non technique comprend: le visage et le nom de l'IS, une phrase de ce qu'il veut faire ('Missir Juan Jésus veut marquer la tâche, appeler Jane au sujet de l'évaluation, comme fait), les dossiers il touche comme des puces qui les ouvrent, le message exact qu'il enverra (email, texte, chat, appel, réunion), les détails comme champs étiquetés (argent, heures dans la zone du lecteur, les téléphones et les adresses comme leurs popups), pourquoi il demande, le risque en mots simples, ce l'approbation et le déclin font, et un compte à rebours à quand il expire. La demande n'est valable que sous une fiche technique fermée. Approuver, décoder avec une note, demander au SI dans un chat, et modifier le libellé avant d'approuver où le serveur l'autorise ; raccourcis A / D / E. La boîte de réception (onglet Centre d'interaction, et le hub Workforce avec un panneau de lecture à côté de la liste): recherche, filtres par nature et risque, tri (plus tôt à la fin d'abord), multi-sélection avec Approuver tous / Décoder tous (les plus à risque nommé premier), approuver rapidement et décoder sur chaque ligne (une demande à haut risque s'ouvre), la navigation du clavier, les lignes optimistes laisser comme ils sont décidés, charger des squelettes et un état vide chaud; MotionConfig réduitMotion=utilisateur, transitions CSS avec leur propre requête; lumière et sombre; La configuration du téléphone. Chaînes dans le dictionnaire (pushed first); une phrase le dictionnaire manque ou qui dérive du serveur revient à l'anglais du serveur, jamais une clé.
· kamo-internal
L'option Devices (IoT) nav badges ouvre les alarmes, les impulsions pendant qu'on attend, et son menu mène aux alarmes
Propriétaire, 2026-10-20 (IoT close-out F12): Les alertes IoT restent uniquement par e-mail; les alarmes atteignent les personnes dans l'application. - Devices (IoT) est un menu (toolKey iot) de ses pages, les propres lignes de la barre d'onglet (IOT TABS), Alarmes parmi eux avec le nombre d'armes ouvertes, puis les paramètres de périphériques (IoT) pour un membre qui peut ouvrir un onglet de paramètres. - L'insigne de la gâchette est l'alarme ouverte que le membre peut voir (le résumé de l'alarme, étêté/supprimé par le serveur); les impulsions d'icône (blinkIcon, le traitement mail/support) pendant qu'on attend un accusé de réception. En direct par l'impulsion de notification IoT, rt.org.iot, focus/reconnect et un étage d'une minute; une lecture ratée garde le dernier chef d'accusation plutôt que de le réclamer. - Launchpad (sectionsForTool) et la palette de commandes (lands on /iot) suivent. - Badges Nav : l'erreur de la palette de lumière rouge dans les deux thèmes (l'obscurité #f44336 sous blanc était de 3.7:1). Shots /tmp/iot-wt/fu-shots/F12 (rail élargi/collapsé, barre; lumière/obscurité; hache propre).
· InitializerService
KamoCameras est inclus dans Business et up, et sur tous les niveaux Premium de chaque univers
Propriétaire, 2026-10-20 (IoT close-out F11): Business, Enterprise et leurs équivalents dans les autres univers. - PlatformTierMatrixMigration: Gains d'entreprise KAMO CAMERAS (L'entreprise hérite). - UniversePackages: Famille/Communauté/Personal Premium le gagne (Entreprise/Pro hérite). - TIER LADDER: businessUp (était une plate-forme seulement) plus les échelons d'univers de UniversePackages. - KamoCamerasTiersTest épingle l'échelle; les paquets contractuels d'UniversCatalogMigrationTest suivent. Les lignes de production ont été écrites en premier 2 lignes de catalogue, 20 lignes de plan; les plans de signe.pink l'excluent, comme SP14 E2 l'a fait pour IoT), parce que pousser KI ne fonctionne rien.

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