Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· BillingService
Pontos finais de cartão internos para cobrança automática de fatura de assinatura
GET **************** e POST /charge, guardados pelo compartilhado X-Internal-Auth secret (comparação em tempo constante; 403 sem ele). Uma carga é um off-session PaymentIntent no cartão salvo padrão do cliente com um Chave de idempotência fornecida pelo chamador; decodificadores e autenticação necessária retornam como status, não como erros.
· kamo-shared-library
Contabilidade de auto-carga de cartão em faturas de assinatura
As faturas AUTO_BILL são cobradas no dia de faturamento, uma vez aprovadas e reintentadas Cada tentativa é numerada antes de ser feita, e o número de tentativas é calculado automaticamente para que sua chave de idempotência nunca seja reutilizada. Novas colunas nuláveis: - card_charge_tentadas - última_tentativa_de_carregamento - last_charge_error (erro de carga) - última_intenção_de_pagamento_id
· kamo-internal
Console de faturamento de assinatura — gaveta de fatura, editor de rascunho, pagamentos, faturamento de mercado
Aba Faturas: linhas de linguagem simples (período, total, valor devido, data de vencimento, status) abrem uma gaveta com as linhas, os totais, os pagamentos recebidos, onde e quando foi enviado, as notas e o PDF editor de linha (tipo, descrição, quantidade, preço unitário por período, créditos, imposto, data de vencimento, notas) com um Pré-visualização ao vivo do lado do cliente, depois Aprovar e enviar através de uma caixa de diálogo pré-preenchida do contato de faturamento. Registro de pagamento substitui o clique de um clique Marcar pago: valor (padrões para o valor devido, pagamentos parciais (não permitido), data de recebimento, método, referência, notas. Nulo (com razão), Reembolso e Reenviar. Visão geral: data da próxima fatura e se o seu rascunho existe, o saldo pendente e Prepare next O único total do pedido é dividido em recorrente por período, taxa de configuração única e primeira fatura total. Configurações do mercado: uma guia de faturamento para mercados de assinatura (retenção para aprovação vs envio no momento do faturamento) dia, dias de espera do projeto, dias devidos do pagamento, instruções de pagamento). Assistente de pedido: quantidade de licença por complemento (contagem de assentos por padrão para complementos por usuário), enviada como addonQuantities; Métodos de pagamento ACH e Check. Notificações: tipo BILLING_INVOICE, fechado em VIEW_SUBSCRIPTION_INVOICES, após DISCLOSURE_REQUESTED. Também: updateSubscriptionOrder é enviado como PUT (o mapa de rota POSController; PATCH não respondeu nada), para que as notas possam ser adicionadas a um rascunho de ordem; a caixa de nota diz isso em qualquer outra ordem.
· SecurityService
Faturação automática de assinatura - rascunhos, revisão do proprietário, e-mail com PDF, pagamentos, lembretes
SubscriptionBillingJob (por hora, um pod e na inicialização) executa o ciclo: - levantar cada fatura de renovação como um rascunho de lead-days antes de seu dia de faturamento - Mover assinaturas para o próximo período uma vez faturado - Diga aos proprietários do vendedor in-app (BILLING_INVOICE) e por e-mail que um rascunho é à espera - enviar rascunhos no dia da faturação apenas em mercados definidos para envio automático (padrão: (guardar para aprovação) - marcar faturas atrasadas vencidas, alertar os proprietários e lembrar o cliente semanalmente InvoiceDelivery envia ao cliente a fatura com um PDF (InvoicePdfRenderer, PDFBox) e um link de visualização on-line no host do signatário, com a remessa da organização InvoicePublicController serve esse link (token no corpo, taxa de limitado, uma resposta para tokens desconhecidos). Pontos de extremidade POS: - editar um rascunho - Enviar / reenviar com destinatário e mensagem - destinatário padrão - PDF - registro de pagamentos com a data recebida, método e referência (parcial OK) - nulo com uma razão - política de faturação por mercado - quantidades de licenças adicionais na calculadora de preços
· kamo-signer-monorepo
A fatura do cliente, online — personalizada, imprimível, com um download em PDF
/[locale]/i/[token] resolve a fatura do lado do servidor (token em um corpo POST, nunca um URL) e torna-o no próprio nome e cor do vendedor, caindo de volta a um neutro quase preto em vez de status grande no topo, factura-para, datas, período de serviço, linhas, totais, como pagar, /pdf envia o PDF do SecurityService de volta com um nome de arquivo higienizado Qualquer falha é uma página indistinguível de "não mais disponível".
· EmailService
BILLING_INVOICE, fechado na visualização de faturas de assinatura
Levantado pelo SecurityService para os proprietários da organização vendedora quando um o rascunho da fatura de assinatura está aguardando revisão ou a fatura de um cliente vai Também reconstrui na biblioteca compartilhada que carrega o commerce.invoice_* modelos de e-mail.
· kamo-shared-library
Preços de complementos baseados em licença e um ciclo de vida real da fatura de assinatura
Uma regra para a quantidade de complementos (AddOnLicenses): cada complemento cobra as licenças COMPRADO, como assentos - por usuário add-ons padrão para a contagem de assentos, armazenamento para o A calculadora de pedidos cobrava qualquer coisa que não fosse PER_SEAT uma vez, então uma ordem de 10 lugares com e-mail de terceiros e telefone tinha um preço de $5 em vez de As linhas de pedido agora carregam a quantidade real e o preço unitário; um rascunho de reajuste de preço mantém o licenças que estabelece. A ativação transforma as linhas de add-on do pedido em instâncias de add-on licenciadas (elas eram descartado, então nenhuma fatura já faturou um add-on), ancora o dia de faturamento, inclui adicionais em MRR, e levanta a primeira fatura como um rascunho. Aprovando um pedido pago por fatura, fio, ACH ou cheque agora concede acesso como pago; apenas COMP fez qualquer coisa. Serviço de SubscriptionInvoice: - rascunhos de renovação levantados dias de antecedência, uma vez por período (restrição única) - períodos de rolagem no dia de faturamento apenas uma vez faturado - testes convertem; assinaturas não renovadas terminam - Pagamentos registados com a data recebida, método e referência, parcial Pagamentos suportados (novo **************** - edição de rascunho com totais do lado do servidor - vigiado void / reembolso - Marcação em atraso e agendamento de lembrete - tokens de visualização on-line (SHA-256 em repouso) - numeração segura INV-YYYY-NNNN no contador de documentos compartilhados MarketInvoicePolicy: envio automático vs. retenção (retenção padrão), dias de espera, vencimento 30 dias, instruções de pagamento. PaymentMethod ganha ACH e CHECK. Novos modelos de e-mail commerce.invoice_sent / invoice_reminder / invoice_ready e NotificationKind Clique em BILLING_INVOICE.
· BillingService
Reconstruir o espelho Stripe de Stripe à noite e na inicialização
Eventos com mais de 30 dias não podem ser recuperados, portanto, a fatura de setembro e eventos de assinatura perdidos para a incompatibilidade da versão da API são irrecuperáveis como O StripeMirrorReconciler lê cada assinatura respaldada por Stripe e seus invoices diretamente e escreve account_subscriptions / account_invoices, às 03:30 e uma vez após a inicialização (fora do encadeamento de inicialização) relógio de atraso em uma fatura paga, mas nunca começa a lembrar.
· TranslateService
Um motor, MADLAD-400, para cada par de idiomas
Substitui os fornecedores LibreTranslate, Bergamot e IndicTrans por MadladProvider (klusterservices madlad/). Suas línguas não se sobrepunham, e nenhum deles tinha voltado como sua fonte em inglês e foi salvo como o tradução; MADLAD traduz entre quaisquer dois dos ~400 idiomas, então chat inbound em qualquer idioma também atinge o inglês. - O provedor envia uma lista de textos em um pedido: um modelo 3B está vinculado pela leitura de seus pesos, e 16 cordas curtas tomou 9.7 s juntos contra 25.8 s um por um. ProviderRouter.traduzirTodos os grupos de chaves de um lote (32 textos / 6.000 caracteres), e um grupo que o motor falha é repetido texto por texto então um texto ruim falha sozinho. - TranslationService.batch máscaras nomes protegidos primeiro, envia cada texto distinto uma vez, em grupos, e restaura o nomes após; uma resposta que perdeu um ainda é traduzida em torno dos nomes. O prazo da chamada é verificado entre os grupos. - Até que o motor tenha respondido /línguas o provedor reivindica 22 idiomas do Kamo, nunca nenhum: um par não reclamado é retornou como sua fonte em inglês e salvou como a tradução. - Um intervalo de tempo ainda não é repetido; 503 ocupado e 5xx são, dentro do prazo do chamador. O trabalho de fundo mantém um espaço por pod para que uma mensagem de chat nunca fique atrás de uma sincronização.
· KlusterServices
Um motor de tradução para cada par, MADLAD-400-3B na CPU
Substitui o LibreTranslate (Argos), o Bergamot e o Kamo IndicTrans, cujos conjuntos de linguagem não se sobrepõem e cujas lacunas vieram de volta como Inglês. MADLAD-400-3B-MT (Apache-2.0, int8 CTranslate2 by Santhosh Thottingal) traduz-se entre qualquer dois de ~400 idiomas, então chat inbound em qualquer idioma agora atinge o inglês também. - 8 núcleos / 16 GiB reservados, até 16 núcleos / 32 GiB, como solicitado. Duas correntes de oito fios: dezesseis threads em um fluxo medido mais lento (83 vs 123 caracteres/s) na classe de CPU dos nós (Haswell, AVX2). - A API leva listas: 16 cordas curtas em uma chamada levou 9.7 s contra 25.8 s um por um. - Todas as entradas terminam com </s>; sem isso, uma etiqueta curta foi executada (Salvar voltou três vezes, e em árabe como 'Salvar 10% do valor da ordem'). O feixe segue o comprimento da peça. - Placeholders vão para o modelo como {0}, não KMPH0: perdido em 0 de 60 strings em cada ar, oi, sw e zh contra 11, 6, 6 e 4. Uma resposta que ainda perde é novamente solicitada mais ampla, depois traduzida em torno dela. - O mesmo padrão que o indictrans/: modelo de hash-pined e rodas obtidas por um Job, servindo pod não tem saída, Auth proxy na frente, somente leitura root, k3m1. Os motores antigos continuam funcionando e são removidos no próximo commit, uma vez que TranslateService fala para este.
· kamo-internal
O filtro oficial de empréstimo do Pipeline mostra rostos e abre o cartão de membro
Cada oficial nas opções do filtro, e o selecionado, é o seu avatar e nome envolto no MemberHoverCard partilhado. Um clique ainda seleciona.
· kamo-internal
O agente de empréstimo do Pipeline abre o cartão de membro compartilhado
O agente de empréstimos em cada negócio é embrulhado em MemberHoverCard, o popup todos os outros Utilização da superfície para um membro. Abre no hover e no teclado; um clique ainda abre a janela de atribuição- empréstimo- escritório.
· kamo-internal
Uma página LAR HMDA de largura total e altura total; botões de marca legíveis na página de empréstimo
- HMDA LAR: o registro é uma grade AG que toma toda a largura e cada pixel sob o cabeçalho, e rola dentro de si — a página não mais rola. Questão detalhes abertos em um popover no corpo em vez de dentro da caixa de transbordamento da mesa (que colocou barras de rolagem na mesa sempre que uma foi aberta). Resumo das peças (empréstimos, volume, erros, avisos), pesquisa, um filtro somente de problemas, empréstimo fixo e emitir colunas. - Cinco botões coloridos na página de empréstimo (Pricing, Pipeline, Divulgações) tinha texto-cinzento-900 na cor da marca; eles são brancos como o resto. - HMDA LAR, o Conselho e o redirecionamento do empréstimo de exclusão foram para /aplicações, que não tem página; eles agora retornam de onde o membro veio, caso contrário /commerce. Os botões HMDA LAR e Board do Pipeline passam pela sua localização. Completa 50fee1b25.
· kamo-internal
Uma nova hipoteca Pipeline - ofertas abertas primeiro, passados um clique de distância, e cada negócio gerenciado a partir de seu cartão
A guia Pipeline sob um mercado hipotecário é reconstruída em torno de transações: - Abrir □ Passado □ Todas as views (passado = completado ou cancelado), com contagens - números de títulos que contam e duplicam como filtros: transacções abertas, empréstimos em voo, volume em voo, fechamento em 30 dias, necessidade de atenção (alvo anterior fechar, ou um empréstimo negado) - uma grade de palco mostrando onde as ofertas abertas se sentam; clique em um estágio para filtrar - cada acordo é um cartão: progresso anel em torno do mutuário, estágio, total quantidade, quantos dias para o alvo fechar (em breve, vermelho atraso), locatário; amplia em vigor os seus empréstimos - gerenciar a partir do cartão: renomear, atribuir / alterar o agente de empréstimo (o compartilhado membro colhedor), adicionar outro empréstimo ao negócio, remover um rascunho de empréstimo, copiar o número da transação, abrir qualquer empréstimo - pesquisa ("/" para focar), filtro de empréstimo- escritório, quatro tipos, exportação CSV, Encontrar Empréstimo, Board e HMDA LAR mantidos; âncoras guiadas - as cores vêm da marca da org; o movimento reduzido é respeitado Mais rápido para abrir: - PrimeReact (sua tabela de dados, tema CSS e fonte de ícone) é ido da página — foi usado aqui e em nenhum outro lugar. - todos os ecrãs mas o Pipeline agora carrega na primeira visita em vez de todos os oito em um pedaço - a última leitura é mantida para a vida da página, então voltando para as tintas tab de uma vez e refresca atrás dele - PipelineView resolveu um link ?tab= profundo apenas em um efeito, então o primeiro mercado montado na pintura 0 e começou suas cargas antes da comutação - pares com SecurityService 7ca04ac3, que remove as consultas N+1 por trás ambos os pipeline lê Páginas de mesa reordenadas: Pipeline, Documentos, Preços, Subscrição, Capital & Risco, Ingestão, Catálogo — Governança, não na ordem solicitada, permanece por último.
· SecurityService
Aprovar e sempre permitir verificar os direitos que uma ferramenta precisa em um caso apenas
Seguimento da aprovação 2026-10-21: o cartão do Plano de Ferramentas agora nomeia os direitos O serviço da ferramenta é obrigatório apenas em alguns casos (sempreAllow.rights Quando: a Os dados de contacto do colega principal, o cartão de outro membro, ...). A preview leva-os como quando = CÓDIGO = RIGHT cada caso, verificado como os próprios direitos da ferramenta: o que o SI ainda falta, e se esta pessoa pode dar-lhe.
· kamo-internal
Fitas de canto em todas as bordas, nas abas e nas páginas abertas da barra superior
Após a ponta esquerda redonda, as outras três bordas obter o mesmo tratamento, em um mapeamento fixo: uma regra superior torna-se uma fita superior esquerda, uma regra direita a Fita inferior direita, uma regra inferior uma fita inferior esquerda. CornerRibbon aprende o seu canto. O componente toma `corner'; cantoRibbonSx toma um objeto de opções ({ tamanho, canto, pseudo, âncora }, o antigo posicional forma ainda funciona); a classe CSS ganha --tr, --bl e --br. A luz ainda vem de cima, então em um canto inferior o sombreamento reverte e a sombra cai entre a banda e o canto. Tabulações: o tema raiz esconde o indicador de tabulação do MUI e dá todas as tabulações seleccionadas uma fita xs inferior- esquerda (inferior- direita numa barra vertical) na própria aba cor. Uma barra que deseja outro conjunto de cores -- tab- ribbon- color; por local estilos de indicador são removidos ou levados para ele, e barras de tabulação feitas à mão (IoT, head view, softphone, emoji picker, Docs) marcar sua aba da mesma forma. Nav: a barra superior seleciona uma opção exatamente como a grade, iluminada com uma fita xs branca em vez de um sublinhado, e um menu de ferramentas (Mail, Docs, Phone e o resto) é selecionado enquanto qualquer uma de suas páginas está aberta, em ambos os navegadores. Deixado sozinho como antes: divisores, barras de progresso e carregamento, spinners, cheio bordas, linhas de conector, alças e conteúdo dos próprios estilos dos membros.
· SecurityService
S-I1 aceita REPLACED, então o IoTService revoga uma bolsa de Alexa substituída
Proprietário 2026-10-21. O KamoOAuthRevokeReason.REPLACED já existe (persistido em STRING, sem verificação na razão revogada), portanto, nenhuma mudança de compartilhamento de lib ou DDL; a lista interna revoga a adição e auditorias OAUTH GRANT REVOKED (REPLACED). Razões de serviço de segurança (CODE REUSE, REFRESH REUSE, CLIENT REVOKED, ORG VOIDED).
· kamo-internal
Fitas de canto substituem cada barra de acento à esquerda
A página de Bugs do Sistema foi primeiro. Esta mudança faz o resto do kamo-internal: cerca de 120 arquivos onde um item foi marcado por uma regra colorida abaixo de sua esquerda borda — uma borda Esquerda, uma borda de Tailwind-l-N, uma sombra de caixa, uma ::antes ou barra absolutamente colocada, ou uma barra flex de condução curta — agora carregue o canto fita na mesma cor e sob as mesmas condições. CornerRibbon ganha duas formas para lugares onde um elemento infantil não pode ir, ambos desenho da fita idêntica a partir de um gradiente de 135 graus: - cantoRibbonSx (cor, tamanho, pseudo, âncora) - um fragmento sx no elemento pseudoelemento próprio. âncora=falso deixa apenas a posição para linhas de grade AG, que a grade se coloca; '&::after' evita a grade ::antes das tintas. - a classe kamo-corner- ribbon no globals.css (-- xs/- md, cor via --corner-ribbon-color), para Tailwind, estilo-jsx e rico-texto CSS. Texto rico blockquotes usam a mesma regra. LegalStateRail torna-se LegalStateRibbon. Os renderizadores de células de grade renderizam a fita sem invólucro posicionado, por isso ancora-se ao absolutamente posicionado .ag-cell e senta-se no canto da fila. O marcador ativo do navegador no trilho é uma fita branca xs; a variante da barra mantém a sua parte inferior sublinhada. Trilhos animados Mantenha seu brilho e perca apenas o trilho. Estes foram deixados sozinhos porque não são indicadores de itens: 1px pane divisores, conectores de linha do tempo/árvore, barras de progresso, alças de redimensionamento, o áudio intervalo de seleção de waveform, e barras de topo ou de baixo.
· kamo-internal
Aprovar e sempre permitir, o nome porquê, a própria imagem do SI, as próprias cores do org
Sempre permitir: a partir da barra de decisão, o aprovador escolhe apenas esta ação ou o todo tipo (em palavras simples), lê exatamente o que muda no trabalho do SI descrição, e confirma; SecurityService escreve a regra (preview/grant/revoke relés), então o pedido é aprovado e o SI dito. Alguém que pode não mudar a descrição do trabalho é informada porquê e quem pode, e pode aprovar uma vez; as necessidades de ação são oferecidas apenas a alguém que pode dá-lo. "Pergunte-me novamente" na resultado e sobre a regra na descrição do trabalho do SI leva-o de volta. Por que: um follow-up nomes o pedido anterior nas palavras de seu próprio cartão, que decidiu ele e quando, com um link; a linha de descrição do trabalho diz qual regra pergunta. Avatar: a pesquisa das janelas de conversação (fetchMemberAvatar: foto, em seguida, escolheu avatar, inicial) no cartão e na caixa de entrada. Cores: as aprovações tintas UI de --color-primário através da marca de aprovação (botões, fichas, foco, crachás, progresso, alertas, status); palavras em um preenchimento da marca são pretos ou brancos pela própria luminância da marca, então qualquer marca lê em AA. Risco e o estado mantém suas cores semânticas.
· kamo-login
Alexa consente links por localização e aponta um novo link para substituir
· kamo-internal
Alexa seção diz que cada conta Alexa é seu próprio link
· MCPGatewayService
Honrar permissões permanentes; oferecer Aprovar e sempre permitir no cartão
CharterPolicy lê soleded.toolAprovações e a bandeira de cada regra. A A regra do membro sobre uma ferramenta representa a regra da sua classe para essa ferramenta; a Permissão permanente (concedido a partir de uma aprovação) teto, mas nunca para um SHADOW SI ou uma carta que não poderia ser lido, e um A turma do Forbidden ainda ganha. O oleoduto e o primeiro contato juiz de verificação por ferramenta, então um envio sempre permitido ainda pergunta antes de um primeiro contato. O cartão de aprovação ganha semprePermitir: oferecido a menos que a ferramenta seja somente pessoa, move dinheiro, toca em segurança ou dispositivos, ou seu tipo de ação nunca é permitido para o bem, com a razão em palavras simples, o título da ferramenta, o tipo em palavras claras e os direitos de que a ferramenta necessita.
· SecurityService
Aprovar e permitir sempre, a partir da aprovação de um SI
- Está bem. * ******************************* {aprovação, âmbito TOOL, fecho, concessãoDireitos?} DELETE Pergunta-me outra vez. A aprovação nomeia a ferramenta e tipo de ação; somente alguém que pode editar o A carta da SI (CarterAccess.editRefusal) concede-lhe, através da Carta dos Membros (validação, selo novo, tempo de execução dito). Recusado para os tipos Permissões Permanentes nunca permite, uma política de comunicação ou aprovação da divulgação, um pedido decidido, um SI sombra, uma regra outro conjunto de camada, e uma classe proibida; cada recusa e O antes/depois é dito em palavras simples. A direita a ferramenta necessita que o SI A falta é oferecida apenas a alguém que gere a segurança dos membros e a detém.
· kamo-shared-library
Permissões permanentes de uma homologação (aprovar e permitir sempre)
O próprio item HOPROVAL de um membro pode agora nomear uma ferramenta (nome ferramenta) e gravar o a aprovação veio de, quem a concedeu e quando (item origin HOPROVAL). A respostas resolvedoras soluted.toolAprova regras de ferramenta que se sentam sob uma classe regra que é o padrão ou o próprio do membro e não FORBIDEN; regra de uma camada nunca se solta. StandingPermissions lista os tipos de ação que nunca são permitido para o bem (dinheiro, dispositivos, computador do SI, divulgação de informações, compartilhamento externo, primeiro contato) e diz cada tipo em palavras simples. A visão e selo são byte-for-byte inalterado para charters sem estes itens. DDL: serviço de segurança **************************** (aplicado).
· kamo-internal
As fitas de canto substituem as grades de acento da borda esquerda nos Bugs do Sistema
CornerRibbon é a forma indicadora da fita de painel de entrada de kamo-login: uma fina banda diagonal sombreada através do canto superior esquerdo de um item, em qualquer cor, em três tamanhos. Corta-se à sua própria caixa de canto e herda o raio dos pais. Então um pai só precisa de posição: relativa. Ele substitui o trilho no cartão de bug, o status-razão da gaveta chamada, o o pai citado do thread e sua barra de resposta, e o cartão de transferência SI mostrado no thread (compartilhado com suporte ao vivo).
· KlusterServices
Svc iot pode subscrever iot.live.dispositivo.> — o canário de produção IoT observa o seu próprio quadro ao vivo (SP14)
· kamo-marketing
Anunciar dispositivos IoT — a categoria /features, o grupo de capacidades e /dispositivo-compatibilidade ir ao vivo (SP14 T+0)
IoT Devices foi publicado em 2026-10-21 03:47 UTC (catálogo sobreposição COMPLETED + disponível, proprietário aprovado). A página de compatibilidade lê o feed ao vivo: 8 serviços hoje.
· kamo-internal
Cartões de aprovação em linguagem simples e uma caixa de entrada de aprovações premium
Ordem do proprietário 2026-10-20: a guia Aprovaçãos do Centro de Interação e os popups de aprovação mostrou membros GUIDs e JSON. Cada aprovação agora lê como cartão uma pessoa não técnica compreende: o rosto e o nome do SI, uma frase do que ele quer fazer ('Missir Juan Jesus quer marcar a tarefa “Chamar Jane de volta sobre a avaliação” como feito’), os registros toca como chips que os abrem, a mensagem exata que enviará (e-mail, texto, bate-papo, convocar, reunir), os pormenores como campos rotulados (dinheiro, horários na zona do leitor, telefone e endereços como seus popups), por que está perguntando, o risco em palavras simples, o que aprovando e declinando fazer, e uma contagem regressiva para quando caduca. O pedido em bruto apenas se situa sob um detalhe técnico fechado. Aprovar, decodificador com uma nota, pedir o SI em um bate-papo, e editar o texto antes de aprovar onde o servidor o permite; atalhos A / D / E. A caixa de entrada (página Centro de Interação, e o hub Workforce com um painel de leitura ao lado do lista): pesquisa, filtros por tipo e risco, ordenação (o mais breve a caducar primeiro), multi-selecção com Aprovar tudo / Decodificar todos (de alto risco nomeado primeiro), aprovar e decodificar rapidamente em cada linha (uma solicitação de alto risco se abre em vez), navegação de teclado, linhas otimistas que deixar como eles são decididos, carregando esqueletos e um estado vazio quente; Moção Framer sob MotionConfig reduxMotion=user, transições CSS com sua própria consulta; claro e escuro; layouts de telefone. Strings no dicionário (empurrado primeiro); uma frase que o dicionário carece ou que deriva do servidor volta para o inglês do servidor, nunca uma chave.
· kamo-internal
Os crachás de navegação da opção Dispositivos (IoT) abrem alarmes, pulsam enquanto se espera e o menu leva a Alarmes
Proprietário, 2026-10-20 (Fechamento de IoT F12): Alertas de IoT permanecem somente por e-mail; alarmes chegam às pessoas no aplicativo. - Dispositivos (IoT) é um menu (toolKey iot) de suas páginas, as próprias linhas da barra de tabulação (IOT TABS), Alarmes entre eles com a contagem de alarme aberto, então configurações de Dispositivos (IoT) para um membro que pode abrir uma aba de configurações. - O crachá do gatilho são os alarmes abertos que o membro pode ver (o resumo do alarme, arquivado/suprimido deixado de fora pelo servidor); os impulsos do ícone (blinkIcon, o tratamento de e- mail/suporte) enquanto se espera por um reconhecimento. Live by the IoT notification pulse, rt.org.iot, focus/reconnect and a one-minute floor; a failed read keeps A última contagem em vez de reclamar nenhuma. - Launchpad (sectionsForTool) e a paleta de comandos (lands on /iot) seguem. - Emblemas Nav: o erro da paleta de luz vermelho em ambos os temas (escuro #f44336 sob branco foi 3.7:1). Shots /tmp/iot-wt/fu-shots/F12 (carril expandido/desligado, barra; luz/escuro; machado limpo).
· InitializerService
O KamoCameras está incluído no negócio e acima, e em cada degrau Premium do universo e acima
Proprietário, 2026-10-20 (Fechamento IoT F11): Negócios, Empresas e seus equivalentes nos outros universos. - PlatformTierMatrixMigration: Ganhos de negócios KAMO CAMERAS (a empresa herda). - UniversePackages: Família/Comunidade/Personal Premium ganha-lo (A empresa/Pro herdar). - TIER LADDER: businessUp (foi plataformaSomente) mais os degraus do universo. - O KamoCamerasTiersTest fixa a escada; UniverseCatalogMigrationOs pacotes contratados pelo Teste seguem. As filas de produção foram escritas primeiro. 2 linhas de catálogo, 20 linhas do plano; os planos do sign.pink excluem-no, como SP14 E2 fez para IoT), porque empurrar KI não funciona nada.

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