KamoCRM

Live Change Log

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

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
September 16, 2026
FixEmailService

A refused campaign call says why, instead of "Bad Request"

CampaignService refuses with a ResponseStatusException carrying a sentence written for the member ("Pause the campaign before deleting it.", "Only paused campai...

Kamo·1w ago
Fixkamo-internal

A checkbox, button or link inside a grid row no longer opens the row too

The ⋮ bug from /marketing/email, in the six other grids that have it. AG Grid fires rowClicked from its own native listener on the row container, which runs bef...

Kamo·1w ago
Featurekamo-internal

Email Campaigns widget tabs are the campaigns screen's stages

The widget filed campaigns under its own Live / Sent / Drafts, which put a cancelled campaign under Sent and a scheduled one under Live. Its tabs are now In-Pro...

Kamo·1w ago
FeatureEmailService

The campaigns widget reads by stage, the stages the campaigns screen files by

The launchpad widget's read now groups and counts campaigns by the stages /marketing/email's tabs use: In-Progress (sending), Not Started (draft or scheduled), ...

Kamo·1w ago
Featurekamo-internal

The campaigns list follows what colleagues do to a campaign, live

BulkEmailWorkspace takes the change frames useEmailCampaignsWebSocket now delivers (onChanged, d0b56adf). A frame names a campaign and what happened to it, neve...

Kamo·1w ago
Featurekamo-internal

The Email Campaigns widget, live on the launchpad

A new home widget, email.campaigns, on the launchpad of everybody who can open the campaigns. Its five rights (EMAIL_CAMPAIGNS_WIDGET, 321-325) hang off VIEW_BU...

Kamo·1w ago
Featurekamo-internal

In-Progress, Not Started, Paused, Complete and Archived tabs, and the ⋮ opens its menu

/marketing/email splits the campaigns into five sub-tabs, each with a live count, and every campaign is under exactly one: - In-Progress: sending - Not Started...

Kamo·1w ago
PerformanceDaemonService

Create intake leads concurrently and claim larger batches

The job created one lead at a time from a 500-row claim, ~230 leads/min at best, which turns a large vendor list into days of backlog. It now claims 2000 payloa...

Kamo·1w ago
Fixkamo-shared-library

Coalesce pool-availability recounts instead of recounting per lead

countAssignablePool scans every lead in the org+market and ran synchronously after every createLead commit. At ~14k leads it already cost ~165 ms, more than the...

Kamo·1w ago
FeatureEmailService

Archive a campaign, and the widget leaves archived ones out

POST **************** and /unarchive (MANAGE_BULK_EMAIL) set and clear the campaign's archivedAt, and CampaignDTO carries it. The /marketing/email screen files ...

Kamo·1w ago
Featurekamo-shared-library

A campaign can be archived

EmailCampaignEntity gains archivedAt (archived_at): when a member archived the campaign, null while it is not. The /marketing/email screen gets an Archived tab ...

Kamo·1w ago
FeatureEmailService

A live read and live frames for the Email Campaigns home widget

GET /api/email/widget/campaigns is the launchpad widget's one read, built for a pane that sits on every campaign viewer's home page all day: lean rows with no b...

Kamo·1w ago
FeatureSecurityService

The Email Campaigns widget arrives on for everyone who can open the campaigns

EMAIL_CAMPAIGNS_WIDGET and its ADDED, OPTIONAL and MOVABLE policies seed from VIEW_BULK_EMAIL on the boot that introduces them, so the pane lands on the launchp...

Kamo·1w ago
Featurekamo-shared-library

The Email Campaigns home widget's five rights

EMAIL_CAMPAIGNS_WIDGET (321) and its four policy children (322-325), hung off VIEW_BULK_EMAIL: every read behind the widget, the campaign list, its counters and...

Kamo·1w ago
Featurekamo-internal

Email Campaigns is the first Marketing tab

The Marketing Tools tab strip now reads Email Campaigns, Marketing Materials, Social Media, Tracking Codes. Bulk Email moves to the front under its new name, an...

Kamo·1w ago
Featurekamo-marketing

Solutions moves under Resources, one level down

The top row carried five categories before the phone number, the language selector and three CTAs. Solutions is now the first item inside Resources, above the t...

Kamo·1w ago
Fixkamo-marketing

The subscriptions article is not announced as a public service announcement

The chip above the headline and the line on the share card both called it one, which the banner strip has already stopped doing. The byline row now opens with t...

Kamo·1w ago
Fixkamo-marketing

The featured-article strip drops the public service announcement badge

The badge belonged to the seat-fee article. The strip points at the subscriptions article now, which is not a public service announcement, so the link stands on...

Kamo·1w ago
Featurekamo-marketing

Application development, web design and web marketing

**************** argues that a business paying an agency per seat is paying for software the agency did not build, host, or keep running. It ends by asking who ...

Kamo·1w ago
Featurekamo-marketing

An article on counting your software subscriptions, and the banner points to it

/all-in-one-business-software asks how many subscriptions a business is paying for: a checklist that counts them and totals the month and the year as the reader...

Kamo·1w ago
Fixkamo-marketing

Stop printing a message key as the legal line, and calibrate the guard

The footer's terms-and-privacy sentence was the only rich-text message on the site. The translation service rewrote its tags as prose in 12 of 21 locales, so t....

Kamo·1w ago
Featurekamo-internal

The launchpad bands open into the bar's own dropdown surface

The administrator bar and the pinned-app bands are painted with the top bar's gradient, and then answered a hover with something from another app entirely: a wh...

Kamo·1w ago
Otherkamo-marketing

A guard for the damage English cannot see, and the numbers that disagreed

The last pass read the English and pronounced it clean. It was: the double hyphens were all in the TRANSLATED files, where an em dash comes back as `--`. The Ch...

Kamo·1w ago
Otherkamo-marketing

Stop the marketing site reading like it was generated

Thirty-seven industry pages opened "A Unified <noun> Platform for <industry>" and closed with the same sentence about the feature request system. Nine competito...

Kamo·1w ago
September 14, 2026
Featurekamo-marketing

Embed homepage marketing video on white-label CRM fees article

Give readers the same product reel from the homepage after the intro, before the resold-software section.

Kamo·2w ago
September 13, 2026
Featurekamo-shared-library

WebinarNotifyMember, an organization's Additionally Notified list

One row per (organization, team member) in webinar_notify_member, created by KamoInitializerService's WebinarNotifyMemberMigration and already applied. The repo...

Kamo·2w ago
FeatureMediaService

Blind-copy the Additionally Notified team members on presenter emails

GET/PUT /api/webinar/notify-members (MANAGE_SUPPORT) read and replace an organization's Additionally Notified list; every id must be a team member of that organ...

Kamo·2w ago
FeatureEmailService

Blind copies on the service-to-service template send

SendTransactionalRequest takes an optional bcc list, carried through sendToUser and deliver onto the SMTP envelope — including the platform-address retry — so a...

Kamo·2w ago
FeatureInitializerService

Webinar_notify_member, the team members copied on presenter emails

One row per (organization, team member): the Additionally Notified list on the Scheduled Webinars settings tab. MediaService blind-copies these addresses on eve...

Kamo·2w ago
Featurekamo-internal

Let an admin choose who is copied on presenter emails

The Scheduled Webinars tab gains an "Additionally Notified" section beside the list of webinar types. The team members chosen there get a blind copy of every au...

Kamo·2w ago
FixVOIPService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixTranslateService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixRAGService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixMediaService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixMCPGatewayService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixKBService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
Fixkamolos

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixESigService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixEmailService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixDocsService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixDaemonService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixConversionService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixAPIService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixAIService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·2w ago
FixMediaService

Deliver booking, cancellation and reminder emails

Every webinar letter posted to EmailService's /api/email/send, a member-session mailbox endpoint, so each one failed silently; the public booking path sent noth...

Kamo·2w ago
Featurekamo-shared-library

Canonical templates for every webinar booking letter

Seven meet.webinar_* templates — the presenter's booked / attendee joined / attendee cancelled notices, the attendee's confirmation and cancellation, the sessio...

Kamo·2w ago
Featurekamo-marketing

Let a visitor cancel their registration from the emailed link

/webinar/cancel/<token> is where a webinar confirmation email sends someone who can no longer make it. It looks the registration up through the public webinar A...

Kamo·2w ago
FixVOIPService

Restart when a same-commit rebuild leaves pods on the old digest [skip ci]

The rollout step tried to detect a same-commit rebuild by comparing the Deployment's image reference before and after `set image`. "Apply manifests" has already...

Kamo·2w ago
FixTranslateService

Restart when a same-commit rebuild leaves pods on the old digest [skip ci]

The rollout step tried to detect a same-commit rebuild by comparing the Deployment's image reference before and after `set image`. "Apply manifests" has already...

Kamo·2w ago
FixRAGService

Restart when a same-commit rebuild leaves pods on the old digest [skip ci]

The rollout step tried to detect a same-commit rebuild by comparing the Deployment's image reference before and after `set image`. "Apply manifests" has already...

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