KamoCRM

Live Change Log

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

18,391
Total Changes
6,526
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,391AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,691kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,526Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
November 8, 2026
FixSecurityService

Outbreak alerts reach the platform owner; import and rate-sheet detections name the member

Every platform operator holds MANAGE_PLATFORM_ANTIVIRUS only implicitly (owner floor), so the explicit holder list was empty and an outbreak told nobody. Recipi...

Kamo·3d ago
Fixkamo-internal

A market customer is deactivated, never deleted — and the dialog says so

The Customers tab offered Delete with "This cannot be undone" and a type-to-confirm box, while the server only switches the account off (its orders and history ...

Kamo·3d ago
Fixkamo-shared-library

A customer added or edited in market settings keeps its name, email and phone

**************** ignored firstName, lastName, email and phone, so the market Customers tab created empty accounts and its edits to the person never saved. Prese...

Kamo·3d ago
Fixkamo-internal

Request Withdrawal reads commission-service's own gate on the withdrawals list first

commission-service, the side that enforces, now attaches 'gate' to the member's withdrawals read and fails closed ('could not ask' is blocked, with its own sent...

Kamo·3d ago
Fixkamo-internal

"Upload One I Already Completed" opens DocsService's reviewed upload request

DocsService answers POST **************** with a reviewed "upload your completed copy" assignment. The checklist buttons carry the requirement to the sign wizar...

Kamo·3d ago
Fixkamo-internal

Read DocsService's own shapes — counts, fromLibrary, per-member records, assign, filter

- Requirement tallies come as counts {onFile, inProgress, missing}; a Platform Library requirement is fromLibrary + key. Matrix cells that do not apply to a m...

Kamo·3d ago
FixSecurityService

Stamp a vendor on every credit pull so a reseller order saves

Connection.VENDOR is NOT NULL; a reseller key (Xactus, Credit Plus, MeridianLink, CBC Innovis, Factual Data) mapped to no ConnectionVendor, so the pull ran and ...

Kamo·3d ago
Fixkamo-shared-library

A reseller credit pull records a vendor instead of failing to save

Connection.VENDOR is NOT NULL, but CreditOrderService only stamped a vendor when the key was a direct bureau. Every reseller key (Xactus, Credit Plus, MeridianL...

Kamo·3d ago
Fixkamo-internal

Drop the duplicated dynamicRooms field (unblocks the build)

Two SIS commits each declared SiSectionDef.dynamicRooms with the same comment; tsc fails with "Duplicate identifier 'dynamicRooms'" (run 2314) and no kamo-inter...

Kamo·3d ago
Fixkamo-internal

Resource previews stream through the app instead of an unreachable MinIO link

KBService now hands out /api/kb/media/{id}/content as presignedUrl (it was a MinIO signature for the in-cluster host, which no browser can resolve). This adds t...

Kamo·3d ago
FixKBService

Resources upload to a real bucket and stream back through the app

The resource library has never stored a file. KbMediaService wrote to the constant bucket "kb" — two characters, below S3's three-character minimum — so minio-j...

Kamo·3d ago
Fixkamo-internal

Align with the live SecurityService API — 'switching on' while scanning is off, member names on threat rows

API_LIVE.md: overview.protected=false means scanning is not enabled yet, so the Center shows a calm 'Antivirus is switching on' instead of 'catching up' (which ...

Kamo·3d ago
Fixkamo-internal

Type the Safety tips' articles as help article paths (unblocks the build)

HelpArticleLink takes a HelpArticlePath; the record widened every entry to string, which failed the type check and stopped every kamo-internal deploy since SIS9...

Kamo·3d ago
Fixkamo-shared-library

A subscription can only be ordered or priced from a catalog on offer to the org

createOrder and calculatePrice looked a plan up by id alone, so a member of one tenant could order, or read the pricing of, another tenant's plan. A plan is now...

Kamo·3d ago
Fixkamo-internal

Unblock the i18n guard on the Record a Delivery dialog

check-i18n-keys resolved t("stillToCome", {count}) in ReceiveDialogBody against the lines namespace ("Still to Come", no placeholder) and failed every kamo-inte...

Kamo·3d ago
FixMCPGatewayService

Commerce_request_rental names the renter's account

SecurityService now refuses a rental request without a customer account (every rental has a renter), so the tool takes a required accountUid and passes it on. T...

Kamo·3d ago
Fixkamo-internal

The member's package button names what is actually owed

A Quick Request that only asks for uploads showed "Continue Signing" with nothing to sign. memberActionFor now labels from the row's new signableOutstandingCoun...

Kamo·3d ago
Fixkamo-shared-library

BLAKE3-256 that is 32 bytes on every BouncyCastle on the classpath

new Blake3Digest(256) is 256 BITS on bcprov 1.78 but 256 BYTES on bcprov-jdk15on 1.70, which this library brings and which loads FIRST in services that also dec...

Kamo·3d ago
FixDocsService

Certificates name people by name and email, never by member id

The Executed Package Certificate and the Review Certificate printed raw member ids ("Sam Supervisor (1200096283021512387)"). They now show the name plus a human...

Kamo·3d ago
FixESigService

A 40001 while preparing completion notices no longer rolls the signature back

The first press of Finish failed with a 500 and the retry succeeded. Completion notices were composed INSIDE the signing transaction under a catch-all: their re...

Kamo·3d ago
FixDocsService

An approved package is filed, not left EXECUTION_INCOMPLETE

**************** called imgDatRepository.save on the ImgDat that uploadDocument returned from its own transaction. The entity is detached, so save() merges it a...

Kamo·3d ago
November 7, 2026
FixAIService

An SI's budget alert opens its Workbench room (SIS10)

The deep link was the bare profile; it now names the SI's Workbench room, where its budget is.

Kamo·3d ago
FixDocsService

Reviewer notices skip the platform System User

The System User is an administrator of every organization, so it holds REVIEW_LEGAL_SUBMISSIONS everywhere and every submission in every org mailed hr.package_n...

Kamo·3d ago
FixDocsService

The SI pre-check card settles when a package has a No Review item

The pre-check reads SUBMITTED submissions only, and an item whose review is off is sealed ACCEPTED at finish, so its files were never read. The review workspace...

Kamo·3d ago
FixDocsService

Legal, careers and training emails present EmailService's own secret

DocsService sent X-Internal-Auth from internal.auth.secret, which is ESigService's secret (***). EmailService's InternalAuthFilter compares against mlos-interna...

Kamo·3d ago
Fixkamo-internal

Status words and white-on-status fills read at AA, from three theme tokens

axe in the Review Studio still found three spots under 4.5:1: the rail's "1 file" on the selected item's brand tint (4.39), white on the pressed Needs Correctio...

Kamo·3d ago
Fixkamo-internal

The pale-brand spots the live sweep still found: chat windows, calendar ink, heroes, the setup pill (SIS1)

Second live pass with a pale brand (#d6f74d): - Chat/tool window chrome (ChatBoxStyles tokens, ToolWindowShell title/icon, the window buttons, terminal/camera...

Kamo·3d ago
FixDocsService

Send phone JPEGs to ConversionService so they arrive upright

A portrait phone photo is stored on its side with an EXIF orientation tag. LegalUploadStore converted JPEGs in-process with ImageIO, which ignores the tag, so a...

Kamo·3d ago
FixConversionService

Convert iPhone HEIC photos to PDF, and turn phone photos upright

Every HEIC a member uploaded failed: convert-to-pdf only treated png/jpg/tiff/bmp/gif as images, so a .heic fell through to Docs, which cannot open HEIF and ans...

Kamo·3d ago
Fixkamo-internal

The Usage tips no longer point to the hub's old Usage tab (SIS4)

Usage is the one Spend view now; the tip that sent people to the SI Workforce hub's Usage tab for each SI's cost described a screen that is the same page.

Kamo·3d ago
Fixkamo-internal

Every org's colour reads at AA in hand-made CSS too: brand text, words on brand fills, the nav chrome (SIS1)

The live sweep with a pale brand showed the root MUI fix was not enough: hand-made CSS drew the brand as TEXT and white ON the brand directly, so a light organi...

Kamo·3d ago
Fixkamo-internal

At the 12-language limit the other languages stay readable (SIS4)

They were greyed out like disabled controls (axe: 10 contrast failures); now they read normally, dashed and aria-disabled, with the note saying why they cannot ...

Kamo·3d ago
Fixkamo-internal

Polish from the screenshot sweep

Assistant tab pads itself; a layer that cannot be read says so in plain words; the 'locked above' note reads at AA; Who Gets What names a limit-forced value; sh...

Kamo·3d ago
FixAIService

Who Gets What says when a limit decided a value

A forced 'confirm every change' or 'memory off' answers source LIMIT in layers-preview instead of Kamo's default.

Kamo·3d ago
Fixkamo-internal

One Add label and full page width on the layered settings

SIS3: the four screens say Add A Different Setting (the shared words) and run the full page width.

Kamo·3d ago
Fixkamo-internal

Words on the brand fill read on a pale brand in Contacts and Calendar too (SIS1)

The live sweep with a pale brand (#d6f74d) showed the root theme's contained buttons black-on-lime, but the Contacts and Calendar scopes still put var(--on-prim...

Kamo·3d ago
Fixkamo-internal

The SI settings shell's Usage page is the one Spend view (SIS4)

Usage opens UsageDashboard (the old Usage & Overview tab is gone): people who read usage (VIEW_AI_USAGE) see the organization's totals, people who view the SI w...

Kamo·3d ago
Fixkamo-internal

SIS4 bug fixes — one Spend view, no dead switch, budgets and limits agree, languages, Spoken Line Reviews in Platform settings, plain words

- Usage: the broken Usage & Overview tab (expected a shape AIService never sent, errors read as zeros) is gone; the one Spend view (UsageDashboard) gains the ...

Kamo·3d ago
Fixkamo-internal

Members by id, the 30 MB limit, a HEIC fallback and the sign-again note

DocsService sends member and reviewer photos as null, so every member on the review surfaces is drawn with MemberChipById (photo and name from the member card)....

Kamo·3d ago
Fixkamo-internal

The Review Studio is a viewer when the submission is no longer waiting for review

Decided, withdrawn or replaced submissions open read-only: no pens, no verdicts, no draft saves and no Approve/Return — each would only be refused by DocsServic...

Kamo·3d ago
FixAIService

Drop the dead auto-select switch, and let the monthly budget default reach the job description's limit

SIS4. "Auto-select best available model" was saved and never read: the settings API no longer shows or changes it (the column stays, new rows keep its old defau...

Kamo·3d ago
FixInitializerService

Attestation uniqueness is per (assignment, round)

HR review lets a returned package be finished again, and each Finish writes its own attestation linked to the previous round. Ensure the (assignment_uid, round)...

Kamo·3d ago
FixMediaService

A refused Zoom Server-to-Server app is explained in plain words on the SI-joins check (SIE10FU)

The live check showed Zoom's raw "ZOOM returned 400: invalid_client" to the admin.

Kamo·3d ago
Fixkamo-internal

One place for meeting providers: SI joins live in Provider Setup (SIE10FU)

Owner 2026-11-07: meeting providers are configured on Provider Setup; SIE10's separate "SI Meeting Joins" tab duplicated its provider cards, setup form, secrets...

Kamo·3d 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