KamoCRM

Live Change Log

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

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
October 14, 2026
FixEmailService

A member's mail goes out under their name, not a bare address

The From header carried a name only when the request did, and the composer sends the mailbox's display_name: set for an SI's mailbox when it is made, blank on a...

Kamo·1w ago
FeatureVOIPService

Ai-lines names the number a missed call can be returned to

Each line of /ai-lines?orgId= carries callbackNumber: the SI's own line, else a number assigned to it, else its phone server's main number, else the org's only ...

Kamo·1w ago
Featurekamo-internal

The editor offers JOIN_MEETING, so an organization can set its own rule for an SI joining meetings

Owner 2026-10-14: joining one of the organization's meetings is its own action class (shared-lib 2d2f2efd), not PLACE_CALL. ACTION_CLASSES lists it after the tw...

Kamo·1w ago
FixMCPGatewayService

Meetings_join is JOIN_MEETING, not PLACE_CALL, and an unnamed JOIN_MEETING does not ask

Owner 2026-10-14: Luna (crm) asked the owner to approve joining a meeting he had told her to join; meetings_join was classed PLACE_CALL, so the charter's "Placi...

Kamo·1w ago
FeatureAPIService

Carry website visitors' Live Support files through the gateway

- POST **************** the multipart "files" parts are re-sent to MediaService as a fresh multipart body, streamed from the container's spooled copies (the...

Kamo·1w ago
FeatureMediaService

Website visitors can attach files in Live Support — safe types only

A visitor on a lender's website can now send documents, images, zips and ordinary audio/video to the agent in the Live Support tab, and read back both their own...

Kamo·1w ago
FeatureKlusterServices

Postfix takes the name mail.kamouniverse.com once it resolves here

kamouniverse.com is the platform's sending domain, but the server still introduced itself as mail.kamocrm.com in its EHLO, Received headers and bounces. Postfix...

Kamo·1w ago
Featurekamo-shared-library

JOIN_MEETING, joining one of the organization's meetings, is its own action class and not PLACE_CALL

Owner 2026-10-14: Luna (crm) asked the owner to approve joining the meeting he had just told her to join. meetings_join was classed PLACE_CALL, so the charter's...

Kamo·1w ago
Fixkamo-internal

Picking a non-default alias domain From no longer fails the send

Every alias-domain row in the From picker is the member's primary mailbox under another domain, but only the default one was mapped to a primary From. Any other...

Kamo·1w ago
FixEmailService

An alias-domain From row names the mailbox behind it

The From picker offers the member's primary mailbox again on each org alias domain, with an id like <mailbox>:alias-domain:<domain> to keep it unique in the lis...

Kamo·1w ago
FeatureAPIService

Serve Tesla's partner key path and exempt it from access rules (IoT SP08-D2)

GET **************** forwards sessionless (identity headers and Authorization dropped) to IoTService **************** the exact path (container- normalised) is ...

Kamo·1w ago
Fixkamo-internal

Mirror the honest default Live Support welcome

Matches kamo-shared-library a82f3c78: the team is notified only once the visitor sends a message, so the default no longer says someone will be with them shortl...

Kamo·1w ago
Fixkamo-shared-library

The default Live Support welcome no longer promises someone 'shortly'

Nobody on the team is notified until the visitor sends their first message, so the default now says that: send a message to reach the team, they're notified whe...

Kamo·1w ago
Fixkamo-internal

Send the chosen From even when it is the primary row

The default org alias domain (kamouniverse.com) is offered in the From picker as the member's primary, and the composer left any primary From off the request. W...

Kamo·1w ago
FixMCPGatewayService

Meetings_join is "Join a meeting", not a phone call, and a meeting's link is joined as the room it names

Owner, 2026-10-14: SIs asked to join a meeting answered that they could not "join by phone" because "there's no dial-in", and asked for a room with dial-in enab...

Kamo·1w ago
FeatureMediaService

An SI's own join (M1) carries the meeting's dial-in, for when it cannot be put straight into the room

2026-10-14: SIs asked to join a meeting told people "there's no dial-in" and asked for another way in. kamoai-service now picks the way in itself: straight into...

Kamo·1w ago
Featurekamo-shared-library

SP12 RPM code rules, period math and threshold math

Kamo·1w ago
FixMCPGatewayService

An SI acts on the request its run was woken by without having to cite it, and K3 hears the tool's rights so a colleague who may do it themselves can direct it

Owner 2026-10-14: Luna (crm) asked the owner to approve joining the meeting he had just told her to join. Evidence: run 47cc1908 (NEW_CHAT, woken by his message...

Kamo·1w ago
Featurekamo-shared-library

SP03 grant entities, repositories and activity kinds

Kamo·1w ago
Featurekamo-shared-library

SP03 grant enums, device type rank and catalogue lookup

IotDeviceType (SP01's copy) gains HEALTH_VITALS, storedType and a position map; SP01's tests are kept beside SP03's.

Kamo·1w ago
Fixkamo-shared-library

SubscribeQueueBatch binds a WorkQueue stream with DeliverPolicy.All

IOT_EVENTS is a WorkQueue stream (IoT SP00-D6) and NATS refuses any other deliver policy there (10101), so iot-service crashlooped at boot. The policy is read f...

Kamo·1w ago
FixDocsService

A resume whose bytes are already stored records the key they were stored under

Same rule as the other content-addressed attach paths (shared library abaec95b): fileExt is part of the storage key, so a resume already held under another name...

Kamo·1w ago
FixMediaService

Every attachment of stored content records the key it was stored under, via the library

The chat-only StoredContentExtension (299a911) becomes ImageService.storageExtension in the shared library, and the other MediaService paths that attach content...

Kamo·1w ago
Fixkamo-shared-library

An Img keeps the extension its content is stored under — on dedup and on rename

fileExt is part of the storage key (<imgDatId>.<ext>) every reader builds, but dedup matches on the BYTES. Content already held arriving under another name (a ....

Kamo·1w ago
Fixkamo-internal

The lit Settings row follows the page's own tab

The rail lit the row the member last clicked, so switching tabs inside a settings page (Docs -> General from the page's tab strip) left the light on the old row...

Kamo·1w ago
FeatureKlusterServices

Scrape kamowsiot-service on /actuator/prometheus

IoT SP01 Task 34: the kamo-actuator job keeps kamowsiot-service beside kamowssecurity-service, so the four IoT alerts (iot-service's own PrometheusRule) have da...

Kamo·1w ago
FeatureDaemonService

Daemon jobs for the IoTService tick (every 60 s) and nightly retention purge

IoT SP01 Task 30. Landed after SP02's 75007b2, which already mounts iot-internal-auth, sets iot.service.url and creates IotJobClient with a generic post(job, pa...

Kamo·1w ago
FeatureMediaService

Network-backed STOMP authorisation, subscription registry and revocation for the IoT topics

IoT SP01 Task 33. k8s/deployment.yaml gains the iot-internal-auth envFrom (after mlos-internal-auth): origin/main did not mount it yet (Step 1 gate fallback).

Kamo·1w ago
FeatureMediaService

Iot.live.> to STOMP relay and the static guards for the IoT topics

IoT SP01 Task 32. The IoT SEND refusals sit just above the voicemail comment so that comment stays attached to its own line.

Kamo·1w ago
Docskamo-internal

Task 16 ledger completeness (both test orgs) and Task 17 Luna untouched

Task 16 (A15): sp00verify complete (gatedCalls 74 = eventsMatched 74; outsideToolPlane ESCALATE 12, SEND 7; 51 SI chat lines paired 1:1 with their events, 44 To...

Kamo·1w ago
Featurekamo-shared-library

SP01 enums, safety rules, command transitions, event ids, geohash, device-type rank

IoT SP01 Task 2, on SP02's vocabulary and catalogue (a2cc3154, 36cc42b6).

Kamo·1w ago
Featurekamo-shared-library

SP01 value columns, org settings, connection, site, space entities and repositories

IoT SP01 Task 3. A whole number reads back at scale 0 (210, not 210.0) so a stored value round-trips equal.

Kamo·1w ago
Featurekamo-shared-library

SP01 device, function, state, activity and write-once command entities

IoT SP01 Task 4. IotDevice.providerDeviceType is the provider's suggested primary capability KEY (String): SP02 ships no device-type enum and DiscoveredDevice c...

Kamo·1w ago
TestSecurityService

The SP01 IoT entities map on Hibernate 6.2.13, the line SecurityService runs

IoT SP01 Task 7 (mapping half). EmbeddedAttributeMapping is not in org.hibernate.metamodel.mapping on 6.2; the test reads the address through EmbeddableValuedMo...

Kamo·1w 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