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 18, 2026
FixRAGService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·5d ago
FixMCPGatewayService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·5d ago
FixKBService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·5d ago
Fixkamolos

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·5d ago
FixESigService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·5d ago
FixEmailService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·5d ago
FixDocsService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·5d ago
FixDaemonService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·5d ago
FixBillingService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·5d ago
FixAIService

Stop logging the database password at startup

com.zaxxer.hikari at DEBUG makes HikariConfig print its whole configuration on every start, including dataSourceProperties {password=...} and password......; Pr...

Kamo·5d ago
Fixkamo-shared-library

Keep hook-token and share-token hashes out of JSON; the OAuth secret prefix is a label

**************** was red on main: **************** and previousHookTokenHash, **************** and previousHookTokenHash, and IotShare.tokenHash had no @JsonIgn...

Kamo·5d ago
Fixkamo-login

No log line carries the password or the one-time key

/api/login logged the form it forwards to SecurityService verbatim (`username=…&password=<clear text>&***Payload=…`) and the redirect URL SecurityService answer...

Kamo·5d ago
Fixkamo-internal

The history's "Opt-out not recorded" chip in the primary colour (info failed contrast), and channel chips one width so the addresses line up

Follows b93576e8. Found by the component-harness screenshots and axe (color-contrast on the info-coloured chip). Tests: DoNotBlockTab.test.tsx.

Kamo·5d ago
Fixkamo-internal

A guided tour starts on a clear screen — dock windows go away as hexheads, and one that covers the highlight mid-tour follows

A chat that popped up at sign-in sat over the elements the tour pointed at, so the spotlight was drawn round the chat window instead of the lead search, the fil...

Kamo·5d ago
Fixkamo-marketing

The phone number ran under the language flag

The nav row was capped at 1280px, which left the phone cell 82px between Resources and the language button at every desktop width. The number is ~95px and nowra...

Kamo·5d ago
Fixkamo-marketing

The phone number ran under the language flag

The nav row was capped at 1280px, which left the phone cell 82px between Resources and the language button at every desktop width. The number is ~95px and nowra...

Kamo·5d ago
Fixkamo-internal

The nav's Voicemail row opens the softphone on voicemail, not the dialpad

The row dispatched a plain tool:open, so a new softphone started on the dialpad and an open one was only raised. It now opens with initialTab 'voicemail' (throu...

Kamo·5d ago
Fixkamo-internal

The vendor and product questions move off the field's border

A member reported "Description" on Create New Vendor (Settings → Client Relations Manager → Vendors & Products) with the field's border running through it: an M...

Kamo·5d ago
Fixkamo-marketing

Keep the migration difficulty an enum in every locale

/alternatives/<competitor> labels the migration difficulty with **************** The collections extractor shipped `difficulty` to the dictionary as prose, so e...

Kamo·5d ago
Fixkamo-marketing

A scanner probe no longer spends the catalogue rate limit

A dotted path (/info2.php, /.env) skips the locale middleware and reaches [locale]/page.tsx as locale "info2.php". The layout 404s it, but the page renders besi...

Kamo·5d ago
Fixkamo-internal

Hexhead side corners are no longer cut off

The hexagon's side points sit on the 0-100 viewBox edge while its flat top and bottom have 6.7 units to spare, so the clipping SVG shaved half the outline and t...

Kamo·5d ago
Fixkamo-internal

The keys tip on the tour card always shows in full

The "Tip: use the arrow keys to move" line shared the button row with Back and the primary button. A long label such as "Next tour: Service Work" left it no roo...

Kamo·5d ago
October 15, 2026
FixMCPGatewayService

"list…", "show…", "give me…" and "pull up…" are orders too, and a run with no order says why in the log

Live check in sp00verify (2026-10-15): a peer's "Nell, list the open tasks assigned to you and tell me how many there are." verified as their request (author, a...

Kamo·1w ago
Fixkamo-internal

The do-not-contact screens read clearly to everyone — "Call anyway" and the history's Removed chips in the error colour (warning failed contrast), spinners named, the removal sentence names the channel as written

Follows 35421d4d. Found by the component-harness screenshots and axe (color-contrast on the warning-coloured text button and chip; aria-progressbar-name on the ...

Kamo·1w ago
FixMCPGatewayService

A team member's call to a number on the do-not-contact list reads as who asked not to be called, and since when

kamoai-service 8b7b8d5 added the organization's do-not-contact list for calls (K6 409 DO_NOT_CONTACT), and a team member's call now carries the day the number w...

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
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
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
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
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
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
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
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
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
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

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