KamoCRM

Live Change Log

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

17,500
Total Changes
5,986
Features
5,284
Fixes
30
Projects
Filter by project
All Projects17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
October 15, 2026
ChoreVOIPService

Delete the do-not-contact backfill after its run

Ran 2026-10-15 05:07Z; a second run inserted nothing (re-runnable, ON CONFLICT). Entries added (each with its ADDED event): CALL 2 (VOICE_OPT_OUT: +194929899...

Kamo·1w ago
FeatureEmailService

Email unsubscribes reach the do-not-contact list, and campaigns, shares and an SI's mail check it

Owner 2026-10-15: one company-wide do-not-contact list per organization, scoped per channel; an email unsubscribe blocks email only. - Writer: MirroringEmailOp...

Kamo·1w ago
FixMCPGatewayService

An uncited wake stands for an outside call only when its words ask for a call

The run's own wake (RequestVerifier.inferFromRun) is the request for a call to a colleague, but someone outside the org is rung on a teammate's name, with no co...

Kamo·1w ago
FixMCPGatewayService

Phone_call calls whoever a team member named, looked up by name, with no approval and no consent gate, and never anyone else

Owner 2026-10-15: "When a supervisor, or any team member for that matter, tells SI to call someone else on the team, they should call them. No questions asked, ...

Kamo·1w ago
FeatureVOIPService

The organization's do-not-contact list — VOIPService owns it, texts check it, STOP and START write it

Owner 2026-10-15: one company-wide do-not-contact list per organization, scoped per channel ("Only that channel"). - DDL **************** (DO_NOT_CONTACT, DO_N...

Kamo·1w ago
Featurekamo-shared-library

The organization's do-not-contact list, per channel

One company-wide list per organization (owner 2026-10-15), scoped per channel: a CALL entry blocks calls only, SMS texts only, EMAIL email only. Package com.kam...

Kamo·1w ago
Featurekamo-shared-library

AiCallEventType.TEAM_REQUEST records who asked for an SI's call and the message to deliver

Owner 2026-10-15: when a team member asks an SI to call someone, the SI calls them with no approval and no consent gate, says who it is calling for, delivers th...

Kamo·1w ago
Featurekamo-internal

SI routing shows "Phone calls and meetings" — the VOICE_CONVERSATION slot's own model order, with a hint that names its fallback order

Owner 2026-10-15: SI phone calls on their own model order, chat unchanged. routingApi mirrors shared-lib AiRoutingSlot (ROUTING_SLOTS) and the slot entry's kind...

Kamo·1w ago
Featurekamo-internal

A member may let SI colleagues greet them with the short form on internal calls

SI call disclosure, owner decision 11 (2026-10-15): the SI colleagues card on the member's own profile (Work room) gets "Short greeting on calls with SI team me...

Kamo·1w ago
Fixkamo-internal

An edit that changes nothing cannot be saved

Opening an event and pressing Save without touching anything rewrote it — and, for a meeting with guests, could ask whether to tell them about a change that did...

Kamo·1w ago
FeatureAIService

SI phone calls and meetings route on their own model order — kamo:voice[:light|medium|heavy] on E2 routes as chat in the VOICE_CONVERSATION slot, and Settings → SI routing lists, offers and saves the slot

Owner 2026-10-15: "Use gpt-6-sol for calls"; chat and everything else stay on their order. - ModelSelector: kamo:voice and kamo:voice:<quality> (chat only) are ...

Kamo·1w ago
Featurekamo-shared-library

A routing slot for SI phone calls and meetings — **************** routes as TEXT_GENERATION with TOOL_CALLING required, and CapabilityRequest carries the slot (null for every existing call)

Owner 2026-10-15: SI phone calls get their own model order; chat and everything else stay as they are. A slot is not a model capability: its order is stored in ...

Kamo·1w ago
FeatureSecurityService

A person may let SI colleagues greet them with the short form on internal calls

SI call disclosure, owner decision 11 (2026-10-15): the colleague short form ("Hi Sage, it's Luna, the automated assistant.") is used only for active staff who ...

Kamo·1w ago
FixMediaService

Adding somebody never opens what was already said to them

POST /sessions/{guid}/members always grew the room in place, so a third person added to a two-person chat could read everything the first two had said. It now r...

Kamo·1w ago
Fixkamo-internal

An add the server moved to another chat opens in its own window

Adding somebody to a conversation that already has messages no longer grows that room (MediaService now moves the add to the chat for the new set of people). Op...

Kamo·1w ago
Featurekamo-internal

A meeting in a message — add it once, and see what its organiser changed

The strip that said "Not on your calendar" and nothing else becomes the meeting's card: a date tile, the time in the member's zone with the organiser's own cloc...

Kamo·1w ago
FeatureEmailService

A meeting that arrives by email asks once, then keeps itself current

A new invitation in the mail reader now offers "Add to calendar". Once a member has added it, the organiser's follow-ups apply on their own: a moved time, a new...

Kamo·1w ago
October 14, 2026
FixBillingService

Seat the organization's existing staff when it starts paying

Turning PAID seated only the buyer; everyone else hit "This needs a licensed seat" on the product just bought until the owner assigned seats by hand. On the tra...

Kamo·1w ago
Fixkamo-shared-library

Seat an organization's existing staff when its subscription is set up

A comp, like a first purchase, created its seats UNASSIGNED and seated the owner alone. Everyone else waited for the owner to hand seats out in Billing, which n...

Kamo·1w ago
FixEmailService

A member's mail carries the name on their member profile

9351aac named a nameless From with the mailbox row's display_name first, and kept any name the request sent. The composer sends that same row name, and rows can...

Kamo·1w ago
Featurekamo-internal

Explain Confidential, Record a decision and Disclosure history to a first-time member, and give all three a premium dialog

Each tool now opens with a plain-words, three-step guide the first time a member uses it (remembered per member on the server via the UI-preference map, key fea...

Kamo·1w ago
Featurekamo-internal

Speak your message, hands-free conversation and read replies aloud in every chat window

The public web chat's voice — dictation, replies read aloud, and a hands-free loop — now runs in every chat-style tool window: member chat (including chats with...

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

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