Reconstruir para assinaturaPlanFeatureDTO.unit
O catálogo armazena uma unidade por recurso e o DTO agora a carrega, então o preço página pode renderizar "15 GB por usuário" em vez de um nu 15. A lista partil...
Três linhas de catálogo que fizeram a página de preços contradiz-se
O assento conta. O título da placa de plano lê max seats ("Até 5 usuários") enquanto o lista de características por baixo da mesma e a tabela de comparação ler ...
Transportar a unidade do recurso plano para as superfícies de compra
O catálogo armazenou uma unidade por recurso o tempo todo - "GB/usuário", "usuários", "contactos" - e o DTO do plano-feature deixou cair, então cada superfície ...
A página contradisse-se, e a calculadora faturava e-mail por usuário
O distintivo incluído deu o plano errado. Todos os quatro módulos por assento estão incluídos em Negócios e Enterprise, e o crachá escolheu o primeiro ID incluí...
O FreePBX está desactualizado (Decisão 4 revista)
Sem migração e sem convivência permanente. KamoPBX permanece em k3m1 cujo host netns está vazio, então ele não precisa de nenhuma das portas do FreePBX e sem de...
Plano SW6a, e dividir SW6 em três
A especificação chama SW6 de 'fiar a UI terminada', que assumiu a existência de uma infra- estrutura Para ligar. ServiceJob, ServiceVisit e ServiceLineItem nova...
Pin as duas regras de forma que falham silenciosamente
Ambos decidem o que NÃO enviar, que é a metade de um formulário sem sintoma visível quando corre mal. Uma linha de remessas em branco não deve tornar-se um zer...
Um analisador de pedido, não três
Os três controladores de escrita clínica cada um cresceu sua própria corda/uuid/integer/ Ajudantes de datas no prazo de uma semana entre si — idênticos, excepto...
Planos de implementação do KamoPBX (programa + 9 fases)
Decomposto num plano por fase; um plano único não produziria software de trabalho até o fim. Detalhes TDD de tamanho completo: Porta de infraestrutura de fase ...
Reconstruir contra a correção de dedup de armazenamento
Pega na biblioteca de kamo-shared d21e01ce. uploadDocument — o caminho por trás do membro documentos, divulgações hipotecárias, quadros de imagens e fluxos de m...
Reconstruir contra a correção de envio do documento
Pega kamo-shared-library d21e01ce, que pousou minutos após o anterior Construir. O caminho chat-attachment já tem f848f394; isto carrega o segundo metade — uplo...
Reconstruir contra a correção de dedup de armazenamento
Pega na biblioteca de kamo-shared d21e01ce. uploadDocument criou seu ImgDat com isMissing=false ANTES de enviar os bytes, e seu @Transactional não rolou voltar ...
Reconstruir contra a correção de dedup de armazenamento
Pega na biblioteca de kamo-shared d21e01ce. uploadDocument criou seu ImgDat com isMissing=false ANTES de enviar os bytes, e seu @Transactional não rolou voltar ...
Record KamoPBX decisões — KAZOO confirmado, k3m1 colocação, ACDc, Tier 3 rebrand
Seis perguntas abertas respondidas: 1. O KAZOO é a rota; o hardware pertenceu, assim que o enquadramento do custo removido inteiramente. 2. Um nó/cluster agora,...
O envio do documento publica a sua linha apenas uma vez que os bytes estejam em terra
O upload bufferedDocument foi a única loja que escreveu seu ImgDat com isMissing=false ANTES de enviar qualquer coisa, e simplesmente re-defini-lo para falso ap...
Reconstruir contra a correção de dedup de armazenamento
Pega na biblioteca de kamo-shared-f848f394. Um anexo de conversa cujo envio falhou à esquerda uma linha ImgDat que depois faz uploads do mesmo arquivo deduplica...
Um envio falhou não pode tornar-se uma correspondência de dedup
Um membro enviou um .wav de 11 MB para um bate-papo, tem "Não é possível invocar ObjectWriteResponse.etag() porque a resposta é nula", enviou-a novamente e a o ...
Baixar taxa morta.empréstimos e priceturbo.com de provisionamento estático
Ambos tiveram desafios ACME pendentes por 47-54 dias. A tabela de preços propriedade que proxy para foi escalado para 0 desde 2026-08-04, então nada pode respon...
Limite a pilha Go com o GOMEMLIMIT e declare um pedido de memória real
A causa do acidente não foi uma fuga. O estado estacionário de 485Mi que Continuava a tropeçar no velho limite 512Mi eram duas coisas normais empilhadas: ~350M...
Fechar SW5
Seis partidas. O mais nítido: o proxy do livro de tarefas não pôde ser copiado de o proxy de aspas, que exporta PATCH e no PUT — uma cópia verbatim seria fizera...
Trocar a saudação de entrada para KamoCRM-Main-Intro-2
Enviado como um novo arquivo em vez de substituir o antigo, então voltando é uma mudança de uma linha para KAMO ATTENDANT INTRO mais um reload dialplan — não Re...
Reconstruir contra a biblioteca partilhada com kamo para o livro de tarefas SW5
Um compromisso vazio. ServiceTaskBookService e as quatro entidades do livro de tarefas ao vivo na biblioteca compartilhada; ServiceTaskBookController não pode r...
Autor de um livro de tarefas fixo, preço por minuto
Substitui o painel de placeholder SW5 pela superfície de criação real: três sub- views em uma aba — livros, categorias, entradas — seguindo o SubView switcher M...
BaseLosController não autorizado()/proibido() existem
Uma tarefa breve disse a um implementador aqueles ajudantes foram inventados e não existe. requireOrgld genuinamente não; esses dois fazem, declarados protegido...
API do livro de tarefas no momento certo
SW5 Tarefa 3, controlador metade. CRUD para livros, categorias, tarefas e opções, mais GET /{bookUid}/tasks/by-code/{code} - a pesquisa de uma citação ou ordem ...
Serviço de livro de tarefas com CRUD e resolução de código
SW5 Tarefa 3, metade da biblioteca. ServiceTaskBookService expõe livros, categorias, tarefas e opções por trás de uma API de org-scoped, além de resolverTaskByC...
Precificação, impostos e níveis de preços para os mercados de serviços
Um mercado de SERVIÇO tem exatamente três abas — Visão geral, fornecedores, acordos. Clientes, Impostos e Envios e Descontos e Preços foram todos fechados em Co...
Aplicar uma remessa a uma reclamação
"Dinheiro não aplicado" é dinheiro que o pagador enviou que ninguém anexado a uma reivindicação, e a fila só podia ser vista. PAGAMENTOS PÓS-INSERVAÇÃO operação...
Encontrar uma reivindicação pelo número de um pagador cotações
Publicar uma remessa precisa da reivindicação que ela resolve, e uma remessa não leva id interno — apenas o número da prática enviada. Sem esta pesquisa, aplica...
Uma chamada de entrada lê corretamente e respeita a pílula status
Três coisas erradas com a janela da ferramenta de softphone. O número foi pintado exatamente como o INVITE o carregava, então um chamador chegou como "+1555987...
Quatro coisas que podiam ser vistas e não feitas
Cada um destes tinha um endpoint de trabalho, uma função do cliente, e nenhuma maneira para uma pessoa para alcançá-lo. A fechar um ciclo de pedidos. A fila de...
Nada devolveu um ID da conta, por isso nada pode ser retirado
Retirar o acesso ao portal e conceder um proxy ambos têm um ID de conta, e não endpoint alguma vez retornou um. Uma prática poderia convidar um paciente para o ...
Grave a armadilha de enum-ordering o sucesso de implantação PBX
Semeando uma linha de catálogo cujo pricing model é um novo valor de enum faz essa linha ilegível para qualquer serviço ainda em uma antiga compartilhamento-lib...
Reconstruir contra os preços de lib compartilhadoModel.PER EXTENSION
A imagem em execução precede o valor de enum, então lendo o catálogo PBX com duas sementes linhas (pricing model = 'PER EXTENSION') lança no enum parse - e porq...
Adicionar o livro de tarefas de taxa fixa
Um catálogo de tarefas a preços cujas entradas têm mão-de-obra tanto preços uma linha e tamanhos uma visita. ServiceLineItem.taskCode, desembarcado em SW3, junt...
Restaurar o fechamento do SW4, perdido para uma edição de árvore de trabalho antiga
O commit anterior editou a cópia no disco deste plano, que antecedeu o Secção enviada — essa secção foi anexada a uma cópia do scratchpad e desembarcada De lá, ...
Aumente o limite de memória para 1Gi e relaxe o tempo limite da sonda de liveness
Traefik sentou-se em ~485Mi contra um limite de 512Mi (95%). O cgroup gravado 47836 memory.max hits com oom kill 0 — nunca morto por OOM, porque suficiente da p...
Aplicando o DDL abre uma janela 40001 — observe, não reinicie
Bater uma versão de catálogo deixa conexões JDBC agrupadas segurando a antiga e a próxima consulta através de cada falha SQLState 40001, que Hibernate faz não t...
Leitura e atualização da lista de preços falou com o endpoint errado
Dois erros de cliente/servidor silenciosos fizeram a entrada da lista de preços de varejo caminho de gravação do ecrã morto: - a lista de entradas foi desembru...
Por-extensão esquema de faturamento PBX, backfill e catálogo
PbxBillingSchemaMigration é @Order(0) porque adiciona uma coluna. A entidade compartilhada-biblioteca mapeia phone cost mode a partir do momento em que a compil...
Bill telefone serviço pela extensão
PreçosModelo.PER EXTENSÃO, sua própria chave de quantidade reservada, um alocador, um reconciliador noturno, um portão de remoção e a API sumária - o gêmeo do t...
Give the phone add-ons a phone icon
PER_EXTENSION already renders as "extension/month" - addOnUnitLabel handles it and needs no change. The icon map does: it is keyed on the lowercased catalog cod...
Mostrar o custo das extensões, onde as extensões são gerenciadas
ExtensionUsagePanel na página de estatísticas, ao lado da caixa de correio e painéis de armazenamento: contagem por classe, a taxa de catálogo, o total mensal e...
Tempo limite da fila e "pressionar 0" ambos caem para voicemail
Substitui o Dial (+) laminado à mão Ir para fila loop com app queue. A decisão fator é DTMF: dígitos NÃO são combinados com o dialplan enquanto Dial() é rodando...
Contar as extensões que um servidor de terceiros não cobra
Filas, IVRs, grupos de anéis e peças sobresselentes são as extensões a que ninguém é atribuído, e sob a regra de terceiros eles são livres - doze de uma org de ...
A varredura de extensão não apaga mais cada atribuição de membro
MemberVoipConfigController.put escreve uma atribuição para dois lugares - - e Em seguida, limpou o segundo no seu próximo passe. Não provedor armazena IDs de me...
Contar extensões de telefone Billable
Adiciona o gêmeo de telefone do agregador per-mailbox: PbxBillingClass com um Comutador VoipProviderType exaustivo e nenhum braço padrão, OrgPbxBillingAggregato...
Fila hold-music tocando 8000 e 8080 simultaneamente
Oito faixas de espera carregadas como a classe 'kamocrm-hold' MOH, embaralhada. A ordem aleatória vem de `random=1` na linha na tabela 'música' do FreePBX, que ...
Uma reação comutada duas vezes ao mesmo tempo é um no-op, não um 500
setReaction lido, em seguida, salvo, em seguida, pegou a violação de restrição a leitura era suposto prevenir — o que não funciona: a violação surge no flush, a...
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.