Ir para o conteúdo
KAMOUniverse

Changelog

O que há de novo.

Cada melhoria para a plataforma, como ele envia.

  1. · kamo-internal

    AI auto-tag + legenda UI; configuração do nível de custos/visão do fornecedor (P3)

    Configurações → IA → Fornecedores: cada provedor ganha uma camada de custo (Light/Medium/Heavy) selecionar e um Suporta a opção de visão (+ chips de lista). Gaveta de materiais: 'Sugere etiquetas com IA' (aceitar fichas para aplicar) e 'Generate description with AI' — ambos chamam os próprios provedores configurados da org via MediaService→AIService; encerrado com uma mensagem clara quando nenhum provedor de visão está configurado.

  2. · AIService

    Nível de custo/visão do fornecedor + Endpoint interno de visão de um tiro

    AiProviderController lê/echoes costTier + supportsVision. ProviderRouting Ganhos de serviço selecioneVisionProvider(orgId, layer). **************************** executa um tiro único Complementação da visão reutilizando o provedor/adaptador do org (sem sessão/RAG/tools). Novo Controlador AiInternal POST /api/ai/internal/visão (X-Internal-Auth, OTK-isempt) para chamadas de serviço a serviço.

  3. · MediaService

    AI auto-tag + legenda via fornecedores de org (P3)

    MaterialAiController POST **************************** Verifica a propriedade, menta um URL de material assinado de curta duração, e chama o endpoint de visão interna do AIService (org's fornecedores próprios, nível LIGHT) via AiVisionClient. Processamento de etiquetas lenientes; fechado por falha se não houver visão provedor configurado.

  4. · kamo-shared-library

    Nível de custo do AiProvider + bandeira de visão (dois eixos de capacidade ortogonal)

    Adiciona costTier (LIGHT/MEDIUM/HEAVY via novo AiProviderTier enum) e suportaVision boolean para AiProvider, para que as integrações podem escolher o quão caro um provedor para usar e que suportar visão. Recuperador para provedores de visão ativa. Colunas adicionadas a AI PROVIDERS via ALTER.

  5. · EmailService

    Consentimento do lado do servidor "exibir imagens externas"

    Substitui o cliente local (localStorage) recordando a escolha da imagem externa com um registo duradouro por membro. Novo RemoteImageConsentService (falha-soft lê assim mensagem buscar ainda funciona antes da tabela existir) + POST /api/email/remote-image-consent para registrar o consentimento. O DTO de mensagens completas agora carrega imagens remotas Permitido (procurado por membro + Message-ID), preenchido na mensagem única, thread e caixa de correio compartilhado obter caminhos para que o cliente semeie seu portão do servidor.

  6. · kamo-shared-library

    EmailRemoteImageConsent entity + repositório

    Registo de membros que um membro escolheu para mostrar imagens externas (remotas) para uma mensagem específica, chaveada por member id + normalized RFC Message-ID (unique). Segue o padrão e-mail metadata member-scoped (FilterRuleEntity). Apoia o preferência "exibir imagens externas" do lado do servidor para que a escolha persista dispositivos e sessões. KamoInitializer cria a tabela em sua próxima execução.

  7. · InitializerService

    Adicionar coluna INVESTOR PRICE para rate locks + loan pricing snapshots

    @Order( 80) idempotent ADD COLUNN SE NÃO EXISTE (DECIMAL( 9,4), correspondente ao preço- para- 100 quadrículas) para que o MLOS RCE possa registar o verdadeiro preço de execução do investidor não-par Obrigação do registo e sua citação ligada em vez de par-a-omissão. Aditivo nulo; espelhos GravaçãoTranscriptMigração.

  8. · kamo-shared-library

    Registre o verdadeiro preço do investidor não-par no RateLock + LoanPricingSnapshot

    A taxa vinculativa-bloqueio-de-registro e sua cotação limitada transportaram apenas taxa + dias de bloqueio; os pontos de desconto/originação foram deixados nulos, de modo que as entidades centrais leram Número de preço real ************* preço de 100 com credor margem cozida em) viveu apenas no MLOS lateral-ledger MlosLockRecord.lockedPrice. Adicionar uma coluna INVESTOR PRICE (DECIMAL(9,4), correspondente às grades de preço-para-100 enviados) a ambas as entidades + seus DTOs + ********************** Está. o preço de execução INVESTOR, deliberadamente NÃO decomposto em pontos de mutuário (que A Comissão considera que, no caso em apreço, a medida em causa não constitui auxílio estatal. pontos, um erro de divulgação Reg-Z/ECOA). Os pontos permanecem nulos até que o modelo de taxa chegue; o preço bruto está agora preservado no cadeado-de-registro, não apenas o registro lateral. Populado pelo RCE (MLOSCapitalMarketsService) a partir do finalPrice; coluna materializada por KamoInitializer RateLockInvestorPriceMigration (ADD COLUNN SE NÃO EXISTE).

  9. · kamo-internal

    Deixe os administradores conectar RingCentral em nome de um membro

    Nas configurações de telefone de outro membro, um administrador com direitos de gerenciamento-VOIP (canManageVoipConfig) agora vê Conectar/Reconectar/Desconectar para o membro RingCentral conta em vez de uma leitura-somente "eles devem conectá-la eles mesmos" mensagem — para o caso comum em que um sysadmin detém o RingCentral do membro credenciais. A cópia do connect deixa claro que você entra com aquele membro credenciais, e o memberID alvo é passado através (servidor obriga à direita).

  10. · VOIPService

    Permitir que os administradores conectem RingCentral em nome de um membro

    O fluxo do RingCentral por membro era apenas auto-serve, então um administrador gerenciando o perfil de outro membro viu "eles mesmos devem conectá-lo". Sysadmins comumente criar a conta RingCentral do membro e manter suas credenciais, assim Devem poder ligar-se em nome do membro. - O membro do OAuthController start/status/desconnect agora aceita um alvo opcional membroId. Agir em outro membro requer MANAGEM EXTENSIONS ou GERÊNCIA VOÍP SETTINGS (espelha o perfil-edição portão); auto é sempre permitido. - iniciar também verifica o membro-alvo é realmente atribuído a essa instância (o a instância é org-scoped, então isso confirma o mesmo-org). - Quem completa o login RingCentral ainda determina a identidade; o O guarda de extensão ligado a Vs indica uma incompatibilidade.

  11. · kamo-internal

    Análise de uso + Visão Insights (P2)

    Registos **************************** eventos e um diálogo Insights com os totais de org + materiais mais utilizados (por downloads + pré-visualizações).

  12. · MediaService

    Material AnalyticsController — eventos recordes + agregados

    * ******************************* (registro) + GET /analytics (contagem por material por Tipo + totais de org).

  13. · kamo-shared-library

    MaterialEvent entity+repo (usage analytics)

    Anexar apenas os eventos de uso **************** com um per-(imgld,tipo) Consulta agregada. Tabela MATERIAL EVENTS (DDL CRDB direcionado; KI auto- scans).

  14. · kamo-internal

    Fluxo de trabalho de aprovação UI + filtragem de carga-tudo (P2)

    Controle de status na gaveta **************** Status Emblema em azulejos, e um filtro de estado na barra de ferramentas. Também carrega todas as páginas de material na frente (capped) para pesquisar/etiquetar/ os filtros campanha/status cobrem toda a biblioteca, não apenas a primeira página.

  15. · MediaService

    MaterialReviewController — mapa de estado + estado definido

    GET /api/media/materials/reviews (org-wide imgId→status map) + POST para definir o status de um material (validada, revisor-faixada, upsert).

  16. · kamo-shared-library

    MaterialReview entity+repo (status side-table)

    PROJECTO/PENDAÇÃO/APROVAÇÃO/ARCHIVED por material, chaveado por imgld (imagem do esquema intocado). Quadro MATERIAL REVISÕES (DDL; KI com o alvo).

  17. · kamo-internal

    Por membro RingCentral connect + softphone web-phone v2 correções

    Correcções SDK do softphone (o ringcentral-web-phone é v2.4.0, não o v0.x o adaptador alvo — o uso antigo do wp.userAgent.* lançado no init): - Reescrever RingCentralPhoneSdk para a API v2: único sipInfo objeto, start()/call()/dispose(), inboundCall/outboundCall events, outbound inicial cabeamento, sintetizado mudo/hold/mudou/não mutado, e adoção do SDK per-call elemento de áudio como #rc-remote-audio para que o volume de AV / dispositivo de roteamento funciona. - PhoneSdk.SipInfo: adicionar saídaProxyBackup + stunServers. - useSoftphone: limpar o banner de chamada de entrada preso em um desligamento remoto durante anel; não derrube o SDK no meio da chamada na atualização credencial; auto-resposta + chamada-antecipação dupla-aceitação. Ligação central por membro: - PhoneSettingsTab: auto-serve o cartão "Connect RingCentral" por conta própria perfil (administra obter status somente leitura), OAuth redirecionar o manuseio, e um aviso de extensão-missmatch. - voipApi: membro OAuth start/status/desconnect. - useSoftphone + SoftphonePanel: needsMemberConnection gating with a "Connect sua conta RingCentral" prompt em vez de um erro de registro.

  18. · VOIPService

    RingCentral OAuth identidade + softphone SIP correções

    Correcções de credencial SIP do Softphone: - getSipCredentials: map outboundProxyBackup + stonServers (necessidades de telefone web v2 eles para WSS failover + ICE/media); lançar ProviderException (502) em vez de um RuntimeException (500) que a captura de SipController perdeu; Identidade SIP de extensão errada. Ligação central por membro: - RingCentralTokenResolver: resolver/atualizar o próprio token de um membro com voo único (RC roda fichas de atualização), necessidade-reconectar em um token morto, e revogar a ligação. - OAuthController: somente (self-serve), VoipCalling escopo, PKCE; connect callback registra o Extensão ligada. - SipController + PhoneProviderFactory: o softphone registra como o membro Extensão própria; retorna um discriminador de 200 necessidadesMembroConnection quando desconectado. - MemberVoipConfigController: expor o status da conexão; revogar na reatribuição. - Nova tabela lê degradar graciosamente se member voip oauth token ainda não for migrado.

  19. · kamo-shared-library

    Adicionar o MemberVoipOAuthToken para conexões RingCentral por membro

    Por membro OAuth token chaveado (memberId, provedor, installId) backing RingCentral de extensão – softphone sip-provision mais a registro de chamada pessoal do membro / correio de voz / presença. Distinto da org/instance OrgOAuthToken (conta-scopado). Requer uma execução do KamoInitializer para criar ****************************

  20. · kamo-internal

    Colecções/campanhas UI (P2)

    Secção Colecções à esquerda (criar/selecionar/deletar), filtro de campanha na vista da colecção, e um editor de coleções na gaveta de detalhes (add/remove material, create-and-add). Fios através de /api/materiais/campanhas/* + materiaisCampanhasApi; espaço de trabalho junta o mapa do item do lado do cliente como etiquetas.

  21. · MediaService

    MaterialCampaignController — CRUD + mapa de itens + adicionar/remover

    /api/media/materials/campanhas: list/create/update/delete, GET/items (org-wide imgId↔campaignId map), POST /add + /remover com verificações de propriedade de org.

  22. · kamo-shared-library

    MaterialCampanha + entidades/repos do item (coleções)

    Coleções de primeira classe denominadas agrupando materiais entre pastas. Tabelas MATERIAL CAMPAIGNS + MATERIAL CAMPAIGN ITEMS (segmentada CRDB DDL; KI auto- scans na próxima execução).

  23. · kamo-internal

    Tags UI + controle de nível de acesso (P2)

    Etiquetas (org-scoped, corte transversal): fichas de etiquetas nas peças, uma barra de filtro de etiquetas (AND através de selecionado), e um editor de etiquetas na gaveta de detalhes (atribuir/remover existente, criar-e-atribuir novo). Fios através de /api/materiais/tags/* proxies + materiaisTagsApi. Adiciona também uma Visibilidade (nível de acesso) controlo da gaveta utilizando o endpoint existente no nível de acesso.

  24. · MediaService

    MaterialTagController — tag CRUD + atribua/dessinal + mapa de atribuição

    /api/media/materials/tags: list/create/delete tags, GET/atribuições (org-wide imgId↔tagId mapear o espaço de trabalho se une ao lado do cliente), POST /atribuir + /unassign com verificações de propriedade de org.

  25. · kamo-shared-library

    MaterialTag + entidades/repos de atribuição (marcas com foco em org)

    Plano, eixo de etiqueta transversal sobre pastas para materiais de marketing. Tabelas MATERIAL TAGS e MATERIAL TAG ASSIGNMENTS (criado via CRDB DDL; KI auto- scans na próxima execução).

  26. · kamo-internal

    Ligações públicas geridas UI (P1) — create/expiry/revoke/view-count

    Gaveta de detalhes ganha um painel 'Links públicos' (ShareLinkManager): criar um link durável com um rótulo opcional e expiração (1h/1d/7d/30d/nunca), copiá-lo, ver a sua contagem de visualização, e revogá-lo. Apoiado pelos novos endpoints de registro do MediaService via /api/materials/links proxies. A one-shot link de cópia rápida permanece para compartilhamento rápido social/email.

  27. · MediaService

    Endpoints de ligação pública gerenciados (criar/lista/revoke) + service rastreado

    Adiciona POST/GET /api/media/materials/links e DELETE /links/{id} apoiado pelo MaterialShareLink, e resolve os tokens gerenciados no público GET primeiro (verificando revogação/expiração e colisão viewCount) antes de voltar ao verificador HMAC legado. Tokens opacos aleatórios, org- scoped Controlos de propriedade, TTL fixado a <=1y.

  28. · kamo-shared-library

    MaterialShareLink entidade de registro + repo (ligações públicas gerenciadas/tracked)

    Revólveres revogáveis, expirantes e view-contados links públicos para materiais de marketing — persistiu assim os links podem ser listados, revogados e contados (vs. the stateless HMAC one-shot tokens). Auto- digitalizado por KI (@ EntityScan com. kamo) e MediaService; precisa de uma execução KI para criar o MATERIAL SHARE LINKS tabela.

  29. · kamo-internal

    Adicionar o menu de contexto do botão direito / long-press para as linhas de conversação- visualização

    Completa o menu de ação da lista em ambos os modos de visualização. Linhas de conversação agora abertas o mesmo menu compartilhado no botão direito do mouse e toque em long-press com ações de nível de thread: Responder / Responder Tudo / Avançar (operando na última mensagem do tópico, obtida em demanda e composto da caixa de correio ativa), Relatório Spam / Não Spam e Excluir (aplicado em toda a linha), Mark read, e Star / Unstar.

  30. · kamo-shared-library

    DecisãoGate.aplicado Limiar expõe a barra de confiança real

    O portão aplica internamente max( sobreposição do inquilino, segurançaFloor, piso de palco) mas As chamadas só tinham a parede do inquilino. aplicado Limiar retorna o verdadeiro Para que uma decisão de registo possa persistir no limiar reprodutível) em vez de um valor que o portão eleva silenciosamente. Aditivo; assessment () inalterado. DecisãoGateTest 14/14 pass.

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