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 16, 2026
FeatureDocsService

Populate createdByName in DocumentMetadata from uploader member

convertToMetadata() now reads **************** and sets createdByName so the Uploaded By column in the doc manager shows the actual uploader's name.

Kamo·5mo ago
Featurekamo-shared-library

Track uploaded-by member on Img entity

Add createdByMember (ManyToOne) field to Img so the uploader is persisted at upload time. ImageService.uploadDocument() now sets it from the calling member. Hib...

Kamo·5mo ago
Fixkamo-shared-library

Resolve security_level SQL error caused by duplicate MEMBER_TYPE column in Hibernate 6

Member.java mapped MEMBER_TYPE both as @DiscriminatorColumn and as an explicit @Column field. Hibernate 6 selected the column twice in the parent table projecti...

Kamo·5mo ago
FeatureDocsService

Expose thumb and converted file sizes in DocumentMetadata

Adds thumbFileSize, convertedFileSize, and convertedThumbFileSize to the DocumentMetadata DTO and populates them in convertToMetadata() from the ImgDat and its ...

Kamo·5mo ago
Featurekamo-internal

Add stored size tooltip to Size cell in doc manager

Tooltip shows the breakdown of actual storage used per document: original file, thumbnails (original + converted combined), and converted doc — plus a total. Th...

kamo·5mo ago
Fixkamo-internal

Skip loading screen for file downloads in NavigationInterceptor

Blob URLs and links with the download attribute never cause page navigation, so the global click handler now returns early for these — preventing the "Loading K...

kamo·5mo ago
Fixkamo-internal

Surface save errors and revert optimistic update in email provider selector

When saving a non-configurable provider (KamoMail, ParentOrg, NotConfigured) failed, the error was set in state but never displayed in the list view, and the op...

kamo·5mo ago
Featurekamo-internal

Move doc manager action buttons to toolbar search row

- Removed Create Document, Upload Document, Bulk Upload, and Refresh from the gradient hero header - Hero header is now title/description only - Create Document...

kamo·5mo ago
FixSecurityService

Correct security_level column reference in login SQL

security_level is on the members table (m), not member_team_member (e). The wrong alias e.security_level caused the entire SQL to fail silently, so memberType w...

Kamo·5mo ago
Fixkamo-internal

Restore team-member/member permission model for share dialog

Team members (memberType=TEAM_MEMBER) bypass all gates. Regular members are gated by SHARE_DOCS_* rights. Legacy sessions without memberType get temporary full ...

kamo·5mo ago
Fixkamo-internal

Allow any authenticated member to share documents

Remove role-based gate on share dialog — any logged-in member can share. The previous check required isTeamMember (from session memberType) or specific SHARE_DO...

kamo·5mo ago
FixDocsService

Correct member name access in resolveAlias endpoint

member.getNameFirst() doesn't exist — name is on User.getName(). Use getMemberDisplayName() helper which correctly navigates the member -> user -> EmbNameFull p...

Kamo·5mo ago
FeatureSecurityService

Store memberType in Redis session at login

Adds CASE WHEN e.id IS NOT NULL THEN 'TEAM_MEMBER' ELSE 'MEMBER' END to the login SQL query and passes the result through createSession into Redis, so frontend ...

Kamo·5mo ago
Fixkamo-internal

Import blake3 from blake3/browser to initialize WASM correctly

blake3/esm/browser requires manual WASM provisioning; blake3/browser does it automatically.

kamo·5mo ago
FeatureDocsService

Add document sharing endpoints to ImagingController

Adds: shares/by-image, shares/create, shares/update/{id}, shares/delete/{id}, shares/shared-with-me, **************** **************** shares/resolve-alias

Kamo·5mo ago
Featurekamo-login

Add ?next= forward parameter support for post-login redirect

Captures ?next=/path from URL and carries it through both manual login and auto-login flows, appending it to the OTK redirect URL so kamo-internal can redirect ...

Kamo·5mo ago
Featurekamo-internal

Implement document sharing system with share dialog, Shared With Me tab, and shareable links

- Add ShareDocumentDialog with permission-based member/team/dept/jobTitle recipient picker - Wire Share button in DocManager toolbar (MY_DOCS only) - Add Shared...

kamo·5mo ago
Featurekamo-shared-library

Add doc sharing security rights (SHARE_DOCS_SEARCH_MEMBERS, SHARE_DOCS_ALIAS_MEMBERS, SHARE_DOCS_SEARCH_TEAM_MEMBERS, SHARE_DOCS_ALIAS_TEAM_MEMBERS)

New RoleRightType entries (IDs 108-111) under ServiceType.DOCS to control member document sharing permissions with search vs alias-only access patterns.

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

Real BLAKE3 hashing and pre-upload dedup check in doc manager

- Replace BLAKE3 placeholder with real blake3 WASM in fileHashing.ts - Add check-hashes and register-existing API proxy routes - MultiFileUploader now checks se...

kamo·5mo ago
FeatureConversionService

Add check-hashes and register-existing endpoints for upload dedup

- POST /check-hashes: client sends hashes before upload, server returns whether file exists - POST /register-existing: creates Img record pointing to existing I...

Kamo·5mo ago
Featurekamo-shared-library

Add real BLAKE3 hashing, pre-upload dedup check, and org-scoped dedup

- Replace BLAKE3 placeholder with real BouncyCastle Blake3Digest in HashUtils - Add dedupScope column to ImgOrgAssoc (GLOBAL or ORG, default GLOBAL) - Add org-s...

Kamo·5mo ago
Fixkamo-internal

Gate Folder and Doc Type columns/fields on allowFolders and allowDocType

When folder or doc type features are disabled for an assoc type, hide the corresponding datagrid columns and upload form fields consistently.

kamo·5mo ago
Fixkamo-internal

Align upload fields with consistent MUI TextFields, always show folder and doc type

Replace raw <select> elements with MUI TextField select for consistent styling and alignment with the Description field. Folder and Doc Type fields are now alwa...

kamo·5mo ago
FixDocsService

Remove auth requirement from backfill-thumbnails endpoint

This is an internal admin maintenance endpoint that needs to be callable from within the cluster without user authentication.

Kamo·5mo ago
Fixkamo-internal

Accept all file types for upload, use server-side blacklist instead of whitelist

Replace hardcoded ACCEPTED_EXTENSIONS whitelist with server-provided extBlackList from assoc-config. All file types are now uploadable unless explicitly blackli...

kamo·5mo ago
FeatureDocsService

Include extBlackList in assoc-config response

Kamo·5mo ago
Featurekamo-internal

Add proxy route for thumbnail backfill endpoint

kamo·5mo ago
FeatureDocsService

Add thumbnail backfill endpoint for existing converted documents

POST /backfill-thumbnails processes up to 20 converted documents that are missing thumbnails per call, generating per-page PNGs and storing them in MinIO. Call ...

Kamo·5mo ago
FeatureConversionService

Add async conversion + thumbnail generation for regular document uploads

Previously only template uploads triggered the conversion/thumbnail pipeline. Now regular uploads also convert to PDF and generate per-page thumbnails asynchron...

Kamo·5mo ago
FixDocsService

Use RandomAccessReadBuffer instead of ByteArrayInputStream for PDFBox 3.x

**************** was removed in PDFBox 3.0 — use RandomAccessReadBuffer(byte[]) which implements RandomAccessRead.

Kamo·5mo ago
CIDocsService

Re-trigger build after k0m1 restart

Kamo·5mo ago
CIkamo-internal

Re-trigger build after k0m1 restart

kamo·5mo ago
FixDocsService

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

Kamo·5mo ago
Featurekamo-internal

Redesign Prepare Selected tab with reordering, preview, and bulk download

Replace mock Options panel with functional document preparation UI. Documents are reorderable via drag-and-drop and arrow buttons, with checkboxes for deselecti...

kamo·5mo ago
FeatureDocsService

Add bulk download (merged PDF/ZIP) and general-purpose thumbnails

Remove e-signature template guard from thumbnail endpoint so all documents can serve per-page thumbnails. Add isThumbAvail and thumbPageCount to DocumentMetadat...

Kamo·5mo ago
April 13, 2026
Fixkamo-marketing

Use 24-hour window instead of UTC date for today's changelog count

The server runs in UTC, so at night in US timezones toISOString() returns tomorrow's date and no commits match. Using a 24h rolling window instead.

Kamo·5mo ago
Fixkamo-marketing

Force-dynamic on changelog API routes to prevent stale date caching

Next.js was statically caching these GET route handlers at build time, freezing new Date() to the build date so today's changelog count never updated.

Kamo·5mo ago
Fixkamo-internal

Use systemDocsOnly flag for System Docs tab, show all docs in Original Docs

Original Docs tab now shows all docs for this org/assocType without filtering by assocObjectId. System Docs tab sends systemDocsOnly: true to only get docs with...

kamo·5mo ago
FixDocsService

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

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