Changelog
O que há de novo.
Cada melhoria para a plataforma, como ele envia.
· kamo-shared-library
Bloquear a pesquisa por arquivo de empréstimo (entrar no cenário)
******************* Fechaduras do empréstimo via MlosLoanScenario.loanFileUid. Apoia o mutuário/agente "Esta taxa de empréstimo está bloqueada?".
· SecurityService
Proxy de bloqueio de taxa de aeromoção — lock-decision + commit um resultado elegível
MlosCapitalMarketsController ganha POST /lock-decision (preview) e POST /locks (compromisso) via MlosCapitalMarketsClient; o commit é um bloqueio de administrador humano deliberado Gravado como: — nunca um fecho automático de IA fabricado. O motor é mutuário-ack / AUS paredes retransmissão como honesto 4xx.
· SecurityService
Superfície de assinatura electrónica do contractor — ligações de sinais nativos reais, sem toco
- Está bem. (participado) lista o empréstimo é real KAMO NAtive disclosure/closing envelopes + status do destinatário via ESigService; POST **************** menta uma nova assinatura acessível deep-link (fracasso fechado: envelope deve pertencer ao empréstimo do chamador). Apoia o reconstruído fechamento-desk que deep-links para a experiência de assinatura nativa (doc 05 §5).
· ESigService
Primitivo menta-sinal-link interno para superfícies de assinatura de primeira parte
* ******************************* re-mints um token de acesso de um destinatário e RETURNS o deep-link assinatura (sem convite-email ida e volta), para que o portal mutuário da MLOS possa entregar um assinante autenticado ao vivo link. Refactors resend () para partilhar o caminho do menta; os destinatários 409 completaram/descodificaram.
· SecurityService
WS3 fornecedor-proxy de ordem — lugares de administrador / lê ordens de terceiros
Adicionar MlosVendorClient (X-Internal-Auth → MLOSVEndorService /api/vendor) + mlos.vendor.url config, e endpoints de app: GET /{uid}/vendor-orders (visualização do operador) e POST /{uid}/vendor-orders (pessoal — colocar uma ordem de avaliação/título/HOI/VOE, opcionalmente ligado a um requisito Third PARTY para que o seu callback o satisfaça). orgId + empréstimoFileUid resolvido servidor-side; o status honesto do trilho do fornecedor é retransmitido, nunca fabricado.
· SecurityService
Projecção de minhas condições seguras para a vista de condições do portal
GET /{uid}/minhas condições (participante ou operador) devolve uma estreita EmprestadorConditionView **************** - nunca o actor/notas internos campos que o administrador EmpréstimoConditionDTO expõe. O portal junta estes com os requisitos do documento que já EmpréstimoConditionId) para agrupar a lista de verificação através da condição de subscrição.
· SecurityService
Seção por empréstimo GET endpoints para hidratar as UI de captura
Adicionar listaPerBorrower (requerView, party-gated) + GET list endpoints for **************************** retornando {linhas:[...]}. Estas costas as novas seções de captação do mutuário URLA em KamoMLOS.
· kamo-shared-library
Seção de empréstimo ler métodos para outra renda/despesas/REO/captação de presente
As seções repetitivas por empréstimo foram somente escrita; adicione projeções lidas Então, o devedor Capture UIS pode hidratar linhas existentes através de objetivos GET.
· SecurityService
Abstração total de crédito-vendor + adaptadores reais de revendedores
Tri-merge de produção. A abstração passa agora o SSN de 9 dígitos FULL (descriptografado na hora da ordem do registro criptografado do mutuário) + co-emprestador para um pull COMINGT — anteriormente apenas ssnLast4 foi passado, o que nenhum bureau aceita. Novo núcleo de protocolo MISMO-2.4 (mismo/): CreditVendorProfile + CreditAuthScheme **************************** MismoCreditRequestBuilder (individual + conjunto, SSN completo, MeridianLink inline-login block), CreditResponseParser (tolerante score parsing entre pedidos de atributos + normalização do bureau + error de vendedor detecção). ResumoMismooCreditAdapter detém o fluxo de ordem compartilhada (validar → build → auth → POST com tempo limite → parse), config-driven com per-tenant substituições **************** de configJson. Adaptadores nomeados para os revendedores hipotecários mais comuns, cada um codificando o seu público protocolo (esquema de autenticação) com créditos de conta como config: MeridianLink (inline login), Xactus (portador), Dados Fatuais / CBCInnovis / Credit Plus (básico) + o genérico MISMO pega tudo. CreditOrderService descodifica o SSN completo via SecretCipher, resolve o co-emprestador, e ordens conjuntas quando presente. Só falhas honestas, Nunca uma nota inventada. 12 testes verdes.
· SecurityService
Proxy de limpeza para fechar
GET **************** loanFileUid da aplicação e relés MLOSDocService está pronto para fechar.
· EmailService
Aceitar X-***-Token para clientes móveis no OTKPreAuthFilter
por-tab sessão id como X-***-Token (combinando **************** Quando presente (e sem X-OTK), resolva a sessão de forma não-consumidora e defina o mesmos atributos de requisição; um token inválido não define nada, então os controladores ainda Rejeitar com 401. Proteção de dados de sessão inalterada.
· APIService
Rota /api/email + /api/suporte através da máquina api
(EmailService) e Suporte (MediaService, mesmo upstream que /api/media) foram não roteado → 404. Adicione ambos os encaminhamentos e corrigir e-mail. service.url de um host local padrão para o serviço de cluster. forward() só passa a sessão do chamador cabeçalhos (X-***-Token) — não injectado X-Internal-Auth — por isso, endpoints internos manter-se protegido e apenas a funcionalidade de sessão é exposta.
· SecurityService
Agência desencadeada pelo Steward-AUS executar proxy
Adiciona POST **************** — o mordomo "Corra AUS" desencadeia falta o console somente para leitura. Gated no operador (GD); organizationId e membro atuante são SERVER-STAMPED da sessão (nunca confiável do cliente), e MLOSUnderwritingService re-valida o empréstimo pertence a essa org (falha-fechado cross-org). Os factos são derivados do servidor a jusante (DTI via LoanQualifyingRatioService, estrutural via CenárioFactDeriver); A pessoa que liga pode ainda passar um atestado de fico/crédito fresco. Nada desencadeou uma vida AUS correr antes disso — os terminais de execução tiveram zero chamadas.
· KlusterServices
Cabeçalhos de expo-updates auto- hospedados para Mobile Copilot OTA
expo-protocol-version:1 + expo-sfv-version:0 cabeçalhos de resposta que o Expo-updates cliente requer e estático MinIO não pode emitir. Caminho mais longo prefixo ganha sobre a rota geral /public/ tema.
· kamo-shared-library
FornecedorOrder + FornecedorOrdenarEvento entidades para WS3 fornecedor-order espinha
A ordem de registo de terceiros de Greenfield. SCRA). Ordem de Fornecedor = ordem assincronizada parcial- WORM (ClosingArtifact idiom: opaco fornecedorKey/externalRef, identidade congelada, apenas status/result advance; uma re-order é uma linha NOVA). FabricanteOrderEvent = full-WORM app-only bookger (Idioma AusRun: uma linha imutável por transição/callback, externaEventId dedup, payload for replay). FornecedorCategoria += **************************** (não ConnectionVendor peer — a procedência vive aqui, nunca na Conexão bloqueada). Soft-FK-by-id, org/loanFileUid desnormalizado. KI @EntityScan( com.kamo) cria as tabelas; serviços ficar ddl-auto:none.
· SecurityService
Data própria do documento de carimbo para o relógio de frescura (ativação WS1)
Após a extração da visão, propagar a própria data efetiva do documento Periodend for banking/broker/retirement, employment.payPeriodend Para pagamentos) ao deputadoDocument.freshnessAf. Isto faz com que o MLOS idade de satisfação do requisito a partir da declaração verdadeira/data de pagamento em vez da tempo de upload, para que o mecanismo de cobertura de período finalmente obter identidade de período real. Melhor esforço, idempotente, nunca quebra extração; nenhuma mudança de esquema (o frescura as of coluna já existe).
· kamo-shared-library
HipotecaAmortização — mensal P&I de condições de empréstimo (apoio WS6)
O único componente PITI não armazenado no empréstimo. Padrão de amortização completa fórmula P·r·(1+r)^n/((1+r)^n−1); taxa zero degrada-se para linha reta; não positivo principal/termo fail-safe até 0,00 (nunca lança/divide por zero). Alimenta a entrada de P&I do PitiDtiCalculator
· kamo-shared-library
EncerramentoProntidãoAvaliador — portão transparente de nível de empréstimo
Revela as obrigações de um empréstimo até à questão do financiamento do défice de fim a fim análise levantada ("serviço o empréstimo todo o caminho para o financiamento"): claro para fechar iff zero condições de bloqueio de avanço (antes de fechar/fundo) permanecem abertas; condições abertas de não-bloqueamento (antes de doc/post-close) não possuem financiamento. Emite o bloqueio dedupedCategorias "o que resta antes de você pode fechar" lista. Condição Pura/Instata sobre chamadas mapeadasProjeções de Estado, espelhamento CondiçãoClearabilityResolver – envia a regra, não a fiação de marco.
· kamo-shared-library
QualifyingRatioEngine — a pedra chave dti reprodutível (WS6)
Compõe os quatro núcleos (renda, passivo, PITI/DTI, reservas) em UM QualifyingSnapshot: rendimento qualificado, dívida mensal reconciliada, montado PITIA, DTI front/back, reservas elegíveis, meses de reserva. Este é o single derivação determinística que deve tornar-se o único produtor do facto «dti» dos AUS — hoje em dia, esse facto chega ao mutuário dactilografado ou em branco e ninguém o deriva. Puro/sem Estado, sem E/S, sem esquema; chamado por nada ainda (seguro para CenárioFactDeriver a seguir). As mesmas provas reproduzem sempre o mesmo instantâneo.
· kamo-shared-library
ReservasCalculador — margens de avaliação dos activos elegíveis → meses PITIA (WS6)
Derivados reservam meses a partir de ativos reais com margens de avaliação padrão da agência — depósitos líquidos 100%, corretagem 70%, aposentadoria adquirida 60%, presente / emprestado Excluídos — divididos por PITIA mensal. Completa o conjunto de qualificação pura (renda + passivo + PITI/DTI + reservas) um valor real em vez de um mutuário. Zero PITIA → indefinido. Não Esquema, sem fios.
· kamo-shared-library
PitiDtiCalculator – conjunto PITI + DTI frontal/back (WS6)
Núcleo de rácio puro completando o trio DTI com ResponsabilidadeReconciliador + núcleo de rendimento: PITIA = P&I + impostos + HOI + HOA + MI + inundação; frente = PITIA / rendimento; retorno = (PITIA + dívida) / rendimento, em percentagens. Zero rendimento → indefinido (não dividido por zero). Esta é a derivação determinística que deve tornar-se o único produtor do facto «dti» dos AUS. Sem esquema, sem fios.
· kamo-shared-library
QualifyingIncomeCalculator — base + núcleo variável (WS5)
Núcleo de rendimento puro/determinado: base salarial = menor conservador provas disponíveis (paystub / W-2 / VOE); variável = média de 2 anos com Declínio da guarda de rendimentos (utilizar a taxa de execução corrente mais baixa ao baixar); aluguer a 75% do bruto. Cada linha cita sua regra; mesmas entradas → mesmo total (replay). A entrada auditável para um DTI real, substituindo dedupe-by-employer. Opera em projeções mapeadas por chamadas – sem esquema, sem fiação, sem comportamento Mudança. SE cash-flow / terra bruta no topo.
· kamo-shared-library
Responsabilidade Reconciliador — Regras de inclusão no pagamento das agências (núcleo WS6)
Computador puro/sem estado que transforma cada responsabilidade no pagamento mensal que conta contra DTI, com uma fundamentação citada: excluído omitido/pago, locações sempre incluídas, parcelas ≤ 10 meses fora, sem pagamento em 5% do saldo, declarou o contrário. O fundamento defensável de um DTI back-end (substituindo uma 'dti' injectada). Opera numa chamada mapeada Projecção da responsabilidade bloqueada — sem esquema, sem fiação, sem comportamento Mudança. Tratamentos diferidos-aluno-empréstimo/contingente terra com o sinalizadores de responsabilidade aditivos.
· kamo-shared-library
Especificações de quantidade de período explícito para os sucessores delta
RequisitosQuantidade ganha uma lista de períodos explícita (+ deltaJson builder); quando presente é o conjunto necessário, para que um sucessor possa ser "apenas enviar Agosto". PeríodoCoverageAvaliador honra e expõe requiredKeys(). Puro/aditivo.
· kamo-shared-library
****************como a única fonte chave do período
Adiciona períodoKeyFor(date) para que o write-path (satisfier stamping) e o Os períodos-chave do avaliador de cobertura são idênticos; o avaliador agora deleita-o. Puro/aditivo, sem mudança de comportamento.
· kamo-shared-library
Primitivos da cobertura do período para a coleção de documentos do período
A base pura e aditiva da coleção de conhecimento do período (doc 06 §4) — o primeira fatia do banco-declaração "colete apenas os meses que ainda não tenho" Consertar. Nenhuma mudança de comportamento, nenhum consumidor ligado. - ExigênciaQuantidade: especificação imutável {conta, períodoMês, cadência, perAccount, perParty} analisado a partir de quantity json; fails open to SINGLE so a A exigência não especificada mantém o comportamento de todo o documento de hoje. - periodCoverageEvaluador: puro @Component (mirrors ConditionClearabilityResolver) Computação dos períodos requeridos/cobertos/descobertos + estado derivado de uma especificação, os satisfiers aceitos, e uma data de âncora — o "1 de 2, faltando 2026-06" lógica, com um mês velho fora da janela ignorado (tratado para frente, não re-perguntado). - NecessidadeSatisfação: quatro colunas NULLABLE aditivos (period end, effective date, period key, account key) + index; WORM @PreUpdate preservado. - PARCIAL RECEIVED (já no enum, isOpen()=true) simplesmente se torna alcançável. Colunas aplicam-se aditivamente através do KamoInitializer (combatido com o caminho de escrita M1 run); services stay ddl-auto:none; no shared-lib version bump.
· kamo-marketing
Substituir o chat bifurcado com o conteúdo hospedado <kamo-chat> embed; apagar o widget de proxy legado
Troca o chat AI/live-suport React (PublicChatWidget + AiChatPanel + LiveSupportPanel + as rotas proxy /api/chat/** do servidor) para o hospedado, auto-tema <kamo-chat> elemento personalizado servido de **************************** As organizações de marketing WebChatA chave do site de integração é lida do lado do servidor no layout local ****************############################################################################################################################################## tempo de solicitação, não cozido em uma compilação estática) e passou para o novo Componente cliente KamoChatEmbed, que injeta o script de widget e monta <Kamo-chat site-key="...">. Deixa cair @stomp/stompjs e sockjs-client, que foram usados apenas pelo LiveSupportPanel excluído.
· kamo-internal
Adicionar o QR de instalação (APK auto- hospedado) à página Configurar a Aplicação Móvel
Instalar/Inscrever a opção: "Instalar" mostra um QR para a versão assinada APK no novo telefone pode baixar + sideload; "Inscrever-se" mantém o fluxo OTK com senha.
· kamo-internal
Web Chat Integration design personalizer + visualização ao vivo
Adiciona uma janela de Personalização à página Integração de Conversas Web: um formulário de editor (cor, cópia, disposição, comportamento, prompt de IA) à esquerda e a mock instantâneo, não- interativo do widget à direita, ambos conduzidos fora da mesma configuração de memória para que cada edição reflicta imediatamente. - Está bem. Espelho TS do elemento canónico DEFAULT DESIGN JSON (Biblioteca-kamo-compartilhada WebChatDefaultConfig.java) + deep-merge/parse helpers para um design armazenadoConfig (null/parcial/ mal-formado) resolve sempre para uma configuração editável totalmente povoada. - Está bem. auto... contendo mock com estilo (launcher + painel aberto), sem widget remoto Um pacote envolvido. - Está bem. ConfiguraçõesTextField ganha acessórios opcionais multilinhas/linhas (aditivo, para trás compatível) Para os campos de mensagens de boas-vindas/prompt do sistema. Salvar coloca o design da integraçãoConfig + aiEnabled/humanEnabled/ aiSystemPrompt via webChatIntegrationsApi.update, com hex-color e validação positiva-inteiro antes do pedido.
· kamo-internal
Página de Integração de Web Chat — lista, criação, trecho (BFF + UI)
Núcleo de fase 2 da página de configurações de integração do Web Chat: proxy de rotas BFF para o Phase-1a MediaService CRUD, um cliente digitado e o /settings/features/chat tab onde uma org lista integrações, cria uma (nome + origens necessárias do site + modos de IA/Suporte), e recebe o bruto chave do site + trecho incorporável uma vez. Personalizador de design e prontidão Lista de verificação são fases posteriores.

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