KamoCRM

Live Change Log

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

18,392
Total Changes
6,527
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,392AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,692kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,527Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
October 11, 2026
FeatureEmailService

Confidential thread markers and EMAIL_THREAD labels — PUT …/thread-confidential on member and shared mailboxes, one audited writer, threadKey and threadConfidential on both message GETs, POST **************** the org graph (KamoCollab CP05 Task 20)

EmailThreadKeys is the one thread-naming rule **************** now calls it): root Message-ID, UUIDv5 thread id, and the EMAIL_THREAD key without angle brackets...

Kamo·4w ago
FeatureEmailService

Declare the disclosure ledger recorder, paired with its repository scan (KamoCollab CP08 Task 12)

DisclosureLedgerConfig declares DisclosureRecorder; EmailServiceApplication's @EnableJpaRepositories gains **************** in the same commit. DisclosureLedger...

Kamo·4w ago
FeatureEmailService

The two contact notification kinds, and which members an internal address reaches (KamoCollab CP04 Task 11)

CONTACT_REQUESTED and CONTACT_DECIDED are gated on ACCESS_CHAT and listed after MENTIONED. POST **************** ({orgId, addresses[]}, at most 100, KAMOAI_INTE...

Kamo·4w ago
FeatureEmailService

The CP05 DDL for per-thread Confidential markers and the thread_id indexes

KamoCollab CP05 Task 4 (spec 5.1): public.email_thread_labels keyed by (org_id, thread_key), ix_thread_messages_thread and the partial ix_search_index_thread. H...

Kamo·4w ago
October 10, 2026
FeatureEmailService

Message listings say how many messages they hold (X-Total-Count)

The message list in kamo-internal can now be browsed by pages, and its pager needs the listing's size for "51-100 of 1,240" and a Last button. Every listing ans...

Kamo·4w ago
October 9, 2026
FeatureEmailService

A composed message carries its meeting, and calendar edits ask before telling guests

- /api/email/send takes meetingInvite: the event is filed on the sender's calendar in the same transaction, its ics rides on the composed message with an X-...

Kamo·4w ago
October 5, 2026
FeatureEmailService

Calendar chat lines say they are system lines (KamoCollab CP00 T5)

MediaChatClient.sendDirect now posts "source": "SYSTEM" beside fromMemberId, toMemberId and message: a calendar invitation or cancellation is a notice written i...

Kamo·1mo ago
October 4, 2026
FeatureEmailService

A member's new name reaches their mailbox's display name (SP95 T35)

POST **************** {previous, current} -> {updated}, behind the KamoAI internal secret like provision-mailbox. The mailboxes the member holds as primary whos...

Kamo·1mo ago
September 28, 2026
FeatureEmailService

Personal-mailbox connects send the api.kamouniverse.com redirect

The owner has added **************** to the platform Google and Microsoft consoles, keeping the api.kamocrm.com one. Both hosts serve the path.

Kamo·1mo ago
FeatureEmailService

The platform's Gmail, Microsoft 365 and Zoho connects send api.kamouniverse.com redirects

The owner added **************** (Google) and **************** (Microsoft, Zoho) to the platform apps' consoles and kept the api.kamocrm.com ones, so both are v...

Kamo·1mo ago
FeatureEmailService

The platform organization's letters are signed KamoUniverse, not its legal name

The platform org's title is the company's legal name, "KamoCRM Inc.", and it stays in legal text. Its letters now carry the brand, its short title "KamoUniverse...

Kamo·1mo ago
FeatureEmailService

EmailService sends, links and names the platform as kamouniverse.com

The platform's primary apex is kamouniverse.com; kamocrm.com stays served in full. What EmailService writes today now names the primary apex, and what it recogn...

Kamo·1mo ago
September 27, 2026
September 25, 2026
FeatureEmailService

Dovecot push authoritative for KamoMail; NEW_EMAIL no longer self-raisable

POST /api/notifications/self is removed with SELF_RAISABLE: NEW_EMAIL is raised by NewMailAnnouncer and CHAT_MESSAGE by MediaService, so a browser has nothing l...

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

One display order for the kinds

Kamo·1mo ago
FeatureEmailService

AI members are always told, never muted or held

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

Gate the nine KamoAI kinds on their apps

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

A lead who writes in is named by the correspondent resolver

The mailbox list headed a lead's message with the part of their address before the @ ("jlrivera1984") when their mail client sent no display name, although the ...

Kamo·1mo ago
FeatureEmailService

A lead who writes in is named by the correspondent resolver

The mailbox list headed a lead's message with the part of their address before the @ ("rodarisdolgovanton") when their mail client sent no display name, althoug...

Kamo·1mo ago
FeatureEmailService

Who caused a notification travels with it, so the bell can draw them as a member

- NotificationRequest gains actorMemberId/actorName; the old constructor stays for every producer that predates them. - raise() keeps the pair only when both ...

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