Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· kamo-internal
Assistente de inscrição com o script de consentimento, conexão-a-dispositivo, entrada de tempo e a transferência de faturamento
· kamo-internal
A aba Monitoramento, a fila de monitoramento da prática e o interruptor de monitoramento remoto da organização
· kamo-internal
Monitoramento remoto do fio no gráfico, na fila de prática, na contagem de mastheads, no resumo do gráfico e na visita aos pacientes
· DaemonService
DaemonService marca o monitoramento remoto perto/sem dados a cada hora, reconciliação a cada 15 minutos, escalada de alerta a cada 5
· kamo-shared-library
Modelo de email Iot.alarm notice
· kamo-shared-library
SP06 lógica de alarme — ISA-18.2 máquina de estado, escalada, supressão, programação, inundação
· kamo-shared-library
Lógica da regra SP06 — matemática do laço, impressões digitais, chaves de fogo, templating, razões
· kamo-shared-library
Lógica da regra SP06 — solar, horários, dias do local, condições, gatilhos
· kamo-shared-library
SP06 vocabulário, entidades e repositórios apenas para leitura
25 enumes (armazenados pelo nome), IotServiceJobOrigin (SP13 navios nele), 17 entidades correspondentes ao SP06 DDL e seus Repositórios somente para leitura; IotActivityKind += AUTOMATION ENABLED, AUTOMATION DISABLED (SP11-D6).
· MediaService
Endpoint de cartões de partilha e eventos de sistema apenas para servidores (IoT SP04)
POSTO **************************** IoTService posta o cartão IOT SHARE em um membro suporta o ticket ou a conversação do Exec2Exec como evento do sistema do participante, através do evento de um sistema writer (agora também respondendo ao ID da mensagem armazenada). X-Internal-Autenticação = IOT INTERNAL AUTH SECRET (Secret iot-internal-auth, já montado para SP01's STOMP authz), tempo constante; 503 em branco, 403 desfasamento. Um ticket de suporte ao vivo (visitante) é recusado 409 SESSION TYPE; um cartão não pode A chave que o escritor possui. Cada caminho de escrita do cliente agora recusa texto que analisa como um evento do sistema com 400 SYSTEM EVENT RESERVED: membro enviar, edição de mensagem (para dentro ou fora de um evento do sistema), Exec2Exec postar, enviar visitante do site, comentário do relatório do bug, e encaminhamento (um evento do sistema não é Forwardable; um comentário forjado é recusado). Um cartão de consentimento não pode ser falsificado por um participante.
· EmailService
NoReplySubsystem.IOT, a amostra de visualização e espelhoToPush
Dispositivos de IoT SP06: auditoria de letras de alarme (iot.alarm notice) sob IOT; a antevisão do modelo tem valores de amostra; POST /api/internal/notificações leva um espelho opcionalToPush (false = cartão de sino apenas, sem push de telefone). Os produtores que não o enviam comportam-se exactamente como antes. Também mapeia dois modelos canónicos que o guarda encontrou desatribuído. no principal: LÍDERES DISPONÍVEIS -> LÍDERES, SUSPICIAIS SIGNIN DETECTADOS -> ALERTAS DE SEGURANÇA.
· KBService
Endpoint interno de tarefas para automações de IoT
POST /internal/checklists/iot/tasks: uma tarefa em nome do proprietário de uma automação, na caixa de entrada do cessionário (SP06 CREATE TASK). As notas devem estar ligadas, o atribuído elegível; um identificador proposto indica que uma execução repetida existe.
· kamo-internal
Configurações → Telefone → Não bloquear, ao lado de Não contactar
Proprietário 2026-10-15: "removê-lo e adicioná-lo a uma lista de não-bloquear". A própria organização números e linhas de pessoal, que a lista não-contato nunca bloqueia e nenhum opt-out coloca Estou a tratar disso. - Novo tab do- not- block (MANAGEM VOIP SETTINGS via VOIPService, configuraçõesMenu sub- item, nenhum link de barra de administração: sugestões dos números da organização, números principais e pessoal linhas (tipos, rótulo, cuja linha, já protegida ou ainda na lista de não contacto), cada um com Protect, que só abre a janela de adição pré- carregada; filtro de canal (chamadas, textos, e-mail, todos os canais), pesquisar, adicionar com uma nota, remover com uma razão necessária, e o histórico, onde um opt-out manteve fora da lista de não- contato mostra como "Opt-out não gravado" com sua fonte e o que foi dito. Cada número e endereço é um TelefoneNúmero / EmailEndereço. - Não contactar: a janela de adição mostra a recusa de não bloco do servidor tal como escrita; e importar nomes dos endereços que deixou de fora porque eles estão protegidos. - Chaves: kamo-tradução-dictionary (pushed primeiro). Testes: DoNotBlockTab.test.tsx (5), DoNotContactTab.test.tsx (caso de importação RED, então GREEN), configuraçõesMenuTabCoverage (RED com a aba e sem entrada de menu, então GREEN), o 20 proteções de código e check-i18n-keys -- require-mensages; tsc nos arquivos alterados.
· EmailService
Um cancelamento de subscrição de um dos endereços protegidos da organização é notado, não listado
Proprietário 2026-10-15: a lista de não-bloquear ao lado da lista de não-contato. Não ContatoEmailBeans declara DoNotBlockList de compartilhamento de lib e entrega-o à DoNotContactList: um protegido endereço nunca é suprimido pela lista de não- contato, e EmailDoNotContactMirror's add para um cancelamento de uma assinatura deixa uma nota SKIPPED no histórico não-bloquear em vez disso. Testes: Não ContatoEmailWiring Teste (novo; RED: os feijões antigos não compilaram contra o novo compartilhamento-lib), DoNotContactSuppressionTest, EmailDoNotContactMirrorTest, DivulgaçãoLedgerWiring Teste.
· kamo-shared-library
A lista de não- bloco, a lista de permissões ao lado da lista de não- contacto
Proprietário 2026-10-15: "removê-lo e adicioná-lo a uma lista de não-bloquear" (a própria empresa a linha principal tinha sido colocada na lista do-no-contact por uma chamada de teste). Para uma números próprios da organização e linhas de pessoal, então uma chamada de teste ou uma frase mal ouvida Nunca os bloqueia. - DO NOT BLOCK (ORG ID único, CANAL, ENDEREÇO; CANAL CHAMADA . ALL = chamadas e textos de um número de telefone, e-mail de um endereço) DO NOT BLOCK EVENT trail (ADDED, REMOVED com sua razão necessária, SKIPPED). - DoNotBlockList: add (idempotente; recusado enquanto a lista de não- contato contém o endereço em um canal coberto: removê-lo lá primeiro, com uma razão), removeById (razão de 3+ caracteres), proteção/é protegido, pesquisa, histórico, atividade, entradas Para, disco cortado. - Não Contato A lista agora leva a DoNotBlockList (alteração do construtor; VOIPService, EmailService e kamoai-service declaram ambos os feijões no mesmo push): Encontrar/éBloqueado/filtroBloqueado nunca bloqueie um endereço protegido nos seus canais; add() de um endereço protegido SKIPS um opt-out automático (VOice OPT OUT, SMS STOP, EMAIL UNSUBSCRIBE) com uma nota SKIPPED e Adicionado(null, false, keepby), e REFUSA a adição (MANUAL, IMPORT) de uma pessoa com campo doNotBlock e a frase "{endereço} está na lista de {canal} ({nota}), por isso não pode ser adicionado à lista de não- contacto. Retirar as Definições -> Telefone -> Não bloqueie primeiro." DDL: voipservice ************* (aplicado 2026-10-18 04:16Z). Testes: DoNotBlockListTest (7, RED: não compilou na origem/main), DoNotContactListTest, **************************** (encontradores de ambos os repositórios), SharedLibBeanSafety Teste.
· VOIPService
Configurações → Telefone → Não bloqueie — a API, as sugestões e os textos STOP que pulam as linhas da própria empresa
Proprietário 2026-10-15: "removê-lo e adicioná-lo a uma lista de não-bloquear". A lista de permissões ao lado a lista não-contacto, para os números e linhas de pessoal da própria organização. - DDL ************************* (NOT BLOCK, NOT BLOCK EVENT app-only for kamo app), aplicado 2026-10-18 04:16Z; re-run é um no-op. - DoNotContactBeans declara DoNotBlockList de compartilhamento de lib e dá-lo ao DoNotContactList (VoipRepositoryScanTest pinos ambos os repositórios). - /api/voip/ do- not- block (MANAGE VOIP SETTINGS, como administrador do do- not- contact): lista e procurar, adicionar {canal CALL oMS EMAIL, endereço, nota}, POST /{id}/remover com um razão necessária, histórico, atividade (com cada opt-out mantido fora da lista), e /sugestões: números da organização, números principais telefone-servidor e linhas de pessoal de VOIP NUMBER OWNERSHIP (por ORG ID), uma linha por número com o que protege ou lista-o. As sugestões não acrescentam nada. - Não contactar: uma pessoa adicionar de um endereço protegido respostas 409 campo doNotBlock com a sentença da lista; uma importação nomeia aqueles separados (Addresses protegidos). - Um texto STOP de um número protegido não está listado (a lista compartilhada o ignora e anota); a linha de registro diz isso. Testes: DoNotBlockControllerTest, DoNotBlockSugestionsTest, DoNotContactControllerTest, VoipRepositoryScanTest (RED: não compilou contra a nova biblioteca compartilhada), SmsKeywordServiceTest, SmsGatewayTest, VoipMessageServiceKeywordTest, InternoAuthFilterKamoaiTest — 98 verde.
· EmailService
Gate o tipo RPM ALERT em REVISÃO CLÍNICA RESULTADOS e liste-o após LEAD CALLBACK
· kamo-shared-library
Compartilhando enums, tipos de atividade SHARE *, DomainAliasType. IOT
· KlusterServices
Certificados pré-emissão iot.<apex>, PDB kamowebiot, sonda de disponibilidade
iot junta-se BROWSER ONLY ALIASES e STATIC DOMAINS em ambos os ápices de plataforma para a primeira ação o destinatário nunca cumpre um certificado em falta; o monitoramento/ é aplicado à mão (ver runbook, Tarefa 34).
· SecurityService
Endpoints de monitoramento remoto SP12, manipulador de dispositivos de conexão de portal e seus guardas
· SecurityService
SP12 inscrições, consentimento, pausa/resume/end/revoke e o link de conexão
· SecurityService
SP12 entradas de tempo de gerenciamento de monitoramento remoto
· SecurityService
Limites clínicos SP12 e lista de trabalho alerta
· SecurityService
Pré-visualização de faturamento do SP12 RPM e a transferência do rascunho
· SecurityService
O monitoramento do SP12 lê, o link do portal e leituras domiciliares mantidas fora da janela recente do gráfico
· SecurityService
Fundações de monitoramento remoto SP12 — write gate, access, audit, IoT client, merge hook
· kamo-internal
Chamadas de ferramenta de corrida dizem quando o SI agiu por ordem de um companheiro de equipe, e com qual de seus direitos
A Regra Sem Insubordinação (dono 2026-10-15): uma chamada de ferramenta de um SI feita na ordem direta de um companheiro de equipe carrega o base da ordem, o companheiro de equipa e os direitos que emprestaram (camoai-service W4 linhas de auditoria). A gaveta de execução adiciona "Na ordem {nome}, com seus direitos: ..." para tal chamada (runs.onOrderOf / onOrderOfUnnamed, dicionário e3ba7e79). Testes: RunDetailOrderLine.test.tsx (3).
· MCPGatewayService
A regra de não insubordinação — um SI executa a ordem direta de um companheiro de equipe sobre seus direitos
Proprietário 2026-10-15, refinado no mesmo dia: "Deve se aplicar a qualquer membro da equipe. Mas só porque um membro da equipa (humano ou SI) tem mais direitos, não significa que automaticamente significa o SI que eles estão falando para assumir seus direitos. Tem. ser um pedido direto ou qualquer coisa semelhante a uma ordem. Caso contrário, o SI deve reforçar que não têm esse nível de privilégio." Um ponto de delegação (Delegação de Pedido): para uma chamada ou lista de ferramentas de um SI em execução, a ordem é o pedido do SI citado, caso contrário, a mensagem ou tarefa que acordou a execução, verificada como as solicitações do SP95 são (só bate-papo de equipe ou tarefa, endereçada ao SI, dentro de uma hora, entre as vigílias da corrida, nenhum conteúdo externo lido), por qualquer membro da equipe, uma pessoa ou outro SI (RequestVerifier.verifyOrder / inferOrderFromRun), e somente quando suas palavras são uma ordem (DirectOrder) ou é uma tarefa atribuído ao SI. SecurityService, em seguida, menta o SI uma ordem *** scoped para a execução; a chamada é executada como o mesmo SI Com aquele director, então os direitos verificam aqui e todos os serviços a jusante vêem o sindicato. Uma pergunta, notícias ou chat não empresta nada, e a recusa do direito, em seguida, diz ao SI para dizer claramente que não tem esse nível de acesso. - Divulgação (CP07): a execução lê para o solicitante (OrderPrincipal), e compartilhamento contínuo carrega o solicitante VERIFIED REQUEST conceder, julgado por sua própria autoridade de liberação. - Auditoria: autoridade base solicitada BY TEAM MEMBER ORDER, on behaf of member id, direitos contraídos (DDL - Sim. - tools/list nomeia a ordem em meta[com.kamocrm/orderedPor] para que o tempo de execução nunca mantenha essa lista. - Uma sessão com order-scoped apresentada para qualquer outra execução não é nenhuma sessão; nada é emprestado em uma sessão emprestada. - Inalterado: o interruptor de matar e pausas na porta, a carta, o teto de risco, PHI, limites, o portão de extensão e a lista de não-contacto. Testes: ToolCallPipelineOrderTest (13; 9 RED sem o ponto de delegação), DirectOrderTest, OrderPrincipalTest, RequestVerifierTest (+2), CallerContextFactoryTest (+1); com ToolCallPipeline*, McpServerController*, AudienceFilter*, ReadAudience*, DivulgaçãoGate*, *Audit*, ToolListParity*, PhonePack*, *Coverage*: 300+ verde.
· SecurityService
A regra sem insubordinação — a ordem direta de um companheiro de equipe empresta a um SI seus direitos para essa corrida
Proprietário 2026-10-15, refinado no mesmo dia: qualquer membro da equipe (uma pessoa ou outro SI) que dá a um SI uma ordem direta empresta seus direitos para o trabalho que o executa; falar com o SI não empresta nada. * ******************************* (segredo interno da KAMOAI) menta no SI uma ordem *** Executa: os seus próprios direitos UNION, o requerente, menos o piso SI (AiRightsFloor) e as linhas NUKE explícitas do próprio SI, fechou sobre a hierarquia dos direitos. Uma pessoa empresta os seus direitos de sessão ao vivo; um SI empresta apenas os seus direitos permanentes, calculado a partir de suas linhas, de modo que nada é emprestado transitivamente. A sessão é própria do SI (memberID, actorType AI), vive 15 minutos, carrega um bloco de delegação {base REQUESTED BY TEAM MEMBER ORDER, solicitanteMembro, runid, orderRef, emprestado Rights}, e não começa nada um início de entrada. Paragem da troca (interruptor de kill, org pausa, o A pausa ou aposentadoria do SI, uma associação inativa, sem supervisor) recusa-lo, e são lidos novamente uma vez que existe. A A mudança de direitos do SI termina tal sessão em vez de reescrevê-la. A sessão do SI nunca ganha um direito. Testes: OrderDelegationServiceTest (8), KSessionServiceIdentityTest (12), AiSessionExchangeServiceTest, AiRightsChangeListenerTest, PostAuth****: 51 verde.
· kamo-internal
Configurações → Telefone → Não entre em contato, e o softphone avisa antes de ligar para um número listado
Proprietário 2026-10-15: uma lista de não-contato de toda a empresa por organização, escopo por Canal. - Configurações → Telefone → Não entre em contato (MANAGEM VOIP SETTINGS, configuraçõesMenu sub entrada, nenhum link de barra de administração): o modo de chamada (alertar e discar em confirmar, o padrão, ou bloco), filtro de canal, pesquisa, adicionar, importar (colar ou .csv/.txt, até 1000), remover com razão necessária, e a história (cada adição e remoção, por quem, por quê). - O softphone: SoftphoneContext dá a cada consumidor um mostrador guardado, então cada chamada da pessoa (a chamada da janela do Softphone, e cada chamada em outro lugar, que a abre preched; o discador externo do JustCall também) pergunta GET /api/voip/ do- not- contact/ check Primeiro. Um número listado mostra "{ number} pedido para não ser chamado em {date}" com Cancelar / Ligue de qualquer maneira, ou, quando a organização bloqueia, OK apenas. Apenas a CHAMADA A entrada conta. Uma verificação que falha discando (a chamada de um SI falha fechada no serviço kamoai). - Chaves: kamo-tradução-dicionário 7b74200b (empurrado primeiro). Testes: NãoContatoTab.test.tsx, NãoContatoDialGuard.test.tsx, NãoContatoDial.test.ts (RED na origem/main, GREEN aqui), cobertura do menu de configurações; os 20 protetores de origem e check-i18n-keys -- require-mensagens contra o dicionário empurrado.

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