KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

18,419
Total Changes
6,549
Features
5,540
Fixes
30
Projects
Filter by project
All Projects18,419AIService276APIService178BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService623InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService621RAGService79SecurityService2,000TranslateService62VOIPService265VectorService11kamo-apps27kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,702kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,829kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,549Fix5,540Other1,001Performance174Refactor283Revert23Style45Test175Upgrade1
April 13, 2026
FixConversionService

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...

Kamo·7mo ago
FeatureDocsService

Add isConverted, hasDesignVersion, isHidden to DocumentMetadata response

The /api/docs/imaging/list endpoint now returns conversion status from ImgDat and design version status (isSigTemplate) so the frontend can enable/disable the E...

Kamo·7mo ago
Chorekamo-internal

Remove /doc/sign/create and /doc/sign/edit routes

Editor is now embedded inline in the doc manager page.

kamo·7mo ago
Refactorkamo-internal

Add memberType to user info, rename templateName to docDescription in template settings store

Add memberType field from Member entity discriminator column to the user-info API response and useUserInfo hook. Rename templateName to docDescription in templa...

kamo·7mo ago
April 12, 2026
Featurekamo-internal

Fix watermark above-layer z-index, add page right-click menu, add page above/below, improve drag indicator

- ModifierLayer: 'above' pass now uses zIndex 20 so watermarks render on top of fields and annotations - PdfCanvas: right-click context menu with rotate, delete...

kamo·7mo ago
Fixkamo-internal

Place dropped field at ghost's exact visual position

Use active.rect.current.translated (the DragOverlay ghost's client rect) instead matches the translated rect, so the field now lands precisely where the user re...

kamo·7mo ago
Featurekamo-internal

Drag-and-drop field placement, floating annotation toolbar, and PDF page spacing

- Replace click-to-place with @dnd-kit drag-and-drop for all signature, identity, and input field tools; drag ghost matches the exact visual appearance of the...

kamo·7mo ago
RevertAPIService

Remove incorrectly added esig gateway route

Kamo·7mo ago
Fixkamo-internal

Route all esig API calls through forwardToApi() to fix save failures

All 10 esig route handlers were pointing to ESIG_SERVICE_URL which resolves to a non-existent kamowsesig-service proxy. Replace every handler with forwardToApi(...

kamo·7mo ago
FixESigService

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...

Kamo·7mo ago
FeatureAPIService

Add /api/esig/** gateway routing to ESigService

Route all /api/esig/** requests through the existing API gateway to the dedicated ESigService (kamowsesig-service) instead of the non-existent proxy target. Add...

Kamo·7mo ago
Featurekamo-internal

Add layer position option to Watermark modifier (behind / above content)

- WatermarkModifier gains a 'layer' field: 'behind' | 'above' (defaults to 'behind') - ModifierLayer now takes a 'pass' prop ('below' | 'above'): - below pass...

kamo·7mo ago
Featurekamo-internal

Add Watermark modifier to esign toolbox

- WatermarkModifier type: logoType (full/simple), startPage, endPage, rotation (−180–180), size (10–90% of page width), opacity (2–60%), solidColor toggle, colo...

kamo·7mo ago
Featurekamo-internal

Extend Label modifier to full 8-position grid with LM/RM rotation

- LabelModifier.position now uses ModifierPosition8 (same 8-position grid as Page Numbers) - LM (Middle Left): each line rendered as a vertical pill with writin...

kamo·7mo ago
Featurekamo-internal

Add Tools/Modifiers tabs to esign Toolbox with live canvas overlays

- Split Toolbox left sidebar into Tools and Modifiers tabs - Modifiers tab: split list + settings panel (Option B) - Page Numbers modifier: start/end page, 8-...

kamo·7mo ago
Fixkamo-internal

Correct rotated thumbnail positioning and restore rotation transform

Two bugs in ThumbnailCanvas: 1. Replaced `height: \`${displayAspect * 100}%\`` (percentage height on abs- positioned element — unreliable when containing bl...

kamo·7mo ago
Featurekamo-internal

Fix floating zoom control visibility and polish thumbnail placeholders

- Move floating zoom controls outside the scroll container and use position:absolute so they remain visible at all times regardless of scroll position; offs...

kamo·7mo ago
Featurekamo-internal

Page selection with animated glow border synced between canvas and thumbnail sidebar

- DesignTab holds selectedPageIndex as the single source of truth - Clicking any page in the main canvas selects it (onPageSelect) - Clicking a thumbnail select...

kamo·7mo ago
Fixkamo-internal

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...

kamo·7mo ago
Fixkamo-internal

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...

kamo·7mo ago
Fixkamo-internal

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...

kamo·7mo ago
Featurekamo-internal

Auto-select first signer, fix zoom control scrollbar gap, animate properties panel

- Toolbox auto-selects the first signer's UID when signers go from 0→1 - Canvas container uses scrollbar-gutter: stable so the sticky zoom/undo control mainta...

kamo·7mo ago
Featurekamo-internal

Reorder tabs, gate field tools by signer, redesign Settings & Signers tab

- Design is now the first tab; Settings & Signers is second - Toolbox shows "Add Signer" CTA (navigates to Settings) when no signers exist - Signature Tools, Id...

kamo·7mo ago
Featurekamo-internal

Render field controls as actual-looking form elements with signer color tinting

Each field type now renders a visual representation of the real control (text input, checkbox, toggle, dropdown, radio group, date picker, etc.) tinted with the...

kamo·7mo ago
Fixkamo-internal

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, ...

kamo·7mo ago
Fixkamo-internal

Defer setTotalPages until after PDF dim loop to prevent PDF.js worker saturation

On a 50-page PDF, calling setTotalPages before the getPage() dimension loop mounts all 50 ThumbnailCanvas components immediately. Each falls back to PDF.js (ser...

kamo·7mo ago
FixConversionService

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...

Kamo·7mo ago
FixConversionService

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...

Kamo·7mo ago
Refactorkamo-internal

Migrate all imaging API routes from SecurityService to ConversionService/DocsService

Upload routes now call ConversionService directly via CONVERSION_SERVICE_URL: - POST /api/imaging/upload → /api/conversion/imaging/upload - POST /api/imaging/te...

kamo·7mo ago
RefactorSecurityService

Remove ImagingController and beans/imaging — moved to ConversionService and DocsService

Upload endpoints now live in ConversionService at /api/conversion/imaging/*. All management and download endpoints now live in DocsService at /api/docs/imaging/...

Kamo·7mo ago
FeatureDocsService

Add imaging management endpoints — move all non-upload imaging from SecurityService

- Add 17 imaging DTOs to beans/imaging/ (folders, documents, templates, updates) - Add ImagingController at /api/docs/imaging with all management + download end...

Kamo·7mo ago
FeatureConversionService

Add imaging upload endpoints — move all upload logic from SecurityService

- Add JPA, Redis, NATS, kamo-shared-library, JJWT, commons-io, jackson-hibernate6 to pom.xml - Add datasource, Redis master/replica, NATS, MinIO config to appli...

Kamo·7mo ago
Chorekamo-register

Upgrade to Next.js 16.2.3, TypeScript 6.0.2, Node 24, React 19 types

- Pin next to 16.2.3 and eslint-config-next to match - Upgrade typescript to exact 6.0.2, @types/node to ^24 - Replace framer-motion with motion ^12 (motion/rea...

Kamo·7mo ago
RefactorDaemonService

Delegate thumbnail generation to ConversionService, remove PDFBox dependency

ThumbnailGenerationJob now POSTs the converted PDF to ConversionService **************** unzips the response, and stores each thumb_p{n}.png in MinIO. PDFBox re...

Kamo·7mo ago

Like what you see shipping?

All of it arrives in your workspace on its own. Start on the free plan and read this page again in a month.

Start Free ForeverView Pricing