KamoCRM

Live Change Log

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

18,391
Total Changes
6,526
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,391AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,691kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,526Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
November 9, 2026
November 8, 2026
Fixkamo-internal

One scroller for the whole rail, lower options seated at its foot

Revert the Settings fly-out. The lower options sit at the bottom of the SAME NavOverflowScroller (margin-top: auto): the top ones push down as they open, the bo...

Kamo·2d ago
Fixkamo-internal

Keep the lower options pinned at the foot; Settings opens as a fly-out

The rail scroller holds only the movable options again. Settings, which sits in the footer, opens its tree to the right of its row (NavToolButton flyout) instea...

Kamo·2d ago
Fixkamo-internal

One rail scroller for every option, not a second scrollbar for the lower ones

Mobile app, My Branches and Settings now live inside the NavOverflowScroller with the movable options; the ad-hoc capped overflow box is gone.

Kamo·2d ago
Featurekamo-internal

The square-headed robot is the one SI icon, everywhere

Replaces every SmartToy robot and the sparkle icons that stood for the SI.

Kamo·2d ago
Featurekamo-internal

Use the square-headed robot for the AI options

Kamo·2d ago
Featurekamo-internal

SI Agent, Support and Achievements become fixed chrome at the left of the top bar

Not draggable or pinnable, absent from navigation settings, behind a rule of their own after My Branches.

Kamo·2d ago
Featurekamo-internal

Halve the bar's width, 32px to 16px

Buttons halve with it so they stay squares that fill their cells.

Kamo·2d ago
Fixkamo-internal

No padding around the buttons or the bar

The thumb fills the bar's full thickness and each button fills its cell.

Kamo·2d ago
Featurekamo-internal

Setting change lines read in the reader's language; plural filter chips on the activity trail (SIS14)

Recent Changes, the undo confirm and the activity trail (line, summary, detail) word a line a service wrote through the dictionary (settingsKit.phrase); older l...

Kamo·3d ago
Featurekamo-internal

SI uses the robot head instead of the star

Kamo·3d ago
Featurekamo-internal

My Reports menu, Cameras under Devices, profile menu leads the bar

- Reports becomes a dropdown: All Reports | Favorites, Recent, Shared with you, Scheduled (with the library's counts) | Analytics. The Analytics option is remov...

Kamo·3d ago
FixAIService

Describe A Change changes only what the request names (SIS14)

The drafting prompt now says a switch changes only when asked to turn it on or off (run/set/make never do) and every proposal quotes the request words that ask ...

Kamo·3d ago
Featurekamo-internal

My Profile becomes a dropdown of profile tabs, with clock and Log Out inside

Legal & Compliance, Timecard clock and Log Out leave the bar and become rows of the My Profile menu. Attention marks carry over; the trigger pulses when any row...

Kamo·3d ago
FixMediaService

A YugabyteDB restart-read while the upload commits is retried, not fatal

Third live finding on the removed-after-hold path: the relay's lookup raced the upload's commit and got 40001 "Restart read required", which aborted the relay. ...

Kamo·3d ago
FixMediaService

The live chat relay also finds a refused hold's attachment

Found by the live removed-after-hold re-test: findByBlake3AndSize is a dedup lookup and skips is_missing dats, and a refused hold's dat stays missing forever, s...

Kamo·3d ago
FixMediaService

The live chat relay waits for an attachment whose verdict beat its commit

Found by the live removed-after-hold test (sp00verify): a held EICAR variant was judged ~260 ms before the visitor's upload answered; the hold completer's refus...

Kamo·3d ago
FixEmailService

Index backfill candidate query without a '::' cast

Hibernate's native-query parser read ':text' in ARRAY[]::text[] as a named parameter and the first live run answered 500. (attachment_types IS NULL OR NOT (mark...

Kamo·3d ago
FixSecurityService

The store sync schedule tells Spring which constructor to use

With a second (test) constructor and no @Autowired, the new pod failed to start: "No default constructor found". The running pods were untouched.

Kamo·3d ago
Fixkamo-internal

Live chat verdicts match by imgId or message link (completes aa060187d)

ATTACHMENT_SCAN now names the file (imgId) and its message links (objImgIds; mediaservice 5e5d837). The store keeps both, and the chip looks up its imgId first,...

Kamo·3d ago
FixMediaService

ATTACHMENT_SCAN names the attachment the way rows do (imgId + objImgIds)

Completes 27c9644. Found by the live test: message rows carry objImgId = the MediaObjImg link id and imgId = the Img id; the frame sent the Img id under objImgI...

Kamo·3d ago
FixDocsService

A held photo's PDF rendition is marked converted by a targeted update

Found by the live held-JPEG test: on LegalHeldUploads' background thread the stored rendition ImgDat is detached, and save() merged its orphan-removal 'images' ...

Kamo·3d ago
Featurekamo-internal

Online store connections say what they do — one way in, Sync Now, sync history, honest keys

- The connection form asks each platform for exactly what Kamo's reader uses (Shopify's Admin API token, Wix's API key and Site ID, Ecwid's secret token…), sa...

Kamo·3d ago
FeatureSecurityService

Scheduled online store sync, Sync Now in the background, honest connection test

- RetailStoreSyncScheduler: every 5 minutes, under the singleton lock (one pod), syncs each active store connection whose own interval (15 minutes to a day) h...

Kamo·3d ago
Featurekamo-shared-library

Online store sync saves what it reads — products, stock, customers and orders, idempotently

Until now a sync read the store, counted the records and threw them away, and every run said it worked. - StoreReader per platform (Shopify, WooCommerce, BigCo...

Kamo·3d ago
FeatureMediaService

A held chat attachment clears live for every viewer

ConversionService publishes antivirus.content.settled when a held upload is stored or refused. AttachmentScanRelay consumes it in a core queue group (media-anti...

Kamo·3d ago
Featurekamo-internal

A chat file Antivirus was checking clears live in member chat

MediaService now sends ATTACHMENT_SCAN {sessionGuid, objImgId, scan} on the conversation topic when a held attachment's check finishes. useChatWebSocket hands i...

Kamo·3d ago
Featurekamo-internal

Create Invoice makes a real invoice, with an Invoice tab and payments

"Mark Invoiced" only flipped the status; nothing was billed. It is now Create Invoice: a confirmation showing the customer, the labor and parts lines and the to...

Kamo·3d ago
FeatureSecurityService

A work order's invoice — create it, read it, open its PDF, record payments

ServiceJobInvoiceController, under **************** relays to InvoicingService's CommerceInvoice (issue-from-job, payments, PDF). Rights are the work order's: c...

Kamo·3d ago
FeatureConversionService

Announce a settled hold on core NATS (antivirus.content.settled)

When a held upload is stored after its check, or judged harmful, publish {blake3, sha3_256, size, imgDatIds, result, org, verdict{status,family}} so MediaServic...

Kamo·3d ago
Fixkamo-shared-library

Job numbers from a locked per-org counter, never a count; payments on a commerce invoice

Work order numbers were COUNT(jobs)+1, so two jobs raised at once could share one, and jobs raised from a paid order (ServiceFulfillmentPolicy) got no number at...

Kamo·3d ago
FeatureKlusterServices

MediaService may hear antivirus.content.settled (held chat attachments clear live)

ConversionService publishes a core event when a held upload's check finishes; MediaService consumes it in a core queue group and fans the new attachment state o...

Kamo·3d ago
Featurekamo-internal

Describe A Change and Recent Changes And Undo on the record pages (SIS12)

SIS11's page tools, extended (no second mechanism) to the pages that hold a list: Alerts & On Call, Providers, Provided By Kamo, Connected Tools, Web Chat Perso...

Kamo·3d 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