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...
Используйте 24-часовое окно вместо даты UTC для сегодняшнего счета витрины
Сервер работает в UTC, поэтому ночью в часовых поясах США к ISOString() возвращается Завтрашний день и никакого матча. Вместо этого используется 24-часовое окно...
Силовая динамика на маршрутах Changelog API для предотвращения кэширования устаревших дат
Next.js статически кэшировал эти обработчики маршрутов GET во время сборки. Замораживание новой даты () до даты сборки, поэтому сегодняшнее количество изменений...
Используйте флаг SystemDocsOnly для вкладки System Docs, покажите все документы в Original Docs
Оригинальная вкладка Docs теперь показывает все документы для этого типа без Фильтрация по AssocObjectId. На вкладке System Docs отправляется SystemDocsOnly: tr...
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...
Default assocObjectId to current Member ID для правильной фильтрации вкладок doc
Если парам URL не указан, закладки Original Docs и Modified Docs теперь запрашивается идентификатором текущего члена, в то время как System Docs запрашивает чис...
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...
Поднимите панель инструментов аннотации z-index до 1000, чтобы она всегда отображала элементы над страницей
Место выпало поле в точном визуальном положении призрака
Вместо этого используйте active.rect.current.translated (клиент DragOverlay) соответствует переведенной прямой, поэтому поле теперь приземляется именно там, где...
Remap field signerUids, когда backend возвращает новые UID после сохранения
Маршрутизация всех вызовов API esig через forwardToApi() для исправления сбоев сохранения
Все 10 обработчиков маршрута Esig указывали на ESIG SERVICE URL, который разрешает к несуществующему доверенному лицу камовсига. Заменить каждого куратора forwa...
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...
Только покажите намёк на токен формата номера страницы при выборе Custom
Переключите предпросмотр-баннер-текст на встроенный поток, чтобы ссылка changelog находилась на одной линии
Корректировка поворотного положения миниатюры и восстановление преобразования вращения
Два бага в ThumbnailCanvas: 1. Заменить "высота: \"${displayAspect * 100}%\" (процентная высота на абс- позиционируемый элемент — ненадежный, когда высота блок...
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, ...
Откажитесь от установкиTotalPages до тех пор, пока PDF не затухнет, чтобы предотвратить насыщение рабочего PDF.js
На 50-страничном PDF вызов setTotalPages перед установкой петли размерности getPage() Все 50 компонентов ThumbnailCanvas немедленно. Каждый возвращается в PDF.j...
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...
Предотвратите укладку страниц, исправьте миниатюры, добавьте миниатюры на стороне сервера с резервным копированием PDF.js
Добавить flexShrink: 0 на страницы divs в PdfCanvas, чтобы страницы не сжимались в гибких столбцах Добавить flexShrink: 0 к миниатюрам в PageThumbnailSidebar по...
Стремительный PDF-рендеринг, нормализация естественного масштаба, отсутствие горизонтальной прокрутки
- PdfCanvas: замените IntersectionObserver на полные рендеринга страницы. Подход, основанный на наблюдении, был ненадежным при запуске вкладки дизайна. с диспле...
Устранение конфликта Child DOM в рендеринге миниатюр PDF
Заменить container.innerHTML + appendChild pattern в ThumbnailCanvas React-managed <canvas> ref. Старый подход очистил React Узлы DOM напрямую, в результате чег...
Обработка применимых PlanIds и применимых BillingCycles в качестве струнных массивов
Эти поля набираются в виде строки, но на них есть .split("). Вызывает сбои в сборке 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...
Вернуть прокси-маршруты в OTK auth, удалить неиспользуемый помощник esigProxy
OTK — это правильный механизм аута — подход предыдущего заголовка сессии. Обойдя установленный шаблон безопасности. Все прокси-маршруты esig используются Снова ...
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...
Используйте заголовки сеансов вместо OTK для прокси-маршрутов ESigService
Читайте *** сессию от Redis в Next.js и передайте orgId/memberId как надежный Заголовки в ESigService через внутренние K8s DNS. Устранение зависимости 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 ...
Используйте конечную точку init для поиска или создания шаблона imgId на загрузке редактора
Страница создания проходит imgId в URL. Страница редактирования теперь называется конечная точка init, чтобы найти или создать шаблон ESign, затем использует Ве...
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
Правильное отображение имени поля между backend и frontend для API уровня доступа
Map backend securityLevelId→accessLevel, isOrganizationOwner→isOwner, memberType→isTeamMember в API маршруте. Исправьте правильную проверку на использование EDI...
Добавить статическую резервную копию для страницы предложения, когда API подписки недоступен
Таблица **************** ещё не существует в производстве, API возвращает ошибку. Возвращение к жестко закодированным данным о продвижении и планировании Таким ...
Обновление типа ApiPromotion в соответствии с новым ответом List<String> backend
применимые PlanIds и применимые BillingCycles теперь являются массивами, а не строками JSON.
Extend 18DOFF promotion end date to 2026-12-31
The April 14 end date was causing the offer page to show as expired.
Удалите избыточную проверку секретности веб-хука, APIService обрабатывает HMAC auth
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...
Страница Force changelog отображается динамически, а не статически во время сборки
Как вы видите судоходство?
Каждое из этих обновлений автоматически попадает в ваше рабочее пространство. Начните бесплатно и смотрите, как он растет неделю за неделей.