KamoCRM

Live Change Log

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

17,650
Total Changes
6,071
Features
5,339
Fixes
30
Projects
Filter by project
All Projects17,650AIService260APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService586InitializerService329KBService151KlusterServices744MCPGatewayService261MediaService604RAGService79SecurityService1,872TranslateService62VOIPService250VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,411kamo-login340kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,678kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore775Docs3,257Feature6,071Fix5,339Other998Performance165Refactor278Revert23Style42Test162Upgrade1
September 25, 2026
FixEmailService

The email.* host no longer reaches EmailService's server-to-server endpoints

The email-route IngressRoute sends every path on an email.* host straight to EmailService, past the API gateway, so the gateway's carve-outs (master spec sectio...

Kamo·4w ago
DocsEmailService

SP08 disclosure columns name the real reason they are nullable

The field-config PUT writes NULL when a request does not carry the setting, and Hibernate inserts that NULL rather than the column default. The old comment blam...

Kamo·4w ago
FeatureEmailService

An emailed invitation keeps its recurrence, edited and cancelled instances

An invitation to one date of someone else's series stays the event it describes instead of being refused as an orphan instance, and a series whose organiser mov...

Kamo·4w ago
FeatureEmailService

Guests hear about one moved or cancelled instance; invitations state the repeat

The instance's ics names the whole guest list and goes to every guest already told; a cancelled instance outranks every notice sent about it; an all-day invitat...

Kamo·4w ago
FixEmailService

An organization with no domain still sends its letters

A domain is optional when an organization is created, but every transactional letter such an org sent threw "has no domains; cannot build NoReply from-address" ...

Kamo·4w ago
FixEmailService

Ics import and export work — rows in, rows out, series included

Import upserts each UID group (master, canonical rule, EXDATEs, edited and cancelled instances) with no reminders and no invitations; E11 reports {created, upda...

Kamo·4w ago
FeatureEmailService

Provision an AI member's mailbox for the SP02 MAILBOX hire step

POST **************** (spec E6, §4.12) behind KAMOAI_INTERNAL_SECRET: KamoMail creates <first.last>@<verified domain> (base, base2 … base99), other providers as...

Kamo·4w ago
PerformanceEmailService

Resolve each ics TZID once per file

Kamo·4w ago
TestEmailService

MailSearchWiringTest registers the outgoing composer EmailController takes

EmailController gained OutgoingMailComposer in 3908372; the wiring test's Docstor list did not, so it failed with UnsatisfiedDependencyException. OutgoingMailCo...

Kamo·4w ago
FeatureEmailService

Watch active AI members' mailboxes for arrivals

AiMailboxWatcher keeps a pod-local "ai" IDLE claim on every active AI member's IMAP-reachable mailbox (ARTIFICIAL, record active, membership ACTIVE), skips mail...

Kamo·4w ago
FeatureEmailService

Meeting emails wear the organizer's compose template; escape event fields

Invite, update, cancel and RSVP bodies are wrapped for the sending member and their data: images leave as cid: parts (InlineImageTransport). **************** su...

Kamo·4w ago
FeatureEmailService

Free/busy that never widens visibility, and a slot finder over working hours

No transaction across the members (a Yugabyte read restart is transparent only as a transaction's first statement), one guest read for every member, zero-length...

Kamo·4w ago
FeatureEmailService

Working hours from the timecard schedule, the AI charter, or the org default

A schedule set today counts for all of today, a day ending at its start is a 24-hour shift, only the window's own holidays are reported, and an unreachable Secu...

Kamo·4w ago
FeatureEmailService

Server-side threading, quotes, forwards and the outgoing pipeline

Replies thread on the server (In-Reply-To/References from the original, capped at 20 ids), default their recipients and subject, and set \Answered after the sen...

Kamo·4w ago
FeatureEmailService

The API reads and writes occurrences by key, with scopes, recurrence and IANA zones

Event windows bind as Instants, so a whole-second or offset instant is read (a Date read only the millisecond form, and its failure answered 404); a malformed q...

Kamo·4w ago
FeatureEmailService

One display order for the kinds

Kamo·4w ago
FeatureEmailService

Body formats, email-safe sanitiser and signature stripper for server-side compose

The sanitiser also drops a style attribute that runs code, as it does a style block, and drops <title> and <template> whole: jsoup's Cleaner keeps the text of a...

Kamo·4w ago
FeatureEmailService

Gate the nine KamoAI kinds on their apps

Kamo·4w ago
September 24, 2026
FeatureEmailService

Inline pre-sized PNG logos; footer badges served at the drawn height

Transactional emails only inlined a logo when the original was an SVG under 512 KB. A PNG logo org's email linked the whole upload instead — crm's 2.2 MB logo-f...

Kamo·4w ago
FeatureEmailService

Sending mail needs a seat, for people and AI members alike

A member without a licensed seat is refused with the shared 403 SEAT_REQUIRED body before anything is sent: POST /api/email/send, the shared-mailbox send, and t...

Kamo·4w ago
FixEmailService

Pin kamo-shared-library 1.6.1, the version the library stays at

39829f6 pinned 1.6.2 together with the library bump in db737a54. That bump is reverted: about thirty other services pin 1.6.1, and CI can only resolve the one v...

Kamo·4w ago
FeatureEmailService

Read the composer's alias-domain default from org_alias_domains

**************** used one hardcoded domain (platform.mail.domain, kamouniverse.com) as a synthetic send-as default, and only for the platform org **************...

Kamo·4w ago
FixEmailService

An attachment with a Content-ID is still an attachment

A PDF sent from the Gmail app had a paperclip on its list row and no download link in the reading pane. The app stamps every attachment with a Content-ID, and t...

Kamo·1mo ago
FixEmailService

Accept a short-lived otk on the WebSocket handshake, alongside ***

Same change as mediaservice: kamo-internal is moving the *** session id out of browser JavaScript, off sessionStorage and off every WebSocket URL (`?***=<128-he...

Kamo·1mo ago
September 23, 2026
FeatureEmailService

Move system mail and the platform org's own send domain to kamouniverse.com

platform.mail.domain now defaults to kamouniverse.com (config value, no code default change) and gates every unverified-domain org's transactional fallback From...

Kamo·1mo ago
BuildEmailService

Depend on kamo-shared-library 1.6.1

813d175 moved the library to 1.6.1, and CI installs only the library's HEAD, so the 1.6.0 pin no longer resolves and 6084db9's image build failed. emailservice ...

Kamo·1mo ago
FixEmailService

Catch dead domains and dead mailboxes the checks let through

Campaign 8781b848 ended with 667 bounces and 1,258 failures. Three gaps in the existing eligibility engine let them through: - DomainMailCheck asked A and AAAA...

Kamo·1mo ago
FeatureEmailService

DKIM-sign transactional mail sent as an org's own domain

Once SecurityService confirms a domain's DKIM record is published (org_domains.dkim_verified), password resets, invitations and other transactional letters sent...

Kamo·1mo ago
FeatureEmailService

Narrow a campaign's all-leads audience and drip triggers by market, vendor, product and state

The campaign editor's "All Leads" box and the drip trigger's lead filter could only match every lead the sender can see, with no way to target a market, vendor,...

Kamo·1mo ago
TestEmailService

Fictional people in the correspondent-name tests

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

Kamo·1mo ago
TestEmailService

Fictional people in the correspondent-name tests

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

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