Add esign repos to JPA repository scan so ESignTemplateRepository bean is found
DocsService was crashing on startup because ESignTemplateRepository lives in com.kamo.z.shared.esign.repos which wasn't included in the @EnableJpaRepositories s...
Usar a janela 24 horas em vez da data UTC para a contagem do changelog de hoje
O servidor é executado em UTC, então à noite em fusos horários dos EUA toISOString() retorna A data de amanhã e nenhum compromisso coincide. Ao invés disso, usa...
Força dinâmica nas rotas do Changelog API para evitar o cache de datas antigas
Next.js foi estaticamente caching estes manipuladores de rota GET no tempo de construção, congelando o Date() novo para a data de compilação para que a contagem...
Usar o systemDocsOnly flag for System Docs tab, mostrar todos os documentos no Original Docs
A página Docs original agora mostra todos os documentos para este org/assocType sem filtragem por assocObjectId. A aba System Docs envia o sistemaDocsOnly: true...
Use **************** for hasDesignVersion, add systemDocsOnly filter
hasDesignVersion now checks if an esign template exists with current_design_version > 0, instead of using isSigTemplate which is true for all uploads through th...
Assoc por omissãoObjectId para o ID do membro actual para a filtragem adequada da aba doc
Quando não é fornecido nenhum parâmetro de URL oid, páginas Docs originais e Docs modificados agora consulta pelo ID do membro atual, enquanto System Docs consu...
Add @JsonIgnoreProperties to UploadTemplateRequest to prevent hash null on unknown fields
The frontend sends accessLevel, description, folderId, docTypeId in the metadata JSON. Jackson was failing to parse the entire metadata object when encountering...
Separar a obtenção de dados para páginas originais/modificadas/doc do sistema
Levantar o índice z da barra de anotações para 1000 para que ele sempre renderize os elementos acima da página
Lugar deixado campo na posição visual exata do fantasma
Use active.rect.current.translated (o rect do cliente do DragOverlay) em vez disso corresponde ao rect traduzido, então o campo agora pousa precisamente onde o ...
Remapear o sinal de campoUids quando a infra- estrutura retorna novos UIDs singer após salvar
Roteie todas as chamadas da API esig diretamente para o ESigService via DNS K8s
Roteie todas as chamadas da API do esig através do forwardToApi() para corrigir falhas de gravação
Todos os 10 manipuladores de rota esig estavam apontando para ESIG SERVICE URL que resolve a um proxy de serviço kamowsesig inexistente. Substituir cada manipul...
Replace upsertSigners with full delete+insert to handle frontend temp UUIDs
The frontend assigns temporary crypto.randomUUID() values to newly-added signers before any backend call. The previous upsert-by-uid logic would throw 404 for t...
Mostrar apenas a dica do formato do número de página quando estiver seleccionado o Personalizado
Alternar preview-banner-text para fluxo em linha, de modo que o link changelog fica na mesma linha
Forçar o link changelog em linha para que ele flua com o texto do banner
Posicionamento de miniaturas girados correto e transformada de rotação de restauração
Dois erros em MiniaturaCanvas: 1. Altura substituída: \`${displayAspect * 100}%\`` (altura percentual no abs- elemento posicionado – não confiável quando conté...
Move scroll ownership from PdfCanvas to canvasContainerRef
PdfCanvas root Box previously had overflow-auto + h-full, making it its own scroll container. This meant: - scrollbarGutter: stable on canvasContainerRef had no...
Fit to Width calculates actual container width instead of resetting to zoom 1
Reads **************** (which accounts for the stable scrollbar gutter) and the page's natural width via **************** then computes fitZoom = (availableWidt...
Replace all hardcoded purple with var(--color-primary) on Settings & Signers page
Signers icon, icon background, count badge, Add Signer buttons, Add First Signer button, empty-state illustration tint, add-another hover, and the ALL_OF_TYPE s...
Remove fixed height and scroll bars from field properties panel
The panel had two vertical scrollbars: 1. DesignTab wrapper had height: 200 + overflowY: auto 2. FieldPropertiesPanel root had height: 200 + overflow: hidden, ...
Derrotar setTotalPages até depois de PDF loop dim para evitar a saturação do trabalhador PDF.js
Em um PDF de 50 páginas, chamando setTotalPages antes das montagens do loop getPage() todos os componentes 50 MiniaturaCanvas imediatamente. Cada um volta para ...
Expand component scan and add full datasource/JPA/Redis/MinIO config
ConversionServiceApplication was only scanning com.kamo.ConversionService, missing all shared library beans (ImageService, MinIOStorageService, MemberRepository...
Add kamo-shared-library build stage to resolve missing dependency
The Dockerfile was trying to fetch kamo-shared-library from Maven Central, which doesn't exist there. Mirror the SecurityService pattern: clone the shared libra...
Evitar empilhamento de página, corrigir lascas de miniatura, adicionar miniaturas do lado do servidor com PDF.js back
- Adicione flexShrink: 0 divs de página em PdfCanvas para que as páginas não comprimam na coluna flex - Adicionar flexShrink: 0 a itens de miniaturas em PageThu...
Renderização de PDF ansioso, normalização de escala natural, sem rolagem horizontal
- PdfCanvas: substitua IntersectionObserver por renderizações ávidas. A abordagem baseada no observador não era confiável quando a guia de design começa com dis...
Eliminar o conflito de DOM em PDF
Substituir container.innerHTML + apêndicePadrão infantil em ThumbnailCanvas com um ref <canvas> gerido por React. A abordagem antiga descartou a propriedade do ...
Manipulação aplicávelPlanIds e aplicávelBillingCycles como arrays de cordas
Estes campos são digitados como string[] mas tinha .split(",") chama-os, causando falhas de compilação TypeScript.
Add CockroachDB transaction retry for template init endpoint
CockroachDB serializable isolation can trigger RETRY_SERIALIZABLE on the read-then-write pattern in initTemplate. Retries up to 3 times with backoff when detect...
Reverter as rotas do proxy para a autenticação OTK, remover o helper esigProxy não utilizado
OTK é o mecanismo de autenticação correcto — a abordagem anterior de cabeça de sessão ignorou o padrão de segurança estabelecido. Todas as rotas de proxy do esi...
Correct OTK Redis key format and add imaging template list endpoint
OTK keys use OTK<id> and ***<id> (no colon) matching the Next.js proxy. Added POST /api/esig/templates/list to query imaging templates via shared library ImgRep...
Usar cabeçalhos diretos de sessão em vez de OTK para rotas proxy EsigService
Leia *** sessão de Redis em Next.js e passe orgId/memberId como confiável cabeçalhos para ESigService via DNS interno K8s. Remove a dependência OTK.
Replace OTK auth with trusted session headers for internal K8s calls
ESigService is internal — the Next.js backend reads the session from Redis and passes orgId/memberId/userId as X-Org-Id, X-Member-Id, X-User-Id headers. No OTK ...
Usar o endpoint init para encontrar ou criar um modelo pelo imgId na carga do editor
A página de criação passa imgId no URL. A página de edição agora chama a init endpoint para encontrar ou criar o ESignTemplate, retornou UUID para operações de ...
Scan all shared library repository packages to resolve bean dependencies
ComponentScan picks up shared library services which depend on repos in donotmodify.dao.repos and commerce packages — must scan those too.
Remove .mvn/ copy from Dockerfile — directory does not exist in this project
Mapeamento correto do nome do campo entre a infraestrutura e a interface para a API de nível de acesso
Segurança de backend do mapaLevelId→accessLevel, isOrganizationOwner→isOwner, memberType→isTeamMember in API route. Corrigir a verificação correta para usar EDI...
Adicionar back estático para página de oferta quando a API de assinatura não estiver disponível
A mesa ainda não existe em produção. então a API retorna um erro. Recuar para a promoção codificada e planejar dados assim, a página de oferta funciona independ...
Atualizar o tipo ApiPromotion para corresponder à nova resposta da infraestrutura List<String>
aplicávelPlanIds e AplicávelBillingCycles são agora arrays, não strings JSON.
Extend 18DOFF promotion end date to 2026-12-31
The April 14 end date was causing the offer page to show as expired.
Remover validação secreta do webhook redundante, APIService lida com a autenticação HMAC
Validate Forgejo HMAC-SHA256 signature instead of plain secret header
Forgejo sends webhook secret as X-Gitea-Signature / X-Forgejo-Signature HMAC-SHA256 hash, not as a plain header value. Read body, verify HMAC, then forward to S...
Forçar a página changelog a renderizar dinamicamente, não estaticamente em tempo de compilação
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.