KamoCRM

Live Change Log

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

17,395
Total Changes
5,910
Features
5,260
Fixes
30
Projects
Filter by project
All Projects17,395AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,830TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,328kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,637kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,910Fix5,260Other993Performance165Refactor278Revert23Style42Test159Upgrade1
September 24, 2026
Docskamo-internal

SP00 preflight — contract check, conflict scan, 14 rulings

Pre-grant rt.org.> / email.notify.> in N1 (master §6.11), move kamo-internal's NATS login to N3, fix the §7.13 unforwarded-prefix rule for SP10's gateway routes...

Kamo·4w ago
Docskamo-internal

Progress ledger

Kamo·4w ago
Docskamo-internal

AI Members + AI Provider Registry program — master spec, 15 sub-project specs and plans, runbook

Owner-approved 2026-09-23 (13 decisions, master spec §2). 15 sub-projects, 604 implementation tasks, cross-sub-project contracts in master §6 and the adopted de...

Kamo·4w ago
Featurekamo-internal

Choose how a published application asks its questions

"Publish this application" (Settings → Features → CRM → Vendors & Products) now carries three choices beside the chat, each a pair of cards that say what they m...

Kamo·4w ago
Fixkamo-internal

Signature previews show what the email will actually print

**************** drew the live preview and the Header/Signature thumbnails from data that raced itself. It also disagreed with the composer about what a signatu...

Kamo·4w ago
Featurekamo-internal

The session tab stops wearing Guacamole's icon

A session tab is Guacamole's document, so its own <link rel="icon" href="images/logo-64.png"> owns the tab, and a member opening their company's computer watche...

Kamo·4w ago
Featurekamo-internal

Arive in CRM markets, on the lead page, and on member profiles

- Markets: "Arive" joins the MLOS dropdown, and its Configure dialog holds the four Zapier hooks (write-only, masked), the Arive → Kamo addresses to paste i...

Kamo·4w ago
Fixkamo-internal

The session is navigated to, not framed — a framed one renders black

The launch screen put the session in a full-viewport iframe so the tab would keep the organization's icon and title instead of Guacamole's. It cannot work, and ...

Kamo·4w ago
Fixkamo-internal

An iPhone photo (HEIC) attaches to a bug report as a JPEG

A HEIC dropped on a bug report was refused with "must be a PNG, JPEG, WebP or GIF image" — the camera-roll format of every iPhone, AirDropped to a Mac as it is....

Kamo·4w ago
Fixkamo-internal

The password dialog passes the launch copy — main has not built since bf1e3312

bf1e3312 made `openHostedComputer`'s launch copy a required argument, and c224e20f, landing beside it, added a second caller in HostedComputerPasswordHost that ...

Kamo·4w ago
Featurekamo-internal

Start a coder session in the cloud, and show it on the window

which lists the git checkouts on the dev machine (most recently worked in member's model and effort. The machine builds the command, with CCR_FORCE_BUNDLE=1 so ...

Kamo·4w ago
Featurekamo-internal

Attachments sit above the body, as the files themselves

An email whose only content was a PDF had no way to open or download the file: the paperclip showed on the list row, and the reading pane showed nothing. EmailS...

Kamo·4w ago
Featurekamo-internal

A designed launch screen, in the organization's own brand

Opening a computer showed one line of plain text on a white page, written straight into the tab with `document.body.textContent`. For up to ninety seconds — a r...

Kamo·4w ago
Fixkamo-internal

Browser WebSockets authenticate with a one-time key, never the session token

The 15 places a hook opens a STOMP/SockJS connection to MediaService (media.<domain>/ws) or EmailService (via the /email-ws rewrite) put the raw 128-char *** se...

Kamo·4w ago
Fixkamo-internal

A tab's session is a sealed handle — the id never reaches page script

/api/validate is where a tab first learns its session, and it returned the 128-hex *** id for the page to keep in sessionStorage — readable by any script runnin...

Kamo·4w ago
Fixkamo-internal

The session id stops coming back to page script — groundwork for sealed handles

*** was set readable (httpOnly:false) and several responses handed the raw session id to the browser. Page script cannot use a cookie's HttpOnly flag if an endp...

Kamo·4w ago
September 23, 2026
Otherkamo-internal

Add a per-org primary application to Vendors & Products

Any product with a published application can be set as the org's primary (single-active, mirroring the existing MLOS-default toggle). Publishing an org's first ...

Kamo·4w ago
Featurekamo-internal

Select-all/deselect-all for the states lead filter, default to all

The states dimension of the campaign audience panel's and drip trigger's lead filter showed nothing checked by default, even though an unset list already means ...

Kamo·4w ago
Featurekamo-internal

DKIM and DMARC steps, so email we send for an org is fully authenticated

Two new steps after the existing SPF one, written for a non-technical owner the same way SpfCard already is — plain language, a "why this matters" box, and neve...

Kamo·4w ago
Fixkamo-internal

Send the lead-filter query params the backend actually parses

**************** reads marketIds/vendorIds/ vendorProductIds/states as one comma-separated param each (splitList()), but campaignAudienceApi's appendLeadFilter(...

Kamo·4w ago
Fixkamo-internal

Wait long enough for a computer to finish waking

WAKE_TIMEOUT_MS was 180_000 and sat exactly on top of the VM's readiness probe, whose initialDelaySeconds was 180 and which KubeVirt renders as 190. A computer ...

Kamo·4w ago
Otherkamo-internal

Rename apps DNS alias to apply on the DNS setup studio

The apps.<domain> host serves the loan-application and patient-portal pages, not app downloads, so relabel the /setup/dns card and reserve "apply" instead of "a...

Kamo·4w ago
Featurekamo-internal

**************** filters on campaign leads and drip triggers

The campaign editor's "All leads" audience source had no way to narrow who it reached beyond visibility scope. Adds a filter panel (Market -> Vendor -> Vendor P...

Kamo·4w ago
Fixkamo-internal

The nav opens a computer, it does not ask for a password

Being signed in to Kamo is the authentication that matters; asking again at the door of your own machine is a password prompt for its own sake. ComputeService m...

Kamo·4w ago
Fixkamo-internal

Opening a computer with no login yet asks for the password

Clicking a computer opened a browser tab that closed again, and said nothing. openHostedComputer opens its tab synchronously inside the click, because a popup ...

Kamo·4w ago
Featurekamo-internal

The computers record on the DNS studio

One more card on /setup/dns, so an org configuring its domain is told about the host its Hosted Computers open on. Without it an org could follow the page to th...

Kamo·4w ago
Featurekamo-internal

A step the organization is not asked is not shown or counted

An organization whose security model fixes every Compliance answer (no product a member may switch, one age range for each member type) was still shown a ninth ...

Kamo·4w ago
Testkamo-internal

Fictional people in the correspondent-name tests

They used a real lead's name and address from the report.

Kamo·4w ago
Testkamo-internal

Fictional people in the correspondent-name tests

They used a real lead's name and address from the report.

Kamo·4w ago
Featurekamo-internal

The message list names a lead or contact, not their address

A row was headed by the sender's display name, or the part of the address before the @ when there was none, so a lead who wrote in read as "jlrivera1984" above ...

Kamo·4w ago
Featurekamo-internal

The message list names a lead or contact, not their address

A row was headed by the sender's display name, or the part of the address before the @ when there was none, so a lead who wrote in read as "rodarisdolgovanton" ...

Kamo·4w ago
Fixkamo-internal

The last step no longer hangs on "Loading..." after it is saved

Saving or skipping Compliance, the ninth and last Getting Started step, left it on "Loading..." with "Save & continue" greyed out, under the banner saying the o...

Kamo·4w ago
Fixkamo-internal

The official title and membership status are read-only on your own Position card

They join the department and job title under positionRights: a member sees all four on their own Position card, but only a MANAGE_MEMBER_SECURITY holder (or an ...

Kamo·4w ago
Fixkamo-internal

Kamo-internal presents the NATS login

NATS mapped every credential-less connection to the KAMO account (no_auth_user), and it listens on the host network of k1m1 — so any pod, the desktop VM or a ma...

Kamo·4w ago
Fixkamo-internal

The imaging proxy passes MediaService's download and sandbox headers through

MediaService now serves any attachment outside its safe raster/audio/video list (SVG, HTML, PDF…) with Content-Disposition: attachment, X-Content-Type-Options: ...

Kamo·4w ago
Fixkamo-internal

Drop the process-wide TLS verification bypass

NODE_TLS_REJECT_UNAUTHORIZED: "0" in k8s/configmap.yaml made every server-side outbound TLS call in this process — to any host, for any purpose, for as long as ...

Kamo·4w ago
Fixkamo-internal

Stop logging session tokens, cookies and message content

A grep for the shape of two known offenders (chat message text and chat-list previews going to console.log) turned up a much wider pattern across the session/au...

Kamo·4w ago
Fixkamo-internal

Reject unauthenticated uploads before the body is spooled

The chat attachment upload, the support bug-report screenshot upload, the meet background upload and the two ConversionService image-resize proxies all called b...

Kamo·4w ago
Fixkamo-internal

The learner media route's HEAD answers instead of hanging

useAttachmentSource probes with a HEAD after a media element fails, to tell a file that is gone from a session that lapsed. The route awaited response.body.canc...

Kamo·4w ago
Fixkamo-internal

The Hold'em invite is a kind the site knows: label, icon, filter and mute

MediaService has raised HOLDEM_INVITE notifications since Hold'em shipped, but the kind was missing here: the toast's eyebrow printed the raw translation key, t...

Kamo·4w ago
Featurekamo-internal

The member who caused a notification opens their card from it

"Dana Reyes dealt you in", "Weekly sync · Dana Reyes", an unread-chat card whose body is the sender: EmailService (29cb21e) now sends actorMemberId (as text) an...

Kamo·4w ago
Fixkamo-internal

Gate adding people and moving a position as the server does, and list every storage area

- The Add and Bulk Add buttons on /account, and the four create pages, need MANAGE_MEMBERS (MemberAdministrationGate), which SecurityService now enforces. Som...

Kamo·4w ago
Fixkamo-internal

Clearing the image version has to send "", not null

**************** merges rather than replaces, and for the image version a null means "leave whatever is there alone" — only a blank string clears it: if (i...

Kamo·4w ago
Chorekamo-internal

The NOTES mirrors say "Notes & Checklists", as Java now does

ServiceType.NOTES is renamed in kamo-shared-library, in copy only: the display name is "Notes & Checklists" and the description now covers the checklists. Both ...

Kamo·4w ago
Fixkamo-internal

The platform tab, and three links that showed their own keys

Two bugs, both reported from the running site. THE SETTINGS LINKS SHOWED KEY PATHS The three Hosted Computer sub-links carried key: 'computers' | 'capacity' | ...

Kamo·4w ago
Featurekamo-internal

A switched-to mailbox stays live, and the search box is polished

Live updates. The page asks EmailService to watch the mailbox it has open when it is not the member's own (/app/email/watch, re-sent after a reconnect, stopped ...

Kamo·4w ago
Featurekamo-internal

Audio lessons — upload a recording, and learners can really navigate it

Authors (/hr/training course editor) - "Upload file" on every slide, beside "Choose media": audio (MP3, M4A, AAC, WAV, OGG/Opus, FLAC), video or an image, thr...

Kamo·4w ago
Featurekamo-internal

A tool window's full title, however it is cut short

A title bar is one line, and a conversation, an email or ticket subject or a terminal's directory is regularly longer than the room it gets — the member could o...

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