Changelog
Ce qui est nouveau.
Chaque amélioration apportée à la plateforme, à mesure qu'elle est livrée.
· kamo-shared-library
Une location a besoin d'un locataire; commercialiser l'engagement; annuler, reprogrammer, vérifier, retourner et annuler une réservation
- createRentalRequest refuse un compte client manquant ou étranger, enregistre le Le marché (de l'actif, sinon celui choisi) sur l'engagement, et valide les dates Confirmer refuse une demande sans compte.Confirm refuses a request with no account. - setRentalRequestAccount / setBookingAccount déplacer le locataire vers un autre compte et Ne jamais l'effacer; les deux répondent à l'enregistrement mis à jour. - Demandes: annuler/décoder (IntentStatus.CANCELLED, raison conservée) et nouvelles dates (avec Réservations: check-out (le jour de la réservation) IN_PROGRESS), retour ou fin (COMPLETED; CommitmentStatus.FULFILLED; retard et dommages frais ajoutés au total; notes de condition), annuler (ANNULÉ, avant qu'il ne s'éteigne), et de nouvelles dates (seulement la fin en dehors), chacune vérifiant les autres réservations de l'actif sous Un verrouillage de ligne sur l'actif afin que deux confirmations ne puissent pas doubler. - EngagementLifecycle: un engagement VOIDED n'engage rien; tout annulé et pas de commande Cette activité est ANNULÉE. - Une réservation retournée ne détient plus ses dates. Les dates détenues de l'actif sont lisibles (findRentalAssetBookings) pour les sélecteurs de dates. - DTOs: marketId/marketTitle sur les demandes, les réservations et les actifs; réservation -> rentalRequestUid, rateType, checkedOutAt, returnedAt, frais, notes, raison d'annulation; Demande -> raison d'annulation, bookingStatus. Listes filtrer par le marché et les actifs de charge, Réservations et remises dans une requête chacune au lieu de par ligne. - Actifs de location: colonne de description; marché validé comme le marché de location de l'organisation et taux négatifs refusés; codes en double refusés à la mise à jour; un Une ressource avec des locations enregistrées ne peut pas être supprimée (désactivez-la à la place). - Indices: **************** par engagement, engagements par location actif, accomplissements par engagement, actifs de location par org et marché (appliqués à la main).
· kamo-internal
Marchés — les propres marchés de l'organisation, sous leurs propres noms
Un marché est ce que les membres définissent (titre + nom du marché) Description); son secteur d'activité n'est que son genre. - L'option de navigation est Marchés. Avec un marché, c'est ce marché, par son titre (comme avant); avec deux ou plus, il ouvre un menu avec une ligne par market — son titre, sa description en dessous, une icône pour sa ligne d'affaires — chaque ouverture de l'onglet de ce marché. Un flux de liste en cache Les deux navs, le launchpad et l'étiquette, rafraîchis sur les changements de marché. - Les lignes de menu de navigation prennent une description facultative (popover, rail, barre supérieure). - La case de type du formulaire de marché est "Ligne d'affaires"; chaque choix dit Ce qu'il donne au marché, et un verrouillé nomme l'application dont il a besoin Les aides de nom et de description expliquent ce qu'est un nom de domaine Pour les membres, voir dans le menu Marchés. - ACCESS_COMMERCE indique "Accès aux marchés"; la page Prêts pointe vers Paramètres → Secteurs d'activité.
· MediaService
MediaService vérifie les pièces jointes avec Antivirus et refuse les fichiers verrouillés à chaque lecture
- Pièces jointes de chat (membre CHAT, web-chat visiteur PUBLIC), fichiers de bogues du système, images de Growth Hub sont vérifiés dans storeContentAddressed avec leur contexte (membre, conversation); Canva Un refus est envoyé au client lorsque la forme de la plateforme (422) est atteinte ANTIVIRUS_BLOCKED {family} / 503 ANTIVIRUS_UNAVAILABLE) au lieu d'être enveloppé dans un 500. - Les arrière-plans de réunion (raw MinIO, public bucket) passent d'abord par AntivirusUploadGuard. - /attachments/link (dedup by hash) refuse le contenu Antivirus verrouillé (422); un fichier retenu peut être Il est lié et reste illisible jusqu'à ce qu'il soit coché. - Les pièces jointes portent scan {état, famille, résultat} sur la réponse de téléchargement, le message en direct Cadre et historique ; EN ATTENTE pendant la tenue. - ImagingProxyController (original et preview), le téléchargement du visiteur, les fichiers de bogues du système, Les images, les matériaux et les lectures de matériel Canva de Growth Hub appellent la porte de lecture: 423 ANTIVIRUS_BLOCKED / ANTIVIRUS_CHECKING, vérifié avant le missing-content 410 donc un hold Le proxy vérifie maintenant l'appartenance avant l'état du contenu. - ConfigMap kamo.antivirus.* (activé: faux jusqu'à ce que KamoAntivirus soit prêt); ANTIVIRUS_INTERNAL_AUTH_SECRET de mlos-internal-auth.
· ConversionService
ConversionService vérifie les téléchargements avec Antivirus, complète les fichiers retenus, vérifie à nouveau les nouvelles signatures
Remplace le client clamd en service (malware/package, UploadScanGuard, QuarantineStore, Rétro-scan) avec la bibliothèque partagée Antivirus: - /upload, /replace, /templates/upload sont cochés à l'intérieur d'ImageService avant toute ligne ou L'objet est écrit (HOLD autorisé); les refus utilisent les formes de plateforme: 422 ANTIVIRUS_BLOCKED {family}, 503 ANTIVIRUS_UNAVAILABLE, 503 HASH_MISMATCH. MALWARE_DETECTED a disparu et il n'y a pas de réponse Les réponses portent le scan {status, family, outcome} ; un nom de signature est toujours retourné Le fichier est PENDING et se convertit une fois stocké. Le pipeline émet une étape 'scanning'. - /register-existing (dedup par référence) refuse le contenu Antivirus verrouillé (422). - Les effets sonores (raw MinIO) passent par AntivirusUploadGuard (pas de retenue, 503 en cas de panne). - QuarantineStore n'existe plus, donc rien n'est écrit dans le compartiment de quarantaine; rien Il y est touché. - antivirus.hold.verdict (queue antivirus-hold-completer) -> AntivirusHoldCompleter, puis le Conversion ordinaire pour les documents libérés; une défaillance de stockage naks pour la re-livraison. - antivirus.signatures.promoted (queue antivirus-recheck) -> AntivirusRecheckService: chaque Hash marqué dont les octets sont stockés (déverrouillage + notification + rapports AUTO_CLEARED) et CLEAN contenu vu pour la première fois au cours des 14 derniers jours (LOCKED_LATER + alertes), diffusé depuis MinIO, Un à la fois, limité. Les abonnés réessaient jusqu'à ce que le flux ANTIVIRUS existe. - Carte de configuration: kamo.antivirus.* (activé: faux jusqu'à ce que KamoAntivirus soit prêt); ANTIVIRUS_INTERNAL_AUTH_SECRET de mlos-internal-auth.
· kamo-shared-library
Un engagement appartient à un marché défini par un membre
commerce_engagements.market_id (appliqué à la main, FK à commerce_markets, Ordres de vente au détail, emplois de service, location et approvisionnement Les registres n'ont pas de colonne de marché propre; ils la lisent à partir de leurs L’engagement, de la même manière qu’ils lisent leur compte client.
· kamo-internal
L'interface utilisateur de l'antivirus - la protection scelle partout où un fichier apparaît, le centre antivirus, l'onglet de la plate-forme, les alertes et l'aide
Kit de conception (application/composants/antivirus): ProtectionSeal avec cinq visages animés (Verification, Protégé, Attention, Bloqué, Impossible de vérifier; marque + jetons --av-*, mouvement réduit respecté), BlockedFileCard / LockedAttachment / LockedOverlay, CautionBanner avec Ouvrir une copie sécurisée, MessageAntivirusBanner, ShieldClip, FalseAlarmDialog ("Je pense que c'est une erreur"), AntivirusNotReady. Logique de @kamo/antivirus-core 0.1.0 (état scellé, raison de l'analyseur acceptant Les erreurs suivantes peuvent apparaître: ANTIVIRUS_BLOCKED / MALWARE_DETECTED / ANTIVIRUS_CHECKING / ANTIVIRUS_UNAVAILABLE / SCAN_UNAVAILABLE. Surfaces: panneau de lecture de courrier (scellés, pièces enlevées verrouillées sous leurs noms d'origine, message bannière, images en ligne retenues, Télécharger Toutes les sautes, clip de bouclier de rangée de liste, cache de corps v2), plateaux composer/chat/SMS/SI (vérification + états bloqués), bulles de chat pour les destinataires, documents (Étape de vérification, sceaux, actions verrouillées, porte de mise en garde), et le toast de refus sur chaque téléchargement (KB, avatar, carrières, bugs système, sons, documents de compte/patient/application, logos). Antivirus Center à **************** (VIEW_ANTIVIRUS; les besoins de la politique MANAGE_ANTIVIRUS_POLICY): orbe de protection, KPI de décompte, graphiques de tendance/origine/famille, en direct Chronologie des menaces, commutateurs de politique avec aide, fausses alarmes (MANAGE_PLATFORM_ANTIVIRUS): état de l'analyseur, versions avec actualisation/annulation, file d'attente de révision, Trois types de notification, la visite guidée de l'Antivirus, la liste d'autorisations, /api/antivirus BFF, miroirs pour ServiceType ANTIVIRUS(41), droits 698-700 et MANAGE_PLATFORM_ANTIVIRUS (shared-lib 332f7275), et sept articles du centre d'aide. Le composant Protection home widget est construit mais pas enregistré: le launchpad a besoin d'un ANTIVIRUS_WIDGET bloc droit que la bibliothèque partagée n'a pas encore.
· KlusterServices
Svc_antivirus login + flux ANTIVIRUS; la conversion/le courrier électronique peut consommer l'antivirus.>
- svc_antivirus: STREAM.INFO/CREATE ANTIVIRUS, publier antivirus.> et rt.org.>, Souscrire antivirus.> et _INBOX.> (Secret kamo/nats-utilisateur-antivirus, SECRETS.md). - svc_conversion: API consommateur ANTIVIRUS (maintenir les verdicts, revérifier sur la promotion), publier/s'abonner antivirus.>, publier rt.org.> (les verdicts enregistrés rafraîchissent l'interface utilisateur). - svc_email: API consommateur ANTIVIRUS (détection des filtres de messagerie), antivirus.>. - stream-bootstrap Job provisions ANTIVIRUS (R1, 14d) afin que les consommateurs puissent se lier en premier. Validé avec nats-server -t contre le serveur live.
· kamo-shared-library
Bibliothèque partagée moitié d'Antivirus — porte, client, tables, droits, types, modèles, rapport
- Entités/repos pour les six tables appliquées à la main (content_scan_verdicts, antivirus_detections, Les paramètres de sécurité sont définis par antivirus_allowlist, antivirus_org_settings, antivirus_daily_stats). - com.kamo.z.shared.antivirus: **************** AntivirusPolicy (brief §2), AntivirusClient (streaming /v1/scan, garde par pod, breaker, X-Internal-Auth), AntivirusGate (scanUpload / verdictFor / assertReadable / recordVerdict / appliquerRevérifier / forage), AntivirusRecorder (REQUIRES_NEW writes, upserts), AntivirusNotifier (sonnerie + courriel via EmailService, rt.org.<org>.antivirus), AntivirusUploadGuard (chemins d'accès raw-MinIO), AntivirusHoldCompleter, AntivirusExceptionAdvice (422/423/503). - ImageService: écran avant toute ligne/objet dans storeContentAddressed (tous les surcharges) et uploadDocument; held => is_missing dat, pas d'objet; lire la porte dans downloadDocument + public assertReadable. L'analyse est opt-in par service (kamo.antivirus.enabled); la porte de lecture est toujours activée. - ServiceType ANTIVIRUS(41, core); droits VIEW_ANTIVIRUS 698, MANAGE_ANTIVIRUS_POLICY 699, SHOW_TOUR_ANTIVIRUS 700; PlatformRightType MANAGE_PLATFORM_ANTIVIRUS; Type de notification **************** AccessLogEventType ANTIVIRUS_*; quatre événements canoniques Modèles; Report Studio compliance.antivirus.
· kamo-internal
Safety & Oversight and Brains & Tools, premium — live cards, Spend Pace, Approval Rules, Connected Tools rooms with test before saving (SIS9)
Safety & Oversight - Spending: the default budgets on the kit save bar, explained with the job description's budgets and each role's daily caps (live values, linked rows), and Spend Pace: each SI's month to date against its own monthly limit, and where the month ends at this pace. - Who Can Use What: access policies as plain-words cards with No Limit chips and role names; linked rows with live values for the IoT SI policy, Do Not Contact, contact rules and the disclosure policy, each for who its screen lets in. - Required Wording: the General card moved out of Who Can Use What into its own page (default instructions + required opening/closing), kit save bar. - Approval Rules: the org job description's approval rules in words (changed in its Approvals room) and Always Allowed — every SI's standing permissions, who allowed them and when, Ask Me Again behind a confirm (existing endpoint). - Alerts & On Call: the one OnCallPanel, with a live card. - Quality Checks: the quality settings dialog became this page (same API); the Results > Quality settings button opens it; Setup Journey step points here. - Protection Checks: when checks really run, Run A Check Now, recent checks, link to the findings. Brains & Tools - Providers / Provided By Kamo / What They Can Do: the registry's three views as three sections with live cards. - Model Choices on the kit save bar. - Connected Tools: servers as cards; each server a page at its name with rooms Connection (test before saving), Tools (names, read-only apart), Health (last checked, Check Now) and Who Can Use (SIs switch with Undo, people's policies). Kit: RoomPills and PageSection; breadcrumb/brand ink measured on dark paper, and the settings frame declared a light surface (its paper is always white). Plain words (glossary) in the dictionary; Help Center articles updated.
· InitializerService
Enregistrer les six tables Antivirus (appliquées manuellement le 2026-11-07)
antivirus_detections, antivirus_false_alarm_reports, rapports_de_fausses_alarmes, antivirus_allowlist, antivirus_org_settings, antivirus_daily_stats - les paramètres exacts IF NOT EXISTS DDL appliqué comme propriétaire kamo, @Order(0), indexe NONCONCURRENTLY.
· kamo-internal
Chaque SI possède ses propres salles — Workbench, Description de poste, Voix et appels, Accès et outils, Embauche (SIS10)
La configuration d'un SI a été divisée entre la salle SI, la salle d'identité et la Son profil liste désormais ses propres salles en premier, par nom dans l'onglet Permissions URL **************** - Workbench: salle SI d'aujourd'hui, moins ce qui a été déplacé. - Description du poste: MemberCharterCard (versions, essais, modèles de rôle) déplacé hors de l'onglet Permissions pour les SIs; mêmes lecteurs (MANAGE_MEMBER_SECURITY), L'édition reste « modifiable » sur le serveur. Les gens la gardent sur Permissions Le résumé d'opération est en mots simples d'abord, le texte exact derrière Afficher les détails. - Voix et appels: les quatre cartes voix/appels (de l'identité) plus celle de ce SI Son de fond, oeufs de Pâques et rapports de quart avec Set By, sur SIS3 Pour contrôler à la portée MEMBER. - Accès & Outils: adhésion/superviseur/statut, un résumé des droits, ses (à partir du Workbench) et Ouvrir son coffre-fort (/vault?owner=, uniquement Pour un coffre-fort, les listes de serveurs). - Engagement: affiché pendant que l'engagement n'est pas terminé; après cela, les étapes se replient Dans Accès & Outils derrière Afficher les étapes. Chaque lien SI passe par siRoomHref(id, room) (assistant de SIS4, étendu): Centre de commandement, liste, vue d'équipe, évaluation, équipe rouge, qui obtient quoi, Répétition, appel SI, réglage et approbations (description de poste), le formulaire d'embauche (Emploi), la carte de membre Afficher le profil, le libellé de la notification Aussi: le profil de rail fait défiler dans la largeur d'un téléphone; une tâche Le lien de membre ouvre le profil (le chemin /profil était mort) Tous les articles mis à jour.
· kamo-internal
Écrans réels de location et d'approvisionnement, déposés sous un compte client
Les écrans des pipelines de location et d’approvisionnement étaient des données simulées et leur Ces pages étaient des espaces réservés Bientôt. Elles lisent et écrivent maintenant SecurityService: - Demandes de location, réservations, demandes d'achat et les listes de commandes de fournisseurs lire /pos/demandes-de-location, /réservations, /demandes-d'achat et /commandes-de-fournisseurs, avec une colonne Compte, des mots d'état au lieu de codes et un champ vide L'approvisionnement bascule entre les demandes et les commandes des fournisseurs. - /commerce/bookings/new crée une demande de location (actif, dates, type de tarif, estimation calculée de la même manière que le serveur, compte client optionnel); /commerce/procurement/new crée une demande d'achat (identifiant du fournisseur envoyé comme Les deux lisent ?accountId, ?marketId et portent ?back. - Les pages d'enregistrement montrent uniquement ce que les DTO portent, conservent Confirmer la réservation et Approuver et laisser un gestionnaire classer l'enregistrement sous un compte (PUT .../compte) ou en retirer un. - Liste les enregistrements ouverts avec withReturn; chaque location New va à /commerce/bookings/new (l'ancien /commerce/requests/new n'a jamais existé). - les types posApi correspondent maintenant à RentalRequestDTO, BookingDTO, PurchaseRequestDTO et VendorOrderDTO, y compris accountUid / accountName.
· AIService
Tester un serveur d'outils connecté avant de l'enregistrer (SIS9)
- POST /api/ai/mcp/test (MANAGE_AI_SETTINGS): le corps de la sauvegarde (transport, en-têtes, removedHeaders) plus un identifiant de serveur sauvegardé, donc un en-tête laissé comme masque Validée comme une sauvegarde (STDIO, URL guard, en-tête, etc.) Le plan d'outil le sonde et rien n'est stocké. - Les réponses au test passent sur toolDetails (chaque outil a son propre nom, titre, lecture seule).
· MCPGatewayService
Tester un serveur d'outils connecté avant qu'il ne soit enregistré, et nommer chaque outil comme son serveur le fait (SIS9)
- POST /api/mcp/servers/probe?orgId= (authentification interne, AIService uniquement): liste les Les outils d'un brouillon non sauvegardé sur un client de son propre, fermé à la fois Aucune santé n'est stockée, mise en commun ou mise en cache et aucune santé n'est écrite Règles de transport en tant que serveur enregistré. - Les réponses aux tests et aux sondages portent toolDetails [{name, title, readOnly}] Une page de paramètres peut lister les outils en mots et indiquer ceux qu'un SI peut utiliser.
· kamo-internal
Un nouveau menu par marché dans l'onglet Commandes; les filtres survivent à l'ouverture d'un enregistrement
- Le seul bouton Créer une commande (au détail uniquement, et il n'a même jamais rempli le client in) devient Nouveau: une entrée par marché que l'organisation gère et le membre peut créer une commande, une réservation de location, un ordre de travail, Abonnement (assistant en place, compte présélectionné), demande d'achat. Chacun commence avec ce compte en tant que client et Back revient ici. - La liste Commandes ouvre les demandes de location, les réservations, les demandes d'achat et Les commandes des fournisseurs, maintenant que le serveur les liste. - Retail New Order choisit le client de la liste des comptes au lieu de Demander un ID de compte brut, et honorer ?accountId= / ?back=; Service New Work Order fait la même chose. - useRememberedState conserve l'état de vue d'un écran à travers la navigation: Le pipeline hypothécaire (onglet Commerce et Hypothèques d'un compte) conserve son filtres, tri, pagination et transactions ouvertes lorsqu’un prêt est ouvert et fermé, et l'onglet Ordres conserve son filtre de marché.
· kamo-internal
Comment ça marche, premium — cartes actives, salles de description de poste, Hear It, utilisation de style, modèles de rôle (SIS7)
- Hub: chacune des cinq cartes lit son propre état en direct (useHubSummary) — ruban de coin + puces simples (un hook `HubCard` par section dans siSections; le TabHub du shell l'utilise). - Description du poste d'organisation: chaque partie d'une carte avec ce qui est écrit, l'ouverture de sa propre chambre à un nom **************** une page à travers les salles garde les modifications non sauvegardées; kit ChartEditor restyled IN PLACE (rail comme petites cartes avec des icônes et le ruban sur la partie ouverte, En-tête de panneau de section, section optionnelle détenue par l'hôte avec un aperçu de toutes les pièces) — chaque description de poste Le rédacteur en chef le comprend. - Styles de personnalité: "Utilisé dans N endroits" par style (organisation, rôles, départements, titres de poste, équipes, Les membres comme MemberChipById) de la nouvelle utilisation du service de sécurité sont lus; Dans le ruban Utilisation; le champ de texte de style Affiche {orgShortName} en tant que puce "Nom de l'organisation" (ProseTokenField), jamais en texte brut. - Modèles de rôle: galerie de SIE6 en tant que page (même composant, `variant="page"`, choisissez le SI dans le détail); SegmentedFilter au lieu d'une barre d'onglets soulignée. - Appels et réunions: salles Ce que les appelants entendent, le son de fond, les langues, la parole claire et le relais, la participation Hear It joue l'ouverture + l'avis dans la propre voix d'un SI choisi (kamoai-service), sur son Le son de la pièce à travers une bande téléphonique, dans une langue choisie, avec une forme d'onde en direct — ambiencePreview extended (playOpening), pas de deuxième synthétiseur, personne n'a appelé. Lignes liées avec des valeurs en direct: ligne SI dans l'email Signatures, serveurs téléphoniques portant des lignes SI, Zoom/Teams joignant (kit LinkedSettingRow). - Oeufs de Pâques: carte en direct; étapes, choses à essayer et les garanties se plient dans un panneau Comment ça marche. - Consolidée: une ToggleCard (les avis + les langues avaient chacune une copie). Conseils d'aide + article du centre d'aide.
· kamo-internal
Travail quotidien et assistant personnel (SIS8)
- Le SI de votre organisation est choisi en UN seul endroit (travail quotidien) Les flux d'automatisation le montrent en lecture seule (puce de membre avec photo) avec un lien Changer; Le commutateur des appels SI n'envoie plus un SI. - SiFloorSettings divisé en ses pages: SI de votre organisation, Briefings (cartes + Un éditeur guidé en cinq étapes avec les limites de nombre propres au service et les vérifications a Capture Inbox (limité, avertissement précoce avant la limite), Capture Inbox (limité, avertissement précoce avant la limite). - Canaux: lignes liées avec des valeurs en direct pour le triage par e-mail, les appels SI, l'hypothèque Les commutateurs SI (en lecture seule; accès aux prêts réservé aux propriétaires), les sites Web et les réponses des SI La politique de SI IoT, chacune affichée uniquement à ceux qui peuvent ouvrir son écran. - Web Chat Personas: un nom partout; liste comme cartes, galerie et studio déplacé sous **************** — noms, jamais identifiants; Les anciennes routes /settings/ai/sales-agents ont été supprimées, les liens mis à jour, aucune redirection. - Résumés en direct de la carte-hub pour chaque carte de travail quotidien et assistant personnel. - Assistant personnel: Paramètres de démarrage / Limites / Qui obtient ce que les drill-ins sur le kit (barre de sauvegarde collante), zones d'outils regroupées sous des en-têtes simples avec recherche. - Conseils d'aide, articles du centre d'aide, des tests.
· SecurityService
Répertorier les enregistrements de location et d'approvisionnement sur l'onglet Commandes d'un compte
Demandes de location, réservations, demandes d'achat et commandes de fournisseurs maintenant Pour atteindre un compte grâce à son engagement, la liste des commandes comprend (Access Commerce, comme leurs propres écrans). Une requête déjà retournée Dans une réservation ou un ordre fournisseur est répertorié une fois. PUT **************** vendor-orders}/{id}/account fichier un enregistrement existant sous un compte (Gérer les locations / Créer des demandes d'achat).
· kamo-shared-library
Classer les dossiers de location et d'approvisionnement sous un compte client
Une demande de location, une réservation, une demande d'achat et une commande du fournisseur n'avaient pas La page du compte ne pouvait donc pas les répertorier. Le compte Des vies sur leurs fiançailles **************** appliquées par main), de sorte que chaque enregistrement d'une pièce d'affaires le partage. - créer des demandes de location / achat avec un accountUid optionnel - setIntentAccount / setCommitmentAccount pour classer ou déclasser un enregistrement existant - des outils de recherche pour les demandes ouvertes, les réservations et les commandes de fournisseurs - les quatre DTO portent accountUid et accountName
· kamo-internal
Un document signé retourné affiche les notes des RH à côté de la copie pré-remplie
Lorsque les RH renvoient un document signé, l'étape de signature du membre possède désormais un Le panneau à côté: ce que les RH leur ont demandé de réparer, qui a demandé, les broches numérotées correspondant à leurs notes (survoler pour pulser la marque), un rappel que leur Les réponses précédentes sont déjà remplies, et la copie qu'ils ont signée la dernière fois avec chaque marque dessinée en lecture seule par la même MarkupLayer Les écrans larges le montrent comme une colonne pliable; les écrans étroits le montrent comme une colonne Faites-le glisser sur la page à la demande. Le mouvement réduit est respecté. La copie signée du tour précédent est lue par un nouveau relais réservé aux membres, ****************
· DocsService
Un document signé retourné est pré-rempli et le membre peut voir ce qui a été marqué
Lorsque les RH renvoient un document signé, l'enveloppe fraîche porte désormais le Les réponses antérieures du membre (lues à partir des nouvelles valeurs de champ internes d'ESIgService) Les signatures, les initiales et les dates de signature sont automatiquement ajoutées à l'en-tête Le membre signe à nouveau. La lecture des réponses est un effort: Toute défaillance émet l'enveloppe vierge et ne bloque jamais le retour Les passes de réparation sont pré-remplies de la même manière que l'historique des enveloppes du document. GET **************** signifie la PROPRE copie signée du membre telle qu'elle a été examinée (propriété-gated, Uniquement pour les tours révisés), et le lastReview d'un document porte maintenant son pdfUrl La vue de correction peut mettre les notes du réviseur dessus.
· ESigService
Lire les réponses d'un destinataire en interne et ne jamais pré-remplir une signature
GET **************** renvoie ce qu'un destinataire a tapé, choisi et coché (auth interne + X-Org-Id, org re-checked), de sorte qu'un appelant peut réémettre le même modèle pré-rempli via Le chemin existant mergeFields -> prefilledValues. Signatures, initiales, Dates de signature, champs en lecture seule et tout ce qui se trouve en dehors de l'emplacement du destinataire La session refuse également de pré-remplir toute signature, initiales ou Le champ signature-date indique ce que les champs de fusion disent.
· kamo-internal
Vue d’ensemble — Parcours de configuration, Santé en un coup d’œil, Besoin de vous, raccourcis et l’explorateur Qui obtient quoi (SIS6)
- Setup Journey prolonge le verrou Getting Started: six étapes lues en direct (un cerveau connecté et répondant, un SI embauché, la description du poste écrite, quelqu’un sur appel, ce que les appelants entendent vérifié, les contrôles de qualité activés), chacun ouvrant sa page; La première visite qui voit chaque étape effectuée la verrouille une fois sur SecurityService (/org-setup-wizard/si-journey). - Santé en un coup d'oeil de l'API de statut SI via @kamo/kamoai-core; Besoins de vous d'incidents ouverts, Pause All, Fournisseurs dont la vérification a échoué, approbations en attente (-> /workforce/approvals) et les étapes de configuration restantes. - Qui reçoit quoi **************** n'importe quel SI ou personne, chaque réglage qui les atteint avec son source - couches de description de travail (charter resolver), son de fond, easter eggs, rapports de quarts de travail (le moteur de scoped Définir par), l'assistant personnel (aperçu des calques). Pas de nouveau point de terminaison. - CONSOLIDÉ: la table d'aperçu de l'assistant et les mots de valeur (AssistantPreviewTable, utilisé par Starting Settings et le explorer), les mots sonores de fond (useAmbienceWords), le calcul d'accès du shell (useSiAccess).
· SecurityService
Où chaque style de personnalité est utilisé dans l'organisation (SIS7)
GET **************** answers {usage: {ref: {count, places[{level, id}]}}}: Chaque couche de l'organisation de l'appelant dont la propre description de poste choisit un style, intégré ou de l'organisation Six lectures, une par table de couche, à partir de l'index archetype_ref partiel de chaque table, conservé à l'extrémité Lisible par n'importe qui dans l'organisation, comme le propriétaire du site, les administrateurs et les membres Test d'analyse JPQL par rapport au mappage de la bibliothèque partagée.
· SecurityService
Le verrou de Super Intelligence Setup Journey (SIS6)
GET **************** (toute personne ayant un droit de paramètres de Super Intelligence, ou le propriétaire) et PUT .../si-journey/complete (MANAGE_AI_SETTINGS, MANAGE_AI_WORKFORCE ou CONFIGURE_SYSTEM, ou le propriétaire): le Le parcours de configuration de l'aperçu lit ses étapes en direct et verrouille 'terminé' ici une fois, à côté du verrou de démarrage, La DDL est appliquée à la production le 2026-11-07, avec les mêmes règles (une lecture n'écrit jamais; rien ne l'efface).
· kamo-shared-library
Le verrou du parcours de configuration de Super Intelligence à côté de Démarrer (SIS6)
OrgSetupWizardProgress obtient **************** le verrou stocké et jamais effacé de la SI Setup Journey sur Paramètres > Super Intelligence > Aperçu. DDL: securityservice **************** (appliqué à la production 2026-11-07).
· kamo-internal
Une liste de commandes sur tous les marchés et des onglets Hypothèques, Prêts personnels et Soins de santé
L'onglet Ordres du compte répertorie désormais chaque ordre des marchés généraux que l'organisation gère — Commandes de détail, commandes de service et commandes d'abonnement — dans une liste étiquetée avec Il indique clairement quand un marché est caché et quand il est visible Pour manque de permission, ou (Location, Approvisionnement) non encore lié à des comptes. Sans marché général L'onglet n'est pas affiché. Les marchés spécialisés reçoivent un onglet chacun, uniquement lorsque l'organisation gère ce marché: - Hypothèques: le Pipeline Commerce (TransactionPipelineTable) est désormais un composant en deux modes, comme DocManager — le pipeline entier sous Commerce, inchangé, ou avec accountUid seulement que Nouveau commence le prêt sur le compte; le conseil d'administration à l'échelle de l'organisation, HMDA et Les snapshots sont mis en cache par portée, de sorte qu'aucune vue n'écrase l'autre. - Prêts personnels: prêts empruntés par les personnes du compte. - Santé : les dossiers des patients déposés sous le compte et, par l’intermédiaire de leurs mandataires portails, les Les patients qu'ils sont autorisés à voir (conjoint, enfants). Ajouter/supprimer un enregistrement de l'onglet. Le retour est intelligent partout où un enregistrement s'ouvre à partir de ces onglets: chaque lien porte ?retour=, et le prêt, Les pages commande, ordre de travail, abonnement, prêt personnel et patient retournent à l'onglet du compte d'où elles viennent De, ou à Commerce / Patients quand il y est ouvert.
· SecurityService
Les onglets Commandes, Hypothèques, Prêts personnels et Soins de santé de la page du compte
- GET **************** une liste des commandes de détail du compte, le travail de service Les commandes et les commandes d'abonnement, chaque source est lue uniquement lorsque l'organisation gère ce marché et que l'appelant indique les marchés qui ont été retenus, et ceux (location, achat) qui ont été Aucun lien de compte pour le moment. - OBTENIR **************** prêts empruntés par le membre principal du compte ou les membres (Voir Pipeline de prêts personnels). - Pipeline hypothécaire: ?accountUid= sur GET / et /transactions réduit chaque niveau à un seul compte (org- POST ?accountUid= démarre un nouveau prêt sur ce compte. - /ehr/accounts/{uid}/patients: les dossiers classés sous le compte plus les patients de leur portail Autoriser les mandataires; niveau de réception (Voir les patients), chaque patient affiché vérifié; lien / délien nécessaire Enregistrer des patients ou Modifier les données démographiques des patients.
· kamo-shared-library
Fichier un dossier de patient sous un compte CRM (ehr_account_patient)
L'onglet Soins de santé de la page du compte répertorie les dossiers de patients déposés sous un compte et, via le Un lien, pas une colonne sur le patient, mais un lien vers le dossier du patient. Un enregistrement peut se trouver sous deux comptes (un enfant sur les deux comptes parentaux) et un compte contient une famille. Table créée à la main en tant que rôle de propriétaire (2026-11-07), les index sont valides.
· kamo-internal
La page des effectifs du SI — Centre de commandement, activité, approbations, transferts, appels en direct, statut, résultats (SIS5)
Le fonctionnement quotidien des SI laisse Paramètres pour sa propre page, /workforce, ouverte depuis Assistant SI > SI Workforce (et Le héros de la maison porte les commandes Pause All SIs / Resume All SIs et le héros de la maison porte les commandes Pause All SIs / Resume All Engager un SI; sept onglets avec un ruban en coin et des badges de comptage (décisions en attente, appels en direct, clients en attente); chacun Un onglet est sa propre adresse et chaque vue interne écrit l'URL (?view=, &member=, &incident=) Son écran a toujours eu; la page admet quiconque regarde, supervise, exécute ou approuve le travail des SIs. Déplacé, pas réécrit: les neuf vues du hub Workforce (vue Équipe = Centre de commande > En attente de personnes; Utilisation, ROI, Évaluation, Qualité et Équipe rouge sous Résultats), Statut des SI (état, incidents, le rédacteur en chef de garde), Effectifs Contrôles (maintenant le bouton d'en-tête ; ses colonnes de superviseur et d'embauche rejoignent le tableau du centre de commande), (ouvre toujours par lui-même pour un collègue sans droit de main-d'œuvre) et la console d'appels SI comme des appels en direct. Un client SI Status: siStatusApi.ts a été supprimé pour @kamo/kamoai-core 0.6.0. Première aide sur le partage par membre Intro de fonctionnalité, colonne de conseils, articles du centre d'aide réécrits. Liens, pas de redirections (propriétaire 2026-11-07): le volet d'approbations Ouvrir tout va à Approbations, le SI appelant le lien de location à Ajouter Team Member, la visite guidée et tous les liens dans l'application vers /workforce; les anciens onglets Paramètres, les entrées de menu et la page d'accueil Les cartes ont disparu.

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