Migrar o Hexchat restante:open despacho para a ferramenta:focus no HexHeadGroup
Polimento de interface de bate-papo - cor primária theming, emoji inside input, redondo enviar btn, hex status cores
- Páginas de departamento e cabeçalho chatbox use --color-primary em vez de verde codificado - Botão do seletor Emoji movido dentro do campo de entrada do chat ...
Melhorias do sistema de bate-papo - edição spin, rotação da máscara hex, cores, maximizar-minimizar
- Detectar edição (backspace/delete) vs digitar a entrada para ativar o giro do HexHead para trás - Girar máscara hex clip juntamente com borda durante a digita...
Não invalidar a sessão *** quando corresponder à nova sessão OTK
A rota de validação foi a exclusão da sessão *** existente do Redis antes de procurar o OTK. Quando o OTK apontou para a mesma sessão, a pesquisa falharia com "...
Aceitar *** do parâmetro de consulta para a autenticação WebSocket de subdomínio cruzado
Ler primeiro o ID *** de ?***= parâmetro de consulta, recuando para Biscoito. Isso permite que o frontend em internal.kamocrm.com para autenticar Conexões WebSo...
Passar *** ID como parâmetro de consulta para a autenticação WebSocket do subdomínio cruzado
Em vez de confiar em cookies de domínio cruzado (que não funcionam subdomínios), leia o lado do cliente *** cookie e passe- o como uma consulta parâmetro ao con...
Definir *** domínio do cookie para .kamocrm.com para compartilhamento de subdomínios cruzados
Cookie foi definido sem domínio explícito, impedindo-o de ser enviado para media.kamocrm.com para autenticação WebSocket.
Definir *** domínio do cookie para .kamocrm.com para compartilhamento de subdomínios cruzados
O cookie *** foi definido sem um domínio explícito, internal.kamocrm.com. Isso impediu que o cookie fosse enviado para media.kamocrm.com durante WebSocket apert...
Lidar com a vinculação do consumidor NATS velho com a repetição do consumidor único
- Extrair manipulador de mensagens para o método createNatsMessageHandler() - Adicione lógica de repetição com nome de consumidor único quando "Consumidor já vi...
Resolver mensagens de chat, rastreamento de presença e problemas de abertura automática
- Corrigir mensagens que não são recebidas ao tentar novamente a subscrição NATS com nome do consumidor quando ocorre erro de "Consumidor já vinculado" - Corrig...
Resolver o erro do tipo de ícones MUI e compartilhar uma única conexão STOMP WebSocket
- Adicionar a sobreposição de caminhos tsconfig para @mui/icons-material para contornar o ESM quebrado exportações em v7.3.1 que apontam para inexistentes ./esm...
Use ref para membroPanelOpen in openChat para evitar fechamento obsoleto
Quando um usuário abre o painel de membros, clica em um membro para conversar e então fecha o painel antes do retorno da chamada API da sessão de assincronizaçã...
Remove forced WebSocket headers from media middleware
Traefik v3 handles WebSocket Upgrade/Connection headers natively. Remove forced headers that broke non-WebSocket API requests.
Rota MediaServiço de tráfego através Traefik na porta 443
- Adicionar MEDIASERVICE URL env var para acesso a serviços internos de cluster - Corrigir getMediaServiceBaseUrl em 9 rotas API para usar env var primeiro - We...
Route WebSocket através de Traefik na porta 443
- service.yaml: corrigir porta 80→8443 para combinar porta de escuta real do pod - ingressroute.yaml: use scheme https + porto 8443 para infra- estrutura - serv...
Faça com que os feijões de comércio estejam condicionados à disponibilidade do repositório
Acrescentem ao noivado. Ciclo de vida e CommerceService então eles só carregam quando repositórios de comércio são Escaneado. Evita InsatisfeitaDependênciaExcep...
Add system account to all NATS configs
Add $SYS account with admin credentials to k0m1, k1m1, and k2m1 NATS configs. Enables nats CLI cluster management operations (peer removal, step-down, etc.) for...
Usar DNS interno de cluster para conexão NATS
Alterar URL NATS padrão de WireGuard IPs (100.64.x.x) para nats.kamo.svc.cluster.local para o servidor local. Nós remotos (k0m1, k2m1) permanecem em IPs WireGua...
Permitir a inicialização do aplicativo quando o NATS não estiver disponível
Remover @ConditionalOnBean do jetStream() e adicionar @Nullable ao Parâmetro de conexão. Quando natsConnection () retorna null (NATS inalcançável), Primavera já...
Reordenar as cartas estatísticas para corresponder à ordem das páginas
Comunicações → Documentos → Abrir tarefas → História
Remover layout.tsx, corrigir erros de tipo docCount/historyCount
- Excluir layout.tsx que foi incorretamente adicionado (afetaria todo o site) - Reverter page.tsx wrapper div (não é necessário) - Mover o fundo gradiente de vo...
A função do sistema de guarda é Permitir a exclusão de ser alterada
Lidar com a expiração do cookie (401) e extensão determinada pelo servidor TTL
Usar o tempo- limite de sessão por utilizador para *** cookie maxAge ao validar
Actualizar os nomes dos campos do fornecedor do PipelineOrdersTab para corresponder aos DTOs da infra- estrutura
Modificado v.uid → v.id, v.name → v.companyName, e selecionadoVendorId type de número para string para alinhar com CommerceMarketVendor DTO.
Alinhar TipoScript tipos com backend DTOs para mercados de comércio
O ComércioMarket, CommerceMarketVendor e FornecedorCategory TypeScript interfaces usadas nomes de campos errados (uid/name vs id/title, name vs nome da empresa,...
Mercados de tubagem sem carregamento e espaçamento de layout do gestor de mercado
Pipeline estava mostrando "Nenhum mercado de comércio configurado" porque getPOSConfig() Nunca devolveu o campo de mercado. Agora obtém mercados do comércioMark...
Resolver 'u.map não é uma função' nas configurações do POS e atualizar a navegação do Commerce
- Adicionar extração de array defensiva no comércioMarketApi (getMarkets, getVendorCategories, getMarketVendors, seedVendorCategories) para lidar com respostas ...
Resolver o conflito dinâmico da rota Next.js ('id' vs 'market Id')
Mesclar o diretório [marketId] em [id] para rotas API de mercados comerciais. Next.js requer todos os segmentos dinâmicos no mesmo nível de caminho para usar o ...
Resolver erros TypeScript nas abas de pipeline da empresa
- Make toCSV columns parameter opcional com auto-derivação de teclas de objeto - Corrigir downloadChamada de Blob em AquisiçõesTab (número de arg errado, falta ...
Passe os mercados de suporte para painéis, engajamentos e componentes de ações rápidas
Remove duplicate session timeout fields from session types
Aligns with SecurityService change that removes createdAt/expiresIn from Redis session records and tokenExpiration from session info responses. - user-info/rou...
Remove duplicate session timeout system from Redis records
Session expiry is now managed solely by the Redis key TTL. The internal createdAt/expiresIn fields stored inside the Redis value have been removed — they formed...
Update internal layout and styles
- Make main wrapper background transparent so home page fixed background is not covered - Include latest adjustments to automation, security access, and account...
Handle optional effectiveDate and processedAt in DateTimeDisplay
Type error: string | undefined not assignable to string | number | Date. Add null checks before passing to DateTimeDisplay, show em-dash when absent.
Align Commerce submenu with actual Commerce page tabs
- Rename Domain Configuration to Engagement Types - Add Rental Assets, Vendors, Subscription Plans - Update tab param to engagement-types for consistency - Labe...
Advanced datagrids fill 100% of content area
- SettingsView: tab content wrapper overflow hidden, motion.div flex chain so tab content gets bounded height and grids can expand. - PipelineRentalAssetsTab:...
Resilient probes so cluster stays up when one node is offline
- Liveness: tcpSocket on 4222 (do not depend on JetStream meta leader) - Readiness: initialDelay 90s, period 15s, failureThreshold 10 so k0m1+k1m1 can form qu...
Como o que vês no transporte?
Cada uma dessas atualizações pousa automaticamente em seu espaço de trabalho. Comece grátis e veja crescer semana após semana.