KamoCRM

Live Change Log

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

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
April 12, 2026
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·5mo ago
RefactorSecurityService

Delegate thumbnail generation to ConversionService, remove PDFBox dependency

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

Kamo·5mo 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·5mo ago
FeatureSecurityService

Synchronous per-page thumbnail generation during template upload with granular WS progress

- Add PDFBox dependency to pom.xml - After storing converted PDF, render all pages via PDFRenderer and upload each as {id}_thumb_p{n}.png - Publish generating_t...

Kamo·5mo ago
Fixkamo-internal

Prevent page stacking, fix thumbnail slivers, add server-side thumbnails with PDF.js fallback

- Add flexShrink: 0 to page divs in PdfCanvas so pages don't compress in flex column - Add flexShrink: 0 to thumbnail items in PageThumbnailSidebar for same rea...

kamo·5mo ago
Fixkamo-internal

Eager PDF rendering, natural scale normalisation, no horizontal scroll

- PdfCanvas: replace IntersectionObserver with eager render-all-pages. The observer-based approach was unreliable when the design tab starts with display:no...

kamo·5mo ago
Chorekamo-login

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

- Next.js 16.2.3 with Turbopack as default dev server - TypeScript 6.0.2 with erasableSyntaxOnly and ES2022 target - @types/react@^19 and @types/react-dom@^19 (...

Kamo·5mo ago
Fixkamo-internal

Eliminate removeChild DOM conflict in PDF thumbnail rendering

Replace container.innerHTML + appendChild pattern in ThumbnailCanvas with a React-managed <canvas> ref. The old approach cleared React-owned DOM nodes directly,...

kamo·5mo ago
Fixkamo-marketing

Handle applicablePlanIds and applicableBillingCycles as string arrays

These fields are typed as string[] but had .split(",") calls on them, causing TypeScript build failures.

Kamo·5mo 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·5mo ago
Fixkamo-marketing

Redact *** references in changelog display

Kamo·5mo ago
Fixkamo-internal

Revert proxy routes to OTK auth, remove unused esigProxy helper

OTK is the correct auth mechanism — the prior session-header approach bypassed the established security pattern. All esig proxy routes now use generateOTK from ...

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

Use direct session headers instead of OTK for ESigService proxy routes

Read *** session from Redis in Next.js and pass orgId/memberId as trusted headers to ESigService via internal K8s DNS. Removes OTK dependency.

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

Use init endpoint to find-or-create template by imgId on editor load

The create page passes imgId in the URL. The edit page now calls the init endpoint to find or create the ESignTemplate, then uses the returned UUID for design o...

kamo·5mo ago
FeatureESigService

Add template init endpoint to find-or-create templates by imgId

The create page uploads to the imaging system and redirects with imgId. The edit page now calls POST /api/esig/templates/init with the imgId to find an existing...

Kamo·5mo ago
FixESigService

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.

Kamo·5mo ago
April 11, 2026
Featurekamo-internal

Add e-signature template editor with design canvas, signers, and versioning

Complete rewrite of /doc/sign/edit page with tabbed interface (Settings & Signers, Design), PDF.js canvas with draggable field overlay, annotation tools, signer...

kamo·5mo ago
FeatureESigService

Initial ESigService Spring Boot project for e-signature template management

New microservice with REST API for e-signature template CRUD, signer management, design version snapshots, and field link tracking. Includes OTK auth filter, Fo...

Kamo·5mo ago
Featurekamo-shared-library

Add e-signature template entities, enums, and repositories

New JPA entities for the e-signature template design system: ESignTemplate, ESignTemplateSigner, ESignTemplateDesignVersion, and ESignTemplateFieldLink with sup...

Kamo·5mo ago
Fixkamo-internal

Correct field name mapping between backend and frontend for access level API

Map backend securityLevelId→accessLevel, isOrganizationOwner→isOwner, memberType→isTeamMember in API route. Fix right check to use EDIT_MEMBER_ACCESS_LEVEL inst...

kamo·5mo ago
ChoreSecurityService

Add ESigService to changelog public projects list

Kamo·5mo ago
Fixkamo-marketing

Update fallback offer end date to 2026-04-26

Kamo·5mo ago
FixInitializerService

Set 18DOFF promotion end date to 2026-04-26

Kamo·5mo ago
Fixkamo-marketing

Add static fallback for offer page when subscription API unavailable

The **************** table doesn't exist in production yet, so the API returns an error. Fall back to hardcoded promotion and plan data so the offer page works ...

Kamo·5mo ago
Fixkamo-marketing

Update ApiPromotion type to match new List<String> backend response

applicablePlanIds and applicableBillingCycles are now arrays, not JSON strings.

Kamo·5mo ago
FixInitializerService

Extend 18DOFF promotion end date to 2026-12-31

The April 14 end date was causing the offer page to show as expired.

Kamo·5mo ago
Chorekamo-marketing

Test webhook delivery

Kamo·5mo ago
FixAPIService

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

Kamo·5mo ago
Fixkamo-marketing

Redact *** header name in changelog display

Kamo·5mo ago
ChoreSecurityService

Remove backfill scripts

Kamo·5mo ago
Featurekamo-marketing

Server-side stats for real totals, infinite scroll, accurate filter counts

Stats bar and filter pill counts now come from /api/changelog/public/stats (real DB aggregates, not loaded-page counts). Replaced Load More button with Intersec...

Kamo·5mo ago
FeatureSecurityService

Add webhook secret validation to changelog endpoint

Defense-in-depth: validates *** header on the SecurityService side in addition to APIService gateway validation.

Kamo·5mo ago
FeatureAPIService

Expose changelog webhook through APIService with secret key auth

Adds POST /api/changelog/webhook route that validates *** header before forwarding to SecurityService. Secret configured via CHANGELOG_WEBHOOK_SECRET env var / ...

Kamo·5mo 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