Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· kamo-internal
Add help components for bulk text providers
· kamo-internal
Add BulkTextProviderCard and BulkTextProviderSelector components
· SecurityService
Accept cellPhone and cellPhoneIsText in member update endpoint
· kamo-internal
Add bulk text proxy route and API client
· VOIPService
Add BulkTextConfigController with CRUD + test endpoints
· VOIPService
Add BulkTextProviderFactory with tests
· VOIPService
Add InfobipTextProvider implementation with tests
· VOIPService
Add VonageTextProvider implementation with tests
· VOIPService
Add TwilioTextProvider implementation with tests
· VOIPService
Add BulkTextProvider interface and SendTextResult DTO
· kamo-shared-library
Adicionar campo incorporado do cellPhone à entidade membro
· kamo-shared-library
Adicionar a entidade e repositório BulkTextProviderConfig
· kamo-shared-library
Adicionar Enum de Tipo de Texto em BulkProvider
· InitializerService
Add cell phone columns to members table for bulk text SMS
· kamo-internal
Inline Add to Contacts dialog from recipient popover
Replace the old behavior (navigating to /contacts page, losing the composer) with a lightweight inline dialog that: - Pre-fills first/last name from the recipient display name - Pre-fills email address from the recipient - Pre-fills organization and title if available from contact data - Lets the user pick a contact book from a dropdown - Supports adding multiple emails, phones, and organizations - Has label selectors (work/personal/home/mobile etc.) - Shows notes field - Saves via the existing POST **************** API - Updates the recipient chip to isFromContacts after successful save - Renders via portal to escape the tool window stacking context - Auto-closes on success with brief confirmation
· kamo-internal
Adicionar o modo de edição, o campo de título e o estado ao vivo ao gerenciamento de código fonte
- GerenciarFontesDialog agora tem botão de edição por fonte para edição de título e credenciais (CalDAV/CardDAV URL, nome de usuário, senha) - Adicionar campo de título ao adicionar novas fontes para que os usuários possam distingui-los - Ponto de estado vermelho/verde/amarelo por fonte impulsionado por WebSocket por integração estado (ligado/ligado/falhado) - Tipo WebSocket atualizado para incluir mapa de status por fonte
· EmailService
Add per-source sync status in WebSocket + displayName support
- WebSocket sync status now includes per-integration statuses in a 'sources' map keyed by integration ID - applyConfig now handles displayName field for user-defined source titles
· kamo-internal
Adicione campos de destinatários modernos com chips, autocompletar e escolher contato
Substituir entradas de texto básicas no e-mail compõe campos To/CC/BCC com rich componentes do destinatário: display baseado em chips com botões de remoção, apagados completar automaticamente os contactos de pesquisa e destinatários recentes, pairar/clicar popover com detalhes de contato e ações (copiar e-mail, visualizar contato, adicionar aos contatos), arrastar- para- rolar no modo mini, envoltório multi- linha em modo de ecrã completo, e uma janela de recolha de contactos com o livro filtragem.
· kamo-internal
Add sync toggle, source management, and WebSocket status
- Overhaul ContactsLeftPanel with 3 display modes: org-only books, sources with nested books (sync off), and flat org books (sync on) - Add SyncFooter with real-time WebSocket-powered sync status indicator - Add AddSourceDialog for managing contact provider integrations - Add useContactSyncWebSocket hook for STOMP sync status subscription - Add toggleMemberSync to useContactIntegrations hook - Add no-books guard on Create Contact (shows alert if no books exist) - Default CreateContactDialog to org default book - Remove PersonalProviderSection from member settings page
· DaemonService
Include memberId in sync complete NATS messages
SyncCompletePublisher now accepts optional memberId parameter, and ContactSyncJob passes it from the integration's member reference. This enables EmailService to route WebSocket sync status updates to the correct member topic.
· EmailService
Add member-level sync toggle and WebSocket sync status
- Add PUT /member/sync-toggle endpoint to batch-toggle syncEnabled on all member integrations at once - Add ContactSyncWebSocketController broadcasting aggregated sync status to /topic/contacts/sync/{memberId} via STOMP - SyncEventListener now broadcasts WebSocket updates when daemon.sync.complete arrives with a memberId
· kamo-internal
Add Create Contact dialog with multi-tab form
Adds a fully-featured Create Contact dialog accessible via a "New" chip in the contacts toolbar. The dialog supports all contact sub-entities (emails, phones, addresses, orgs, URLs, IMs, relationships) across 5 tabs with multi-value add/remove, primary toggles, auto-generated formattedName, and client-side UID generation.
· kamo-internal
Wire SoftphonePanel to useSoftphone hook; remove all mock state; add capability guards
· kamo-internal
Send and display image attachments in chat
- SmsChatTab: read file as base64 via FileReader, pass to API, render <img> in message bubble - voipApi: add attachment params to sendSms
· InitializerService
Add attachment_url column to voip_messages
· kamo-shared-library
Adicionar o campo anexoUrl à entidade VoipMessage
· VOIPService
Add MMS attachment support — multipart send, base64 storage, image display
- RingCentralProvider: override sendSms with multipart/form-data MMS path - VoipMessageService: accept attachment bytes, store base64 data URL in attachmentUrl - SmsController: decode base64 attachment from request, include attachmentUrl in response
· kamo-internal
Add useSoftphone hook with WebPhone SDK, STOMP events, and REST data loading
· kamo-internal
Install ringcentral-web-phone; add call management API methods
· kamo-shared-library
Adicionar pesquisaAllByProvider ao OrgOAuthTokenRepository

Seu universo está esperando.
Comece gratuitamente em minutos.Adicione produtos sempre que estiver pronto — sem migração, sem novos logins.
Gratuito para sempre — não é necessário cartão de crédito