KamoCRM

Live Change Log

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

17,500
Total Changes
5,986
Features
5,284
Fixes
30
Projects
Filter by project
All Projects17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
April 12, 2026
Fixkamo-internal

Traseu toate apelurile esig API prin forwardToApi() pentru a remedia eșecurile de salvare

Toți cei 10 responsabili de traseul esig indicau către ESIG SERVICE URL care rezolvă unui proxy kamowsesig-service inexistent. Înlocuiți fiecare handler cu forw...

kamo·6mo 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·6mo 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·6mo ago
Featurekamo-internal

Adaugă opţiunea poziţiei pe strat la modificatorul de filigran (în spatele/ deasupra conţinutului)

- Modificator de semnal de apă câștigă un câmp 'strat': 'în spatele' 'în spate' 'în spate' (defaults to 'behind') - ModifierLayer ia acum un "pass" recuzită ('s...

kamo·6mo ago
Featurekamo-internal

Adaugă modificator de filigran în set de unelte esign

- Tipul modificatorului de filigran: logoType (complet/simplu), startPage, endPage, rotation (−180 - Implicit la logo-ul complet, −45° rotatie, 50% dimensiune, ...

kamo·6mo ago
Featurekamo-internal

Extindeți modificatorul etichetei la grila completă de 8 poziții cu rotație LM/RM

- LabelModifier.position folosește acum ModifierPosition8 (aceeași grilă de 8 poziții ca Numere de Pagină) - LM (Middle Left): fiecare linie redată ca o pilulă ...

kamo·6mo ago
Featurekamo-internal

Adăugați instrumente/modificatoare tab-uri pentru a esigna Toolbox cu suprafeţe de pânză live

- Split Toolbox bara laterală stângă în Tools and Modificators tabs - Fila modificatoare: lista divizată + panoul setărilor (Opțiunea B) - Modificator de numere...

kamo·6mo ago
Fixkamo-internal

Poziţionarea corectă a unghiilor şi restabilirea rotaţiei transforma

Două microfoane în ThumbnailCanvas: 1. Înlocuit înălțime: \ element poziționat Padding-top) cu înălțimea de la lățimea stabilită explicit. Lățimea este acum...

kamo·6mo 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·6mo 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·6mo 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·6mo 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·6mo 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·6mo 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·6mo 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·6mo 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·6mo 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·6mo ago
Fixkamo-internal

Defer set Totalpages până după bucla dim PDF pentru a preveni saturarea lucrătorului PDF.js

Pe un PDF de 50 de pagini, asteptare set TotalPages înainte de getPage () dimension loop mounts Toate cele 50 de componente ThumbnailCanvas imediat. Fiecare sca...

kamo·6mo 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·6mo 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·6mo ago
Refactorkamo-internal

Migrați toate rutele de imagistică API de la SecurityService la TransformationService/DocsService

Încarcă rute acum apelați la serviciul de conversie direct prin CONVERSION SERVICE URL: - Post/api/imagine/upload → /api/conversion/imaging/upload - POST / api/...

kamo·6mo ago
RefactorSecurityService

Elimina ImagingController și fasole/imagine mutat la Transformareservice și DocsService

Încarcă criteriile de evaluare în direct în TransformationService la /api/conversion/imaging/*. Toate obiectivele de management și de descărcare trăiesc acum în...

Kamo·6mo 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·6mo 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·6mo ago
Chorekamo-register

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

- Pin lângă 16.2.3 și eslint-config-next pentru a se potrivi - upgrade typescript to exact 6.0.2, @types/node to ^24 - Înlocuiți mișcarea cadru cu mișcarea ^12 ...

Kamo·6mo 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·6mo ago
RefactorSecurityService

Generație de miniatură delegată la ConversieServicii, elimina dependența de PDFBox

generați șiStoreThumbnails POSTs acum PDF convertit la serviciul de conversie - Nu. Unzips răspunsul, stochează fiecare Degetul mare p {n}.png în MinIO, și publ...

Kamo·6mo ago
FeatureConversionService

Add ThumbnailService and POST **************** endpoint

Accepts a PDF file, renders each page at 150 DPI via PDFBox, packs per-page PNGs into a ZIP (thumb_p0.png, thumb_p1.png, …) and returns it. Centralises all thum...

Kamo·6mo ago
FeatureSecurityService

Generație sincronă per pagină miniatură în timpul uploadului șablonului cu progres granular WS

- Adăugați dependență PDFBox la pom.xml - După stocarea PDF convertit, redați toate paginile prin PDFRenderer și încărcați fiecare ca {id} thumb p{n}.png - Even...

Kamo·6mo ago
Fixkamo-internal

Preveniți stivuirea paginii, fixați tăieturi de miniatură, adăugați miniaturi server-side cu PDF.js Fallback

- Adăugaţi flexShrink: 0 la divs pagină în PdfCanvas astfel încât paginile nu comprima în coloana flex - Adăugaţi flexShrink: 0 la elementele miniatură în Pagin...

kamo·6mo ago
Fixkamo-internal

Redare PDF Eager, normalizare la scară naturală, nici un pergament orizontal

- PdfCanvas: înlocuiți IntersectionObserver cu randare dornic-toate-pagini. Abordarea bazată pe observator nu era de încredere atunci când începe fila de proiec...

kamo·6mo ago
Chorekamo-login

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

- Next.js 16.2.3 cu Turbopack ca server implicit dev - TipScript 6.0.2 cu tinta syntaxaDoar si ES2022 - @types/react@^19 and @types/react-dom@^19 (react 19 type...

Kamo·6mo ago
Fixkamo-internal

Elimina conflictul Child DOM în redarea miniatură PDF

Replace container.innerHTML + apendiceStencils cu un ref. Vechea abordare a fost curăţată prin reacţie Noduri DOM direct, cauzând reconcilierea Reaction pentru ...

kamo·6mo ago
Fixkamo-marketing

Se manipulează planurile aplicabile și se aplicăBillingCycles ca și matrice de șir

Aceste câmpuri sunt tastate ca string[], dar au avut .split(,"") apeluri pe ele, cauzarea de eșecuri de construcție TypeScript.

Kamo·6mo ago
FixESigService

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

Kamo·6mo ago
Fixkamo-marketing

Referinţe Redact *** în display-ul de modă

Kamo·6mo ago
Fixkamo-internal

Restaurează rute proxy la OTK auth, eliminați ajutor esigProxy neutilizate

OTK este mecanismul corect de autism a ocolit modelul de securitate stabilit. Toate rutele proxy esig folosesc acum generaOTK de la apiProxy.ts din nou.

kamo·6mo ago
FixESigService

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

Kamo·6mo ago
Fixkamo-internal

Utilizați antete de sesiune directă în loc de OTK pentru rutele proxy ESigService

Citește *** sesiune de la Redis în Next.js și pass orgId/memberId ca încredere antetele către ESigService prin intermediul K8s DNS interne. Elimină dependenţa O...

kamo·6mo ago
FixESigService

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

Kamo·6mo ago
Fixkamo-internal

Utilizați criteriul de evaluare init pentru a găsi sau crea șablon de imgId pe sarcina editor

Pagina de creare trece imgId în URL. Pagina de editare acum solicită init final pentru a găsi sau crea ESignTemplate, apoi utilizează UUID returnat pentru opera...

kamo·6mo 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