KamoCRM

Live Change Log

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

18,392
Total Changes
6,527
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,392AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,692kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,527Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
August 11, 2026
FixDocsService

Stop shipping a shared credential as a config default

The platform's shared password was baked in as the fallback for DB_PASSWORD and MINIO_ROOT_PASSWORD, so it lived in this repo and in the built image as well as ...

Kamo·3mo ago
August 9, 2026
FixDocsService

Stop renewing the shared *** TTL for idle users

Caught with redis MONITOR: this pod was issuing GET + PEXPIRE against a *** key whose owner had been idle for over an hour, seconds after SecurityService had co...

Kamo·3mo ago
August 7, 2026
FixDocsService

Accept repeated status params so the gateway cannot corrupt the filter

Opening **************** answered "Unknown status: **************** for every member. The member grid sent the bucket as one CSV value. A comma in a query valu...

Kamo·3mo ago
FixDocsService

Never chase a member who already signed, and keep the subject plain

Two behavioural defects in the phase-8 notification path. 1. The reminder sweep ran over OPEN_STATES, which includes AWAITING_OTHERS — "this member finished...

Kamo·3mo ago
August 6, 2026
FixDocsService

Let a failed pending-count read out instead of downgrading it

publishFor caught Exception around countByTeamMemberIdAndStatusIn and turned it into a WARN. That catch was not only around the badge: the query runs inside the...

Kamo·3mo ago
FixDocsService

Guard the destructive imaging paths and make the repair reachable

DELETE /imaging/delete/{imgId} is the one destructive imaging path and was not wired to the issued-document guard. ImageService.deleteDocument authorizes on org...

Kamo·3mo ago
FixDocsService

Stop colleagues reading a member's HR-issued documents

isPerPartyRestrictedAssoc covers only ACCOUNT_MEMBER_VAULT and LOAN, so assoc 1 — SERVICE_APPLICATION, what /settings/member/{id}?tab=docs renders — has no per-...

Kamo·3mo ago
FixDocsService

Resolve the document bucket from ImageAssocType.BUCKET

DocumentService hardcoded "imaging-mydocs" while every other read path went through ImageAssocType.getBucket(). Now that storage is one bucket, point it at the ...

Kamo·3mo ago
FixDocsService

Wire DocsService to ESigService so Deliver stops 503ing

LegalEsignClient.isConfigured() was false in the cluster: neither internal.auth.secret nor legal.esig.service-url was supplied, so Deliver refused every package...

Kamo·3mo ago
FixDocsService

Prove WHOSE signature Finish counts, and report the live one

verify() compared the caller to assignment.teamMemberId but never to the ENVELOPE RECIPIENT's member — it trusted the recipientUid the delivery fan-out wrote. A...

Kamo·3mo ago
FixDocsService

Commit before the fan-out, and stop redeliver reissuing nothing

Redeliver published the new version row, flipped every OPEN assignment to SUPERSEDED, and submitted the reissue from inside that same uncommitted transaction. T...

Kamo·3mo ago
FixDocsService

Widen the read gate to match hrTabs.ts, make a cleared due date actually clear

LegalPackageAccess.requireRead demanded VIEW_EMPLOYEES alone while hrTabs.ts admits the Legal & Compliance tab on VIEW_EMPLOYEES || EDIT_EMPLOYEES || MANAGE_HRS...

Kamo·3mo ago
FixDocsService

Enforce HR rights and make the fingerprint see the e-sign design

All seven /api/docs/legal mappings authorized on org membership alone, so any authenticated member could list, edit, delete and publish legal packages — and aud...

Kamo·3mo ago
FixDocsService

Enforce document/binder collection scope in addItem

BinderService.addItem checked read access and refused VAULT/LOAN documents, but never compared the document's own collection to the binder's, so a hand-crafted ...

Kamo·3mo ago
August 5, 2026
FixDocsService

Mirror Maven Central and retry, so a corrupt transfer stops killing the build

The HR_RESOURCE rebuild failed on hibernate-core:6.5.3.Final with 'Tag mismatch' — a transfer corrupted in flight, not a missing artifact. The shared-lib stage ...

Kamo·3mo ago
August 3, 2026
FixDocsService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·3mo ago
August 2, 2026
FixDocsService

Require a session on POST ****************

The handler took an HttpServletRequest but never used it, carrying the comment "No auth required — internal admin maintenance endpoint". APIService relays /api/...

Kamo·3mo ago
July 22, 2026
FixDocsService

Stop pinning the expired wildcard-kamocrm-com secret

wildcard-kamocrm-com was a legacy multi-SAN secret that cert-manager orphaned when its Certificate was repointed at a per-host secret. Nothing renewed it and it...

Kamo·3mo ago
July 9, 2026
FixDocsService

Folder create/rename 500 on root folders (Map.of null value)

createFolder/renameFolder built the response with Map.of(..."parentId", parentId), which throws NullPointerException when parentId is null (a root folder) — the...

Kamo·4mo ago
July 8, 2026
FixDocsService

Bounds-check assoc-type ordinal lookups (fixes Materials list 500)

DocsService was running a shared-lib built before ImageAssocType.MATERIALS (ordinal 11) was added, so listDocuments' ImageAssocType.values()[11] threw ArrayInde...

Kamo·4mo ago
July 7, 2026
FixDocsService

Serve e-sign editor PDF for any converted doc, incl native PDFs

The e-sign editor (DocumentEditor → PdfCanvas / PageThumbnailSidebar) opens any converted document, not only files uploaded through the sig-template flow. It fe...

Kamo·4mo ago
July 6, 2026
FixDocsService

Generic byte endpoints refuse MLOS per-party docs (vault/loan)

The generic imaging byte endpoints (download / stream / bulk-download / thumbnail) and the binder aggregation authorized only on org + a numeric clearance ceili...

Kamo·4mo ago
FixDocsService

Don't serve soft-deleted documents on /stream and /bulk-download

getDocumentMetadata (used by the stream + bulk-download byte paths) does not filter trashed rows the way downloadDocument does, and a soft delete leaves the Min...

Kamo·4mo ago
July 1, 2026
FixDocsService

URI-encode WOPISrc + trust all api.* WOPI hosts (multi-tenant)

Opening a doc for a non-kamocrm tenant failed with 'unauthorized WOPI host'. Docs's alias_groups only trusted api.kamocrm.com (the Docs-deployment env hardcoded...

Sage·4mo ago
June 30, 2026
FixDocsService

Node-local MinIO + failover template read + ImgDat dedup (fixes new-doc about:blank)

New-document creation hung ~5 min and the new tab stayed at about:blank. Root cause: DocsService pods scheduled on k3m1 read the blank template from MinIO at th...

Sage·4mo ago
June 25, 2026
FixDocsService

Point Docs deployment at k1m1 registry

The Docs-online image host was the bogus **************** (Redis DNS, never a registry), so every DocsService deploy re-applied an unpullable image. Point it at...

Kamo·4mo ago
May 21, 2026
FixDocsService

Include com.kamo.z.shared.binder in @EnableJpaRepositories

DocsService boots with an explicit basePackages list, not classpath scanning, so BinderRepository wasn't being discovered — startup failed with "No qualifying b...

Kamo·5mo ago
April 18, 2026
FixDocsService

Bump kamo-shared-library to 1.4.0

Kamo·6mo ago
April 16, 2026
FixDocsService

Gracefully cancel superseded reconversion jobs on rapid saves

When a document is saved multiple times quickly, each save registers its ImgDat UUID in a ConcurrentHashMap. The async reconversion task checks this at 6 checkp...

Kamo·6mo 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·6mo ago
April 15, 2026
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·7mo ago
FixDocsService

Use RandomAccessReadBuffer instead of ByteArrayInputStream for PDFBox 3.x

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

Kamo·7mo 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·7mo ago
April 13, 2026
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·7mo ago
March 16, 2026
FixDocsService

Use docs-api.* for WOPISrc URL instead of api.*

The WOPI endpoints (/wopi/files/**) live on DocsService, which is exposed at docs-api.kamocrm.com — not api.kamocrm.com (APIService). Docs makes server-side WOP...

Kamo·8mo ago
FixDocsService

Set aliasgroup to api.kamocrm.com and force https WOPISrc

- Docs aliasgroup1 must match the WOPI host (api.kamocrm.com) - WOPISrc URL defaulted to http:// inside K8s; force https and construct api.* hostname from for...

Kamo·8mo ago
FixDocsService

Set MinIO bucket to 'internal' and upload blank templates

The default bucket placeholder was never configured. Use 'internal' bucket which has the blank document templates uploaded.

Kamo·8mo ago
FixDocsService

Remove COPY .mvn/ from Dockerfile to fix CI build

The .mvn directory was empty and untracked, causing builds to fail. Maven is already provided by the base image.

Kamo·8mo ago
FixDocsService

Review fixes - dialect, error handling, CI/CD manifests

- Fix Hibernate dialect to CockroachDialect (matching K8s configmap) - Separate token validation from business logic in checkFileInfo - Add Docs and ingress man...

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