Changelog
Cosa c'è di nuovo.
Ogni miglioramento alla piattaforma, come si spedisce.
· kamo-internal
Web Chat Integrazione scheda — elenco, creare, snippet (BFF + UI)
Fase 2 core delle impostazioni Web Chat Integration scheda: BFF percorsi proxying alla Phase-1a MediaService CRUD, un client digitato e il /settings/features/chat scheda dove un org elenca integrazioni, crea uno (nome + richieste di origine del sito web + modalità AI/Supporto), e ottiene il grezzo chiave del sito + snippet incorporabile una volta. Design personalizzato e prontezza la lista di controllo sono fasi successive.
· kamo-register
Kamo-Registrati onori software auth logo + nome
- DynamicMetaLoader: lettura dell'identità del software + selettori auth da config.json, risoluzione scheda titolo, persist auth logo/name stato a sessionStorage - brand.ts + ThemeLogo: registra i loghi auto-seguire l'identità auth-logo (reattiva) - useAuthName: registro nome testo (terraggio + flusso) segue l'identità di nome auth, reattiva sul tema config load; rientra in azienda
· kamo-login
Kamo-login onori software auth logo + scheda titolo
- DynamicMetaLoader: lettura dell'identità del software + selettori auth da config.json, set scheda titolo dal nome risolto (authNameBrandSource), persistere auth-logo stato a sessionStorage - brand.ts + ThemeLogo: loghi di login auto-seguire l'identità auth-logo (azienda/software), ri-risolto sul tema config load; nessuna modifica del call-site necessaria
· kamo-internal
LabelManager software identità UI + scheda interna titolo
- Informazioni sull'azienda: nome/short-name + nome login/register + selettori a schede - Branding: software pieno/semplice logo uploads, override toggles, e per-superficie selettori di identità (marca, navpri, logo login / registrazione) - superfici obbligatorie comunicate come sempre-compagnia (documenti/email/fatture/etc.) - layout: il titolo della scheda del browser interno risolve tramite internoTabBrandSource
· kamo-internal
3-stage org guida di bordo (creare → finire DNS → entrare)
Generalizzare l'eroe di primo-org in un unico pannello di guida di studio sul conto di proprietà-org del membro + stato DNS (da /api/security/org/my-networks): creare — possiede nessun bambino org → lanciare il primo white-label org (/network/create) dns — possiede 1, DNS non verificato → configurazione di dominio di finitura (/setup/dns?orgId=.) entrare — possiede 1, DNS completo → entrare in esso (enter-as OTK → interno. Una volta che possiedono un secondo org, nessun pannello mostra — conoscono le corde. Finanziamento DNS rispecchia esattamente la regola della pagina di rete (personal domain && domainSetupComplete===false; a *.kamocrm.com org non ha bisogno di DNS). Ogni fase ottiene la propria famiglia accento (persone/lavoro/crm), icona e copia; CTA è un link per creare/dns e asincrona entrare in azione per la fase pronta. Fails sicuro (senza pannello) su qualsiasi errore di fetch.
· kamo-internal
Doppio risolutore aziendale/software + consegna + consumo
- Organization.ts: fornire identità software + selettori per-superficie tramite OrgContext - No. (+ prova, 8 casi) - ThemeLogo: logoSoftware/logoFullSoftware varianti - NavPri: logo navpri + testo seguire il selettore del logo del software interno - BackgroundWatermark + Backdrop: watermark onora l'identità del software (entrambi i percorsi)
· SecurityService
Tipo di caricamento del logo del software + config.json pane
- uploadLogo: esplicito interruttore a chiave per oggetti con il rifiuto di default in modo che un upload software non possa mai clobber il logo aziendale.svg - copyFolder: conservare i loghi del software caricati sulla copia del modello - config.json: cuocere l'identità del software + selettori di auth-surface per il login/register - test: UploadLogoObjectKeyTest, buildConfigJson casi software
· kamo-shared-library
Aggiungere le colonne di marca del software white-label a Organizzazione
· kamo-shared-library
Persist software di marca campi via patchOrganization whitelist
· kamo-internal
Primo eroe CTA per i membri sulla piattaforma org
Mostra un eroe onboarding in cima alla home launchpad invitando un KamoCRM-platform (non un membro del team) che non ha ancora creato un bambino org per girare la loro prima organizzazione white-label. Un prominente CTA pulsante e un inline 'clicca qui' link entrambi percorso a /network/creare, e la copia punti al 'My {branches}' nav sopra. Gated on userInfo.memberType == MEMBER + Organization.isTopLevel; soggiorni nascosto a meno che /api/security/org/my-networks confermi che non possiedono figli org, e non riesce sicuro (nascosto) su qualsiasi errore fetch. Segui lo strumento Lingua di disegno del pannello (accento della gente, kglass, label dell'operatore, casa easing, ridotto-motion-gated). Strings sotto casa. Primo Ministro.
· VOIPService
Endpoint delle credenziali TURN-REST per il softphone mobile
GET /api/voip/turn/credentials mints ephemeral coturn creds (HMAC-SHA1 over " <expiry>: <memberId>" con il comune statico-auth-secret) così nativo/cellulare WebRTC può relè attraverso 47.181.8.84:3478. Auth tramite lo stesso X-***-Token il SIP endpoint utilizza; restituisce configurato:falso (solo STUN) quando il segreto è assente. Fili KAMO TURN SECRET dal *** (opzionale).
· SecurityService
Expose per-org primarioColore + logo URL su /my-networks
Ogni riga org ora porta il colore primario (Organization.colors.colors.colors, '#'-prefisso per abbinare config.json) e logo derivatoUrl/logoSimpleUrl (tema. loghi e per-org hex-head colori di confine.
· MediaService
Integrazione web-chat istantaneo id su supporto visitatore + biglietto
Risolve la WebChatIntegration creandoKeyHash (abilitato filtrato, coerente con la risoluzione boottrap()/AI-prompt) una volta in creareSupportSession e timbra il suo id su entrambi PublicChatVisitor e SupportoTicket per attribuzione sito web. Null/chiave a righeHash o nessuna integrazione abilitata corrispondente lascia le colonne nulle.
· AIService
Per-integrazione pubblica AI prompt + attribuzione sessione
Aggiornare la cascata di sistema-prompt a catena pubblica da per-org a per-integrazione: PublicAiChatController ora legge il Intestazione X-Public-Chat-Key-Hash (nullable) inoltrata da APIService e E' una cosa che non va. WebChatIntegrazione da hash e preferisce la sua aiSystemPrompt sopra AiOrgSettings default, rientrando nel prompt generico. The risolto AiChatSession è anche timbrato con webChatIntegrationId per attribuzione stabile che sopravvive alla rotazione chiave. Estratto la cascata in una soluzione statica, testata unitàPrompt helper (integration-wins / org-fallback / generic-fallback / blank gestione).
· APIService
GET /api/pubblico-chat/bootstrap gateway route
Aggiungi un endpoint bootstrap che riutilizza il proxy esistenteCon pipeline Auth (valida chiave + origine opt-in + PUBLIC CHAT portata + tasso-limit + X-Public-Chat-Key-Hash) e proxies al punto finale MediaService bootstrap.
· MediaService
Risolvetore di configurazione di config di boot-trap
Aggiunge un GET interno che risolve il problema. WebChatIntegration di X-Public-Chat-Key-Hash e restituisce il suo risolto design/behavior config (default-filled via WebChatDefaultConfig.merge quindi una chiave senza riga di integrazione rende ancora come widget di oggi). Torna all'org attivo di PublicChatApiKey quando nessuna integrazione esiste; 404s quando l'hash chiave non risolve affatto.
· MediaService
WebChatIntegration CRUD (chiavi chiave + integrazione, org-scoped)
API di gestione orientabile per la scheda Impostazioni web-chat Phase-2. Su creare, menti il sottostante PublicChatApiKey (stesso approccio key-gen come PublicChatKeyController) accanto alla riga WebChatIntegration e restituisce la chiave grezza una volta. list/get/update/delete sono org-ownership controllato; aggiornare busts la cache (Task-5) bootstrap quando il designConfig o modifiche abilitate.
· kamo-shared-library
Aggiungi colonne di attribuzione WEB CHAT INTEGRATION ID a visitatore/ticket/aisession
· kamo-shared-library
WebChatIntegration enti + repo + DTO + configurazione di progettazione predefinita
· kamo-internal
Aggiungi "Access Copilot Mobile App" punti di ingresso su casa + NavPri
Entrambe le superfici inviano un evento `open-interaction-center` che NavTop ascolta per aprire il Centro Interazione sulla scheda Impostazione Mobile App. La casa mostra un etichettato pillola sotto i controlli della carta da parati; NavPri mostra un'icona del logo sotto il pillola di prova (label quando espanso, tooltip quando collassato). Entrambi atterrati dal Bene.
· kamo-internal
Password-gate il QR, scheda singola linea, intestazione logo-sinistra, codice 10min
- Il membro deve reinserire la propria password (verificata tramite /api/mobile-access-otk, che inganna l'OTK solo sul successo) prima che il QR sia rivelato — impedisce qualcuno in un computer già firmato da afferrarlo. - QR/OTK ora vive 10 minuti (600); conto alla rovescia poi riblocchi. - Etichetta a schede forzata ad una linea; logo spostato a sinistra del titolo per salvare spazio verticale; rimosso la pillola 'Configuring for'.
· SecurityService
POST # Gate Mobile Copilot QR #
Verifica la password del chiamante (passwordEncoder. partite contro la sessione utente) senza cambiare nulla. Usato dalla strada BFF mobile-access-otk in modo che il setup QR viene coniato solo dopo aver riconfermato la password.
· kamo-internal
Impostazione Mobile Access scheda — QR per installare + autoconfigure Mobile Copilot
Nuova 3° scheda in NavTopPanel (gated by ALLOW MOBILE ACCESS right): mostra un marchio QR codifica un link profondo OTK di breve durata (kamocopilot://configure) che firma il membro nel loro telefono e predefinisce l'app al org corrente. Rifreschi auto OTK prima della scadenza; layout MUI lucido con il colore primario dell'org. Aggiunti
· kamo-shared-library
Aggiungi ALLOW MOBILE ACCESS (167) diritto generale per Mobile Copilot
Nuovo RoleRightType (servizioTipe=null → gruppo generale) battendo il 'Setup Mobile Accesso alla scheda centro di interazione. RoleRightsSyncService lo riempie a tutti i ruoli sul riavvio di SecurityService; appare sotto le autorizzazioni generali nell'editor del ruolo.
· AIService
Per-org pubblico prompt, umano-handoff su nessun fornitore, anon messaggio di cappuccio
· kamo-shared-library
Aggiungi una query di conteggio di uso anon per quota di web-chat pubblica
· APIService
Verificare ***** PoW al bordo della sessione pubblica creare (applicato quando payload presente)
· MediaService
Bust APIService cache di chiave immediatamente su chiave pubblica toggle/delete
· MediaService
Persist che crea hash chiave sul visitatore della catena pubblica + biglietto per l'attribuzione
· kamo-shared-library
Aggiungi publicDailyMessageCap ad AiOrgSettings per una quota non web-chat

Il tuo universo ti sta aspettando.
Aggiungi i prodotti quando sei pronto: nessuna migrazione, nessun nuovo login, nessuna richiesta di pagamento.
Gratis per sempre — nessuna carta di credito richiesta