KamoCRM

Live Change Log

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

18,397
Total Changes
6,532
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,397AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService621InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,693kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,826kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,532Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
September 29, 2026
Fixkamo-asterisk-support

AI extensions offer G.711 only, so the AI leg is never G.722

livekit-sip answers an offer with the codec it ranks highest, not the first one offered (media-sdk sdp.SelectAudio: G722 -5 > PCMU -10 > PCMA -20). With allow=!...

Kamo·1mo ago
FixMediaService

An AI member's chat name is the full name, same as a human's

**************** trusted Member.usernameAlias over the account's own full name whenever the alias was non-blank. MemberCreationService mirrors the account's use...

Kamo·1mo ago
Fixkamo-internal

UI sweep A: theme tokens, plain errors, empty states and phone layouts (SP98 T20)

AI settings (registry, routing, MCP, workforce controls, Security & Models), personas, Platform admins and the assistant's model picker, from a static-harness s...

Kamo·1mo ago
FixKlusterServices

The platform main line survives a boot, and 8200 is the team line

Luna's go-live (2026-09-28) wrote [kamo-main-luna] into extensions_custom.conf and KAMO_LUNA_EXT / KAMO_LUNA_MAX_RING into globals_custom.conf by hand on the ho...

Kamo·1mo ago
FixAIService

The brief words an action class it has no case for, so a new shared-lib class never breaks the build

CharterCompiler.actionClass gains default -> words(name): the enum name in lower-case words, first letter capitalised (PLACE_INTERNAL_CALL reads "Place internal...

Kamo·1mo ago
FixMCPGatewayService

A rejected guessed recipient tells the model to look the person up

EmailService now refuses a send whose recipient names one of the organization's own mail domains but matches no mailbox, alias or member (RECIPIENTS_UNKNOWN, a ...

Kamo·1mo ago
FixEmailService

Refuse a guessed recipient at the org's own domain before it reaches the mail server

Luna (AI member) asked to email the owner and guessed **************** instead of looking up the real address (sage@kamocrm.com). kamouniverse.com is one of the...

Kamo·1mo ago
FixAIService

A contact never touched before is held to quiet hours, in the organization's zone

SP98-A-11. The outreach gate returned right after consent when the contact had no state row, so a cold first touch skipped quiet hours (and the touch budget): a...

Kamo·1mo ago
FixAIService

A copilot tool call's idempotency key carries its turn

SP98-A-12. Member chat keyed a Tool Plane call chat:<session guid>:<tool call id>. A call id is unique only within its turn: HuggingFaceAdapter numbers id-less ...

Kamo·1mo ago
FixAIService

Record-sent and record-failed answer 400 like evaluate when the call names no sender

SP98-A-10. With neither agentId nor memberId, the two record calls fell into the persona branch with a null agent: an unattributed touch was written, and a send...

Kamo·1mo ago
FixAIService

A widget turn is not one transaction, so a swallowed read no longer fails the send at commit

SP98-A-9. PublicAiChatService.sendMessage ran the whole visitor turn in one @Transactional. The hand-off tool's escalation titles (the persona's version or agen...

Kamo·1mo ago
FixMCPGatewayService

An AI's task without an assignee is its own

tasks_create without an assignee left an AI's task unassigned in its Inbox. SP02's TASK_HANDOFF moves only tasks assigned to the retiring AI, so self-planned wo...

Kamo·1mo ago
FixMCPGatewayService

An approved action runs past its run's call cap; a dry run names read-all

SP98-K-1 (SP05 final review M1): SP10 re-executes an approved action under the run id that asked for it. A run that worked on to its maxToolCallsPerRun answered...

Kamo·1mo ago
FixMCPGatewayService

Calendar_free_busy answers who is busy when, never what the block is called

A busy block's title (and its event id) can come from an outside invitation, and calendar_free_busy is not an untrusted tool (SP13's voice bookings call it, and...

Kamo·1mo ago
FixMCPGatewayService

An MCP server's refresh no longer closes the client calls are using

The 10-minute refresh (I3) and an admin's test evicted the pooled client before listing, which dropped a legacy SSE stream or DELETEd a Streamable HTTP session ...

Kamo·1mo ago
FixKlusterServices

An AI workstation sleeps with its desktop stopped, and wakes to a fresh one

Measured on a throwaway -ai4 workstation (SP98 Task 16), the wake stalled because Xorg does not survive a resume: with no KMS driver it drives the console throu...

Kamo·1mo ago
FixMediaService

The missed-message sweep reads the recipient's link hosts before its transaction

SP98-D-9. prepareSend read the recipient organization's domain rows lazily, as a late statement of the sweep's transaction, to choose the letter's console host;...

Kamo·1mo ago
FixMediaService

Chat cards queue boundedly, give up on a hung EmailService in seconds, and never double a mention

SP98-D-7: ChatNoticeDispatcher ran on two threads with an unbounded queue while MemberNotificationClient waited up to 5 s + 30 s (the letter client's chat.email...

Kamo·1mo ago
FixMediaService

A send looks up its AI turn limit and its sender's photo before its transaction opens

SP98-D-5 and D-9. A chat send asked SecurityService for an AI member's charter limit (up to 1 s + 2 s) inside the open send transaction, and read the sender org...

Kamo·1mo ago
FixAIService

An access policy and its lists are one write, and tenants never see a Kamo service's in-cluster address

SP98 Task 1 A-7 and A-8. - A-7: AccessPolicyWriter saves the policy and replaces its lists in one transaction, retried whole on a Yugabyte conflict (@RetryOnD...

Kamo·1mo ago
FixAIService

One verification run per provider across both pods

SP98 Task 1 A-6. A provider's verification (up to 200 probes on the tenant's key) holds a Redis lease, SET NX with a 10-minute TTL renewed before every probe an...

Kamo·1mo ago
FixAIService

Feedback only under its own conversation, no folder cycles, logged and key-free failures, and a visitor's conversation searches the public knowledge base

SP98 Task 1 (A-1 to A-5, and the controller's knowledge-audience addition): - A-1: rating a message answers 404 unless the message belongs to the {guid} conve...

Kamo·1mo ago
September 28, 2026
FixAIService

A reworded GPT-6 tool refusal is warned once, and a full effort memory forgets the oldest

Review follow-ups for the reasoning_effort none fix: - A 400/422 that names reasoning_effort and tools but is not the refusal ToolEffortFallback reads logs on...

Kamo·1mo ago
FixKlusterServices

A quiet meeting keeps its AI (media_timeout 20m), again

Reapplies 960331f, reverted in 5d70873 on the wrong suspicion: the RTP loss seen right after that deploy was fail2ban's ban on 47.181.8.84 (fixed in the previou...

Kamo·1mo ago
FixKlusterServices

Livekit-sip's RTP never takes the router, and its hairpin is never banned

FreePBX names its public address (pbx.k1.kluster.kamocrm.com) in the SDP and the Contact it gives livekit-sip, which is outside local_net, so RTP and in-dialog ...

Kamo·1mo ago
Fixkamo-internal

A chat box or tool window no longer takes the wall's keys (SP98 T18)

/notes treated any role="dialog" as a modal, so while the owner's Exec2Exec chat box (or any chat box or tool window, a floating note among them) was open, N, C...

Kamo·1mo ago
FixAIService

A chat turn that offers tools requires TOOL_CALLING, and a failed probe clears supports_tool_use

Member chat and the public widget routed TEXT_GENERATION only and attached tools afterwards, so gpt-6-luna (TOOL_CALLING FAILED) took every tool-bearing - The ...

Kamo·1mo ago
FixAIService

A GPT-6 tool call is asked once more at reasoning_effort none, and the model is learned

reasoning_effort "none" and refuse the default effort they apply when none is sent, so every TOOL_CALLING probe and agent step on gpt-6-luna/sol failed. - Reas...

Kamo·1mo ago
Fixkamo-internal

Name the image pickers' Scale sliders too (SP98-Q-1)

The harness's axe pass over the image pickers found the Scale slider beside each select unnamed the same way (axe label, critical). Its caption now names it.

Kamo·1mo ago
Fixkamo-internal

Name the image source selects (SP98-Q-1)

The Image Source select's floating label was tied to nothing, so each of the two pickers was an unnamed combobox (axe aria-input-field-name). The label now name...

Kamo·1mo ago
Fixkamo-internal

Open SMS and voicemail links that arrive signed out (SP98-Q-2)

?openSms= and ?openVoicemail= now go into the pre-sign-in stash (@kamo/tool-core 0.1.7 carries them), and the bootstrap opens them from it after the bounce, as ...

Kamo·1mo ago
Fixkamo-internal

Name a card's conversation past the newest 300 (SP98-Q-4)

A window opened from an SMS card by conversation id looked its number up in the newest 300 conversations, so an older one opened under a blank header. When that...

Kamo·1mo ago
FixMediaService

A recording's action item is never due before its meeting

Live (SP14 Task 31, Step 9), a recording made on 2026-09-28 said 'by October second' and the model wrote 'due 2024-10-02' into the summary emailed to the partic...

Kamo·1mo ago
FixConversionService

Silence is never sent to the speech service, and no chunk reaches 30 s

Kamo Speech (Speaches) answers 500 'No clip timestamps found' for a chunk of 30 s or more in which its VAD finds no speech (faster-whisper's no-VAD path refuses...

Kamo·1mo ago
Fixkamo-internal

The persona Quick Tip describes the charter and the on/off switch, not publishing (SP98 T17)

The AI Sales Agent Setup tab's Quick Tips still said to publish an agent and that publishing saves a copy. Personas have no saved copies: the charter is saved a...

Kamo·1mo ago
Fixkamo-internal

The persona Quick Tip describes the charter and the on/off switch, not publishing (SP98 T17)

The AI Sales Agent Setup tab's Quick Tips still said to publish an agent and that publishing saves a copy. Personas have no saved copies: the charter is saved a...

Kamo·1mo ago
FixMediaService

A stored recording is transcribed, under the id it was saved with

MeetingRecording.id is @GeneratedValue, so save() of the entity whose id ingest had set by hand merged it and the row got an id of its own. The pipeline was han...

Kamo·1mo ago
FixEmailService

The KamoMail domain check reads once a minute, and rows off an org's domains leave every list

SP99-T1-f, finished (SP98 Task 8). SP99's final review already refuses a KamoMail binding whose address is not on a domain the organization holds (95c58af); thi...

Kamo·1mo ago
Fixkamo-internal

Tasks, notes and calendar polish (SP98 T18)

- /notes: a new note or checklist made from My tasks brings the wall back (P-1) - Checklist rows leave out the assignee when it is the viewer (P-2) - Lead Tasks...

Kamo·1mo ago
FixKlusterServices

The heap fits the container, so a meeting is never OOMKilled

The image starts java -Xmx${JIGASI_MAX_MEMORY:-3072m} and the container was limited to 1Gi: the heap could outgrow the container, and Jigasi was OOMKilled mid-m...

Kamo·1mo ago
FixKlusterServices

Permanent forwards expire from the browser cache after an hour instead of never

From 2026-09-23 to 09-27 the kamouniverse-to-kamocrm redirectRegex 301'd kamouniverse.com to www.kamocrm.com. Traefik sends such a redirect with no Cache-Contro...

Kamo·1mo ago
Fixkamo-nowww

Redirects expire from the browser cache after an hour instead of never

After its stale service worker was replaced, the owner's browser went on sending https://kamouniverse.com/ to www.kamocrm.com without asking any server. From 20...

Kamo·1mo ago
FixEmailService

An AI organiser's invitations carry the AI disclosure its email does

Event invitations wear no compose template, so an invitation, update or cancellation organised by an AI member carried none of the disclosure its email carries ...

Kamo·1mo ago
FixEmailService

A late delivery still raises NEW_EMAIL and buzzes the phone; only IDLE is judged by age

NewMailAnnouncer's 30-minute Date-header gate, there for IMAP IDLE reconnect replays, also dropped Dovecot push arrivals, which report a delivery (MessageNew) a...

Kamo·1mo ago
Fixkamo-internal

AI settings, workforce and platform polish (SP98 T17)

- Platform admins: every right chip's label reads at AA on its wash (its own hue, darkened only as far as needed); the pinned hues stay on icon, border and ha...

Kamo·1mo ago
Fixkamo-internal

AI settings, workforce and platform polish (SP98 T17)

- Platform admins: every right chip's label reads at AA on its wash (its own hue, darkened only as far as needed); the pinned hues stay on icon, border and ha...

Kamo·1mo ago
FixEmailService

A From's mailbox id picks a signature only when the caller may send as it

The compose identity took fromAddress.id at its word: E1's send and E4's render check the From's address and the sending mailbox, never the id, so a member coul...

Kamo·1mo ago
Fixkamo-nowww

A stale service worker on a redirected apex is replaced with one that removes itself

https://kamouniverse.com/ "does not go anywhere" in the owner's browser, while it 308s to www for everyone else. The access log showed why: that browser sent no...

Kamo·1mo ago
Fixkamo-internal

The email template editor's fallback logo is KamoUniverse

When an org has no theme folder, the email template editor showed /img/kamocrmfull.png and /img/kamocrm.png, the retired KamoCRM wordmark and mark. They now fal...

Kamo·1mo ago
Fixkamo-internal

The email template editor's fallback logo is KamoUniverse

When an org has no theme folder, the email template editor showed /img/kamocrmfull.png and /img/kamocrm.png, the retired KamoCRM wordmark and mark. They now fal...

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