KamoCRM

Live Change Log

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

18,395
Total Changes
6,530
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,395AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService620InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,693kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,825kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,530Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
October 14, 2026
FixMCPGatewayService

Stamp a communication-policy refusal of a tool with no intent COLLAB_DENY interaction:<ruleId>

An SI's chat_find_or_create_dm refused by the interaction policy answered COLLAB_DENIED INTERACTION_POLICY but left its audit row's policy_decision and policy_r...

Kamo·4w ago
Fixkamo-internal

The tours really do start by themselves at sign-in

They never had, for anybody. The trigger waited for userInfo.tokenId, which the type declares but the web app's /api/user-info never sends — so it returned befo...

Kamo·4w ago
Fixkamo-internal

An image attachment that has not drawn holds a placeholder, and one that never answers fails over

An <img> reports load or error and nothing in between, so a request that never answered left an unsized element at 0x0 — a chat bubble with nothing in it. A mem...

Kamo·4w ago
FixMediaService

An attachment whose bytes were already stored keeps the extension they were stored under

The content-addressed key is <imgDatId>.<ext>, and every reader builds it from the attaching Img's own fileExt. Dedup matches on the bytes, so the same screensh...

Kamo·4w ago
Fixkamo-internal

A docked chess window is as wide as its board

The window opened at a fixed 560 while the row decided its height, so at the default 690 row the board was 346px square in a 540px column: 97px of empty table e...

Kamo·4w ago
Fixkamo-internal

Drag-selecting up or left out of a text field scrolls it

WebKit (Safari, DuckDuckGo on macOS — the reporter's browser) only autoscrolls a text field toward the END of its text during a drag-select: dragging up out of ...

Kamo·4w ago
Fixkamo-internal

The Settings rail keeps your place in its tree

Choosing a row in the expanded rail ran close(), which also emptied every expanded branch, so each click folded Settings back to its own row and the next sub-to...

Kamo·4w ago
Fixkamo-internal

A card taller than the room it has scrolls instead of running off the screen

Opened from a name low on a laptop screen (the Interaction Center's "..." on a roster row), the member card was placed below it at full height; once "More" open...

Kamo·4w ago
FixSecurityService

The profile save stores the member's address

The My Profile Address card posted { address, addressDetails, locality, subdivision, postalCode, country } and PUT /members/{id} never read the key, so every sa...

Kamo·4w ago
Fixkamo-internal

Related-article rows open the article

The Related Articles list under an open article drew each link as a plain box with no href or click handler, so nothing happened when a reader clicked one. A re...

Kamo·4w ago
Fixkamo-internal

Tiles recover on their own, a manager's Watch shows the camera, cloud logins never stored in clear

From an independent review of the shipped Cameras screens. Viewer: - A Settings "Watch" of a camera not shared with the manager showed "unavailable": the windo...

Kamo·4w ago
Fixkamo-internal

Nothing dials by itself any more, and four red tests on main go green

The softphone never places a call for the member (owner rule, 2026-10-13): - The lead header's Call work / Call personal now fill the dialpad and stop, like eve...

Kamo·4w ago
Fixkamo-internal

Tours show for members signed in before them, and survive a failed progress read

Two reasons the first deploy showed no tour, not even on the App Shelf: - The progress read was attempted once per page, and every tour surface waited on it. ...

Kamo·4w ago
FixSecurityService

The guided-tours read answers the member's CURRENT Show Tour rights

A session carries the rights it was issued with and the routine refresh does not re-read them, so everyone signed in before the Show Tour rights existed saw no ...

Kamo·4w ago
FixSecurityService

The boot-time rights sync inserts a role's missing rights in ONE statement

b8014ab3's deploy never became ready. The 31 Show Tour rights made the row-at-a-time insert loop 31 YugabyteDB round trips per role — ~3.5 s a role, ~490 s acro...

Kamo·4w ago
Fixkamo-internal

Display on Intake now saves

The form editor built each field for the save request without isDisplayOnIntake, so the server stored false for every field that was not required. The toggle re...

Kamo·4w ago
October 13, 2026
FixAPIService

The connector relay never sends a reserved close code

When KamoCameraService rolled, the backend socket closed without a close frame (1006) and the relay passed 1006 to the connector; 1005, 1006 and 1015 only descr...

Kamo·4w ago
FixEmailService

An SI's HIGH chat card is raised even while an unread-chat card stands

A person with an undismissed CHAT_MESSAGE card was never told of an SI's NOTIFY (KamoCollab CP12 D14): the announce-once rule dropped the HIGH card too, while t...

Kamo·4w ago
Fixkamo-shared-library

A market save rejects a missing or unknown custom form

Both association loops skipped a null form id, or one the organization does not own, and the save still returned success. That is how every market lost its form...

Kamo·4w ago
FixAPIService

The connector socket's client address is the right-most public X-Forwarded-For hop

CameraAgentWebSocketHandler took the FIRST X-Forwarded-For hop — the one a client can write itself — and that address is what KamoCameraService rate-limits unau...

Kamo·4w ago
FixEmailService

A meeting's updates and cancellations come from the address that invited its guests

The composer files a meeting under whatever its From said, an alias or a shared mailbox, and that address is the ORGANIZER in every ics. But updates, cancellati...

Kamo·4w ago
Fixkamo-internal

Attaching a custom form to a market now saves

The market dialog sent each form as Number(uuid). That is NaN, which JSON sends as null, and the service skips a null form id, so every save reported success wi...

Kamo·4w ago
Fixkamo-shared-library

Saving a form no longer rejects its own field IDs

updateForm replaces every stack and field, but the field-ID check compared the request against the rows already stored. The editor sends no field id, so each ke...

Kamo·4w ago
October 12, 2026
Fixkamo-internal

Disclosure history asks the list's source filter, so a REPORT ref or a Message-ID with a slash opens instead of a 400 (KamoCollab CP08 final fix)

The dialog put the record id in /source/{kind}/{id}. An id with a '/' (every REPORT ref, a GitHub or GitLab notification's root Message-ID) travels as %2F, whic...

Kamo·4w ago
Fixkamo-internal

Take Org Chart, Disclosure Log, Disclosure and Communication Policy off the admin bar

Owner: "Remove the Org Chart, Disclosure Log, Disclosure and Communication links off of the admin tool bar on the home page ... Discontinue adding links to the ...

Kamo·4w ago
Fixkamo-internal

Name every control on the communication policy tab

axe (wcag2a/aa) on the CP04 policy tab, now reachable from Security: - masthead: the default-effect select and the three switches (policy on, always allow a mem...

Kamo·4w ago
Fixkamo-internal

The chat-core adapter answers the conversation's own typing topic too

@kamo/realtime 0.1.3 subscribes typing on **************** (where MediaService publishes) instead of the retired bare /topic/chat/typing. The adapter matched on...

Kamo·4w ago
FixMCPGatewayService

An AUDIT hit of the communication policy is written once, as the call runs — not also when the charter asks a person first, and not for a decoderd approval (KamoCollab CP04 Task 31)

Found live in sp00verify: an SI's internal email under an AUDIT DENY rule, behind a charter approval (autonomy ceiling 1), wrote two chat_policy_event rows for ...

Kamo·4w ago
FixKBService

A release that keeps someone the note already named no longer fails with 500

The release reads the note's current NAMED audience before it writes, and the request keeps one persistence context (open-in-view), so those note_audience_membe...

Kamo·4w ago
FixEmailService

File a message's search-index row and lead link under its thread id, not the conversation row's surrogate

conversations.thread_id is generated (@GeneratedValue on ConversationEntity, primary key the thread id alone), so the row **************** returns carries a ran...

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