Live Change Log

See what we're building, in real-time. Every feature, fix, and improvement shipped across the platform.

17,888
Total Changes
4,594
Features
4,520
Fixes
32
Projects
Filter by project
All Projects17,888AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService364InitializerService299KBService74KlusterServices542MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,557kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,594Fix4,520Other6,781Performance136Refactor274Revert23Style48Test69Upgrade1
August 5, 2026
FixEmailService

Stop classifying a multipart/related HTML root as an attachment

Every transactional email we send with an inlined org logo arrived in our own /messages viewer with a correct subject and a completely empty body. isAttachment...

Kamo·1mo ago
FeatureEmailService

Preview samples for the nine opportunity notifications

Without an arm here the admin Email Templates editor renders every placeholder blank, so anyone customising these nine would be editing an empty skeleton. One ...

Kamo·1mo ago
August 4, 2026
FeatureEmailService

Preview variables for PHI_ACCESS_ALERT

Without a sampleVariables arm the admin Email Templates preview renders every placeholder blank, so whoever is asked to approve the wording of a security alert ...

Kamo·1mo ago
August 3, 2026
FixEmailService

Scan the shared MFA repositories

MfaEnrollmentService is a @Service in kamo-shared-library, so the wildcard @ComponentScan("com.kamo") in this application constructs it whether or not this serv...

Kamo·1mo ago
FixEmailService

Merge duplicate kamo key that crashlooped EmailService

The new EmailService pod has been in CrashLoopBackOff since 16e8a05 — 22 restarts, never once started. snakeyaml raises DuplicateKeyException on a repeated top-...

Kamo·1mo ago
ChoreEmailService

Commit outstanding work in progress

Staged and committed as-is so nothing is left uncommitted in the working tree. 1 file changed, 12 insertions(+)

Kamo·1mo ago
FixEmailService

Harden the kubectl download against flaky egress [skip ci]

dl.k8s.io over the runner's egress intermittently drops mid-transfer: curl: (56) OpenSSL SSL_read: decryption failed or bad record mac which fails the deploy ...

Kamo·1mo ago
FeatureEmailService

Avatar endpoints; fix unauthenticated reachability and contact tenancy

Adds the mailbox side of sender avatars, and fixes three pre-existing holes this work would otherwise have built on top of. AUTHENTICATION. OTKPreAuthFilter us...

Kamo·1mo ago
FixEmailService

Add missing CampaignController REST endpoints for /api/email/campaigns

The bulk-email workspace/editor call GET/POST /api/email/campaigns etc., but only CampaignService (the @Service) was ever created — no @RestController exposed i...

Kamo·1mo ago
July 28, 2026
FixEmailService

Remove ambiguous unsubscribe requestMatcher that crashed startup

EmailService mounts two servlets (MVC DispatcherServlet + Spring-WS MessageDispatcherServlet at /services/*), so a bare string requestMatchers( "/api/email/unsu...

Kamo·1mo ago
July 27, 2026
FeatureEmailService

Bulk email campaign backend — provider, dispatcher, compliance, realtime

Backend for org-level bulk email campaigns, entirely separate from the everyday email provider so it can't be throttled/blocklisted alongside business mail: - ...

Kamo·1mo ago
July 23, 2026
ChoreEmailService

Rebuild to pick up **************** canonical keys

No source change. EmailService bundles kamo-shared-library at build time, so the CANONICAL_KEYS fix (shared-lib c028131) only reaches its runtime self-heal afte...

Kamo·1mo ago
July 22, 2026
FeatureEmailService

Sample variables for the LEADS_ASSIGNED template

Without a case here the admin template editor's Preview renders the new template with every placeholder blank, which reads as a broken template rather than an u...

Kamo·1mo ago
July 16, 2026
FeatureEmailService

Accept X-***-Token for mobile clients in OTKPreAuthFilter

per-tab session id as X-***-Token (matching **************** When present (and no X-OTK), resolve the session non-consumingly and set the same request attribute...

Kamo·1mo ago
July 14, 2026
FeatureEmailService

Support "unblock forever" remote-image consent

Adds a wildcard consent (allowAll / isAlwaysAllowed) so a member can opt to display external images in every message. Reuses the existing consent table via a re...

Kamo·1mo ago
FeatureEmailService

Inline-CID org logo (SVG->PNG) so it renders in Gmail; remove message content; preserve From-domain case

- FIX (security): notification emails carry no message body — remove messagePreview from template vars, ledger, samples and the settings toggle. - FIX (logo):...

Kamo·1mo ago
July 13, 2026
FeatureEmailService

Editor sample variables for missed-message notification templates

Preview samples for MISSED_CHAT_MESSAGE and SUPPORT_TICKET_REPLY incl. raw vs html-escaped sender/title variants used by the canonical bodies.

Kamo·2mo ago
FeatureEmailService

Microsoft 365 mail via Microsoft Graph app-only (zero per-mailbox setup)

Microsoft 365 mail now reads/sends through Microsoft Graph app-only (Mail.ReadWrite/Mail.Send application permissions) instead of IMAP — one app credential cove...

Kamo·2mo ago
July 11, 2026
July 10, 2026
ChoreEmailService

Rebuild on shared-lib resolver hotfix

Kamo·2mo ago
July 9, 2026
FixEmailService

Stop serializing computed xoauth2 getter that broke MailCredentials Redis cache

MailCredentials is cached in Redis (GenericJackson2Json). The added `isXoauth2()` boolean getter was serialized as a "xoauth2" property but has no field to read...

Kamo·2mo ago
FeatureEmailService

Route all cloud providers' mail through IMAP/SMTP with OAuth2 (XOAUTH2)

Cloud providers (Microsoft 365, Exchange Online, Google Workspace, Zoho, IceWarp) inherited read/send from **************** but the resolver never populated IMA...

Kamo·2mo ago
July 8, 2026
FeatureEmailService

Server-side "display external images" consent

Replaces the client-local (localStorage) remembering of the external-image choice with a durable per-member record. New RemoteImageConsentService (fail-soft rea...

Kamo·2mo ago
FixEmailService

Scope KamoMail mailbox/domain listing to the org's own domains (cross-tenant leak)

SECURITY: **************** ran 'SELECT email FROM virtual_users' (and **************** 'SELECT name FROM virtual_domains') with no org scoping, so mailbox/domai...

Kamo·2mo ago
FixEmailService

Persist selected OAuth provider on callback so it stops reverting to KamoMail

Switching an org to Microsoft 365 (or Google Workspace / Zoho) never stuck: the OAuth callback stored tokens and only flipped status on a pre-existing provider ...

Kamo·2mo ago
FixEmailService

Resolve welcome-email logo from the org theme host, not the apex

Header/footer logos in system emails (welcome/verification) were built as **************** — an apex path that only exists on the Kamo marketing site, so for cu...

Kamo·2mo ago
FixEmailService

Constant-time internal-auth secret compare (timing oracle)

Replace String.equals with MessageDigest.isEqual so response latency cannot leak the X-Internal-Auth shared secret byte-by-byte. Fleet-wide sweep of the copy-pa...

Kamo·2mo ago
FeatureEmailService

Sample vars for meeting-summary template preview

Adds a sampleVariables case for the new meeting-summary template so the steward preview UI renders realistic content.

Kamo·2mo ago
July 7, 2026
FeatureEmailService

Internal endpoint to create/cancel a member's calendar event

POST /api/internal/calendar/events (X-Internal-Auth gated) resolves member -> user -> primary calendar (creating a default if needed) and creates an event. Used...

Kamo·2mo ago
FeatureEmailService

Fixed public redirect + gateway-forwarded callback

Platform email OAuth (Microsoft 365 / Google / Zoho) had no valid public redirect URI: the redirect was derived from the request host, which in prod is the clus...

Kamo·2mo ago
July 6, 2026
FeatureEmailService

DOC_COMPLETE preview sample variables

Kamo·2mo ago
FeatureEmailService

DOC_ACCEPTED preview sample variables

Kamo·2mo ago
July 3, 2026
July 2, 2026
ChoreEmailService

Wire mlos-internal-auth (INTERNAL_AUTH_SECRET) into deployment [skip ci]

EmailService's InternalAuthFilter guards /api/email/templates/send + /seed-org on internal.auth.secret, which was unset (fail-closed 503). Share the existing pr...

Sage·2mo ago
July 1, 2026
FixEmailService

Return 422 (not 500) when member has no mailbox

listFolders and other read endpoints threw IllegalStateException from MailContext.toMailCredentials() when a member had no IMAP credentials provisioned, which t...

Sage·2mo ago
ChoreEmailService

Rebuild against latest kamo-shared-library

Sage·2mo ago
June 26, 2026
June 16, 2026
FixEmailService

Don't save transactional NoReply sends to a Sent folder

NoReply is a send-only address with no mailbox, but every transactional send still attempted an IMAP append to its Sent folder, producing a noisy AUTHENTICATION...

Kamo·2mo ago
June 15, 2026
FeatureEmailService

Self-heal mailbox accounts from app DB (drift recovery)

The app DB is the source of truth for which mailboxes should exist; KamoMail accounts live in the mail server's virtual_users. If the mail DB loses data, mailbo...

Kamo·2mo ago
FixEmailService

Mailbox list API returns UI-shaped ****************

GET /api/email/mailboxes returned the raw entity (providerStatus, lastSyncedAt, no member count). The settings UI reads **************** so status was always un...

Kamo·2mo ago
FixEmailService

Authorize privilege-based mailbox access for read + send-as

resolveForMailbox only granted access via a direct MemberMailbox assignment, so mailboxes surfaced through **************** rights threw NoSuchElementException ...

Kamo·2mo ago
June 13, 2026
June 10, 2026
ChoreEmailService

Rebuild for kamo-shared-library update (esign signer email templates)

Picks up the new canonical templates esign.signer_verification + esign.signer_invite so seedForOrg can seed them on first send.

Kamo·3mo ago
May 16, 2026

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing