KamoCRM

Live Change Log

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

18,590
Total Changes
6,669
Features
5,584
Fixes
30
Projects
Filter by project
All Projects18,590AIService282APIService179BillingService166ConversionService118DaemonService147DocsService258ESigService99EmailService629InitializerService344KBService162KlusterServices771MCPGatewayService277MediaService622RAGService79SecurityService2,026TranslateService62VOIPService265VectorService11kamo-apps29kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,761kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,861kamo-signer-monorepo61kamolos115
Filter by type
All TypesBuild23CI527Chore794Docs3,288Feature6,669Fix5,584Other1,001Performance174Refactor284Revert23Style45Test177Upgrade1
November 6, 2026
Performancekamo-internal

ஒவ்வொரு ஆவணத்தின் உள்ளேயல்ல, குறிப்பு மூலம் செய்தி அட்டவணையை அனுப்பு

அடிப்படை உருவரை முழு அடையாளத்தையும் உறுப்பினர் வழங்குநருக்கு ஒரு பொருட்களாக வழங்கியது, எனவே React அதை உள்ளமைத்தது ஒவ்வொரு ஆவணத்தின் ஆர்எஸ்சி பயிரீட்டில்: /leads...

Kamo·6d ago
PerformanceEmailService

அதன் முதன்மை விசை மூலம் ஒரு துளியின் வழியை படிக்கவும்

DripContacts.lead/stateOfLead wrote "l.uid = ? AND l.org_id = ?", which YugabyteDB's heuristic திட்டமிட்டவர் ix_leads_org_id இருந்து சேவைகள், முழு அமைப்பு நடந்த...

Kamo·6d ago
PerformanceSecurityService

பின் தொடர்வதற்கு முன் ஒரு முடிவுயின் நிலையை எழுத பதில் அளி

LeadStatusFollowUps (shared- lib 5b273d8e) அறிவிக்கிறது: lead' s last contact and pipeline stage ஒரு நிலை எழுதுவதற்குப் பிறகு இப்போது இரண்டு பின்னணி நூல்களில் இ...

Kamo·6d ago
Performancekamo-shared-library

அதன் தொடர்ச்சிகளுக்கு முன்னர் ஒரு நிலையை எழுதவும், அதன் சொந்த விசை மூலம் தலைமை வரிசைகளை படிக்கவும்

அழைப்பு தளத்தின் முடிவு அழுத்தவும், ஒரு பாதுகாப்பு சேவைப் பாட்டில் JFR உடன் விவரங்கள் (lab org, 40 அழுத்தங்கள்): the /stage write 160-360 ms, median ~220 ms. ab...

Kamo·6d ago
November 5, 2026
Performancekamo-internal

அடுத்த வழியை முதலில் வரை, ஒரு அழைப்பில் முன்னோக்கி படிக்கவும், அடுத்த வழிக்கு பின்னால் முடிவுகளை சேமிக்கவும்

முதலில் வரைக: பட்டியலை ஒருமுறை கேட்கவும், உறுப்பினரின் உரிமைகளுக்கு அருகில், அதன் மேல் (வரம்பு=6) வரும் முதல் எனவே அடுத்த தலைமை பட்டியலின் மீதமுள்ள முன் வண்ணங்க...

Kamo·1w ago
Performancekamo-shared-library

ஒரு படிப்பில் ஒரு பக்கத்தை சரிபார்க்கவும், அட்டவணை தேடுதல் மூலம் ஒரு தலைப்பின் கடன்களை படிக்கவும்

OutreachCheck.checkPage அதே விதிமுறைகள் மற்றும் தலைப்புகளின் ஒரு பக்கத்திற்கான ஒருவரின் சோதனைக்கு பதில் அளிக்கிறது சரிபார்ப்பு () போலவே முடிவு குறிமுறை: வழிகாட்...

Kamo·1w ago
Performancekamo-shared-library

குழாய்களின் கடன் பெறுபவர்களை அதன் வரிசைகளுக்கு அருகில் படிக்கவும், அவர்களுக்குப் பிறகு அல்ல

வாசகரின் இரண்டு கேள்விகள் ஒவ்வொரு ஒரு பெரிய கடன் ஒரு இரண்டாவது பற்றி எடுத்து, அவர்கள் பின்புறம் திரும்பி ஓடினேன். கடன் வாங்குபவர் படித்த இப்போது தனியாக ஓடுகிற...

Kamo·1w ago
November 2, 2026
Performancekamo-internal

என் பணிகள் ஒவ்வொரு மூலத்தையும் அது இறங்கும் போது காட்டுகிறது, மற்றும் மிகவும் குறைவாக கேட்கிறது

ஒரு பணிக்கு ஒரு முழுமையான தலைப்பு படிப்பதற்கு பதிலாக ஒரு தொகுப்பு படிப்பிலிருந்து (/leads/names) தலைப்பு பெயர்கள் வருகின்றன. ஒப்பந்தங்கள் வாசிக்க மட்டுமே ஒப்பந்...

Kamo·1w ago
PerformanceSecurityService

ஒரு படிப்பில் பல தலைப்புகளின் பெயர்கள், தலைப்பு பக்கத்தின் சொந்த விதிகளின் படி

GET /api/security/leads/names?ids=: ஒரு findAllById 100 வரை leads, ஒவ்வொரு LeadViewGate மூலம், VIEW_LEADS கேட்க. என் பணிகள் ஒவ்வொரு பணிக்கும் ஒரு முழுமையான வழிக...

Kamo·1w ago
October 22, 2026
PerformanceTranslateService

பின்னணி பணிகள் ஒவ்வொரு பாட்க்கும் மூன்று இயந்திர இடங்களை பயன்படுத்துகின்றன மற்றும் குறைந்த முன்னுரிமையுடன் அனுப்பப்படுகின்றன

அகராதியை ஒத்திசைக்கும்போது, ஒவ்வொரு போடிற்கும் ஒரு பின்னணி இடம், இயந்திரத்தின் நான்கு வழிகளில் மூன்றை செயல் இழக்கச் செய்தது. பின்னணி அழைப்பாளர்கள் (100- நொடி மு...

Kamo·3w ago
PerformanceKlusterServices

நான்கு நூல்களின் நான்கு நதிகள், மற்றும் ஒரு பேச்சுவார்த்தைக்கு ஒரு இலவசமாக வைத்திருக்கும் ஒரு லைன்

இணைப்புகளின் சிபியு வகுப்பின் அடிப்படையில் அகராதியின் ஒத்திசைவின் தன்னிச்சையான போக்குவரத்து (15- விசை துண்டுகள்): எட்டு நூல்களின் ஒரு பாய்வு 1.5 விசைகள்/ வினாடி...

Kamo·3w ago
PerformanceKlusterServices

லேபிள்களுக்கு மட்டுமே பீம் 4, பீம் 2 64 டோக்கன்கள் வரை

விலை டோக்கன்கள் x பீம். பழைய என்ஜின்கள் இன்னும் இயங்குவதால் கிளஸ்டரில் அளவிடப்படுகிறது: ஒரு ஸ்ட்ரீம் 77 சரங்கள்/செ மற்றும் இரண்டு பீம் 4 இல் குறுகிய சரங்களில் 1...

Kamo·3w ago
October 21, 2026
PerformanceSecurityService

அடமான குழாய் ஒரு சில கேள்விகளில் ஏற்றப்படுகிறது, மேலும் ஒரு ஒப்பந்தத்தை மறுபெயரிடலாம் மற்றும் இரண்டாவது கடனை எடுக்கலாம்

சுற்றுப்பயணத்தில் குழாயின் இரண்டு ரீட்கள் N + 1 ஆக இருந்தன: - GET/அடமான-பயன்பாடுகள் சாதாரண AppMortgage வரிசைகளை ஏற்றியது, பின்னர் ஒவ்வொன்றும் ஒரு செலக்ட் பெர...

Kamo·3w ago
October 19, 2026
Performancekamo-shared-library

உறுப்பினர்கள் முழுவதும் திரும்பப் பெறுவதற்கான (மூல _ வகை, மூல _ ஐடி) மூலம் குறியீட்டு உறுப்பினர் _ அறிவிப்புகள் (ஐஓடி க்ளோஸ்-அவுட் எஃப் 15)

மூலத்தால் திரும்பப் பெறுதல் படிக்கப்படுகிறது (FindBySourceTypeAndSourceId) மற்றும் ஐஓடி அலாரத்தின் முன்னொட்டு மூலம் திரும்பப் பெறுதல் (startwith-> LIKE 'x%') உற...

Kamo·3w ago
October 11, 2026
PerformanceMCPGatewayService

எழுத்தாளர்கள் சரிபார்க்கப்படும் போது ரீட் பாயிண்டர் நகரும்

சாட் _ ரீட் மூன்று மீடியா சர்வீஸ் அழைப்புகளை ஒன்றன் பின் ஒன்றாக செய்தது (பக்கம், உள்-உள்ளடக்க சரிபார்ப்புக்கான அமர்வு, பின்னர் ரீட் பாயிண்டர்). பாயிண்டர் இப்போத...

Kamo·4w ago
PerformanceMediaService

ஒரு எஸ்ஐ ஒரு உள் இறுதிப்புள்ளி வழியாக "தட்டச்சு"… என்பதைக் காட்டுகிறது, மேலும் ஒரு செய்தியின் பேட்ஜ்கள் அனுப்புநரின் கோரிக்கையிலிருந்து விவரிக்கப்படுகின்றன

- POST/api/Media/Inneral/Chat/Typing {ممبرஐடி, உரையாடல்ஐடி, தட்டச்சு} (KamoAI Inneral இரகசியம், InteractionInternalAuth; under/api/Media/Inneral, இது நுழைவு வெட...

Kamo·4w ago
Performancekamo-shared-library

ஒரு id IN (… Union ALL…) ஆகக் காணக்கூடியது, எனவே ஒவ்வொரு காணக்கூடிய குறிப்பும் ஒரு விசையால் வரையறுக்கப்பட்ட குறியீட்டு ஸ்கேன், ஒவ்வொரு குறிப்பின் ஸ்கேன் அல்ல (KamoCollab CP05 பணி 15)

யுகாபைட், பிட்மேப் ஸ்கேன்களுடன், மூன்று ORed கிளைகளுக்கு பதிலளிக்கிறது தொடர்ச்சியான ஸ்கேன் கொண்ட குறிப்புகளின் வெவ்வேறு நெடுவரிசைகள் (உற்பத்தியில் EXPLAIN, CP05...

Kamo·4w ago
September 29, 2026
PerformanceMediaService

A turn-only fan-out reads no roster, ticket id or conversation title

SP98-D-6. ChatFanoutService.prepare resolved the roster, the support ticket's id and the conversation's title for every request, including the turn-only ones (a...

Kamo·1mo ago
September 28, 2026
PerformanceEmailService

A template icon is drawn through Batik once, not on every send

InlineImageTransport memoised a drawing only within one message, so every send that wore the compose template decoded and transcoded the same handful of social ...

Kamo·1mo ago
September 25, 2026
PerformanceKlusterServices

Six Whisper workers and six requested CPUs, so a batch chunk never queues a realtime turn

The acceptance run on k3m1 (4 realtime streams + 1 batch) measured p95 17.9 s: the batch held one of the 4 workers, so one turn waited behind a whole turn. Six ...

Kamo·1mo ago
PerformanceEmailService

Resolve each ics TZID once per file

Kamo·1mo ago
September 23, 2026
PerformanceSecurityService

Maintain commit_logs.translation_count at write time

DDL: **************** (column + partial-friendly index, applied to production already) and **************** (one-time catch-up, already run — 19,373 rows, all l...

Kamo·1mo ago
PerformanceSecurityService

Use the lean LeadVendorProduct reads, not the 8-way eager findById

Caller half of the kamo-shared-library fix: switches every findById() call on LeadVendorProductRepository in securityservice to whichever lean method matches wh...

Kamo·1mo ago
Performancekamo-shared-library

CommitLog carries a maintained translation_count

Adds CommitLog.translationCount and **************** the library side of replacing the changelog translation-backfill sweep's GROUP BY .. HAVING scan with a pla...

Kamo·1mo ago
Performancekamo-shared-library

Member_rights_applied writes only the difference, and reads roles in bulk

Two related fixes to MemberRightsAppliedService, both in the same file: 1. **************** (via recalcChunk) and **************** unconditionally deleted a...

Kamo·1mo ago
Performancekamo-shared-library

Stop eager-fetching LeadVendorProduct's org chain for a single-id read

findById() on LeadVendorProduct pulls its default-EAGER vendor, which itself eager-fetches its own org AND its market (which eager-fetches ITS org again) — and ...

Kamo·1mo ago
PerformanceSecurityService

Read the public changelog's commit counts from a ledger, not COUNT(*)

pg_stat_statements: `SELECT COUNT(c) FROM CommitLog c WHERE c.project IN (:~33 public projects) [AND c.commitTypeId = :t]` ran ~140K times a day at 100-200 ms e...

Kamo·1mo ago
PerformanceDaemonService

Fold and recount the public changelog's commit-log ledger

securityservice's create_commit_log_ledger.sql (applied by hand as the owner) adds commit_log_counts / commit_log_count_deltas: a total per (project, commit typ...

Kamo·1mo ago
PerformanceKBService

Stop asking three hot queries one row at a time

Three queries pg_stat_statements showed as kbservice's top production DB cost, all from asking in a loop (or with a plan the legacy YugabyteDB planner picked ba...

Kamo·1mo ago
Performancekamo-shared-library

Batch two translation lookups the planner was doing badly per row

kbservice's public KB endpoints and its translation-retry sweep both asked KbArticleTranslationRepository one row at a time. Production's pg_stat_statements sho...

Kamo·1mo ago
PerformanceSecurityService

An entry page reads three rows, not the whole public changelog

pg_stat_statements put the public changelog's single-entry reads at the top of the database by a distance: the slug lookup and the two neighbour lookups ran ~90...

Kamo·1mo ago
PerformanceEmailService

Calendar reminder sends move off the shared scheduler thread

Spring's default single scheduler thread is shared by every @Scheduled method in this service — the 1-second campaign pulse, the drip engine's tick, and Reminde...

Kamo·1mo ago
PerformanceDocsService

Bound and stream the byte-heavy imaging paths

/download loaded the whole file into a byte[] through ImageService.downloadDocument before serving it; /bulk-download built the whole ZIP (or merged PDF) as one...

Kamo·1mo ago
PerformanceKBService

Don't load content_json to build the public tree index, and stop loading it twice

buildPublicTreeIndex builds a small structural index (parent/child, slug path, ancestors) from every public article in the org, but it was loading full KbArticl...

Kamo·1mo ago
PerformanceSecurityService

Manage-Credits and Leads-Available read the lead ledgers once instead of counting per row

/leads/credits (GET /api/security/credits/manage) counted the lead pool once per allotment row — ~8 s apiece against one org's 796k-lead pool — then once more g...

Kamo·1mo ago
Performancekamo-shared-library

Leads available and credit balances read a ledger instead of counting rows

"Leads available" was COUNT(*) over the assignable pool, and one org's pool holds ~796k leads: ~7.8 s per (market, product) count and ~11 s for the grouped one ...

Kamo·1mo ago
September 17, 2026
Performancekamo-internal

The dock moves on the compositor, and a window that moves no longer re-renders the tool inside it

Everything about a popup tool window that MOVES - re-packing the row, trading places with a strip click, stepping out of a row behind, a drag, a seam pull, taki...

Kamo·1mo ago
September 16, 2026
Performancekamo-shared-library

Check pool eligibility with an unordered sample, not a full-pool sort

hasEligibleAssignableLead only needs to know whether any pool lead is one the member may take, but it read a page of findAssignablePool, whose ORDER BY assigned...

Kamo·1mo 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·1mo ago
September 9, 2026
Performancekamo-internal

The clock drains on the compositor, not on a timer

The felt's turn clock ran off a 200ms setInterval writing a fraction into React. That is an honest way to build a bar that must track a server deadline, and it ...

Kamo·2mo ago
September 8, 2026
PerformanceMediaService

Stop rebuilding the wallet and the guest list on every check

`viewFor` fetched the recipient's Cheddar balance and queried the whole organization's member list — both per RECIPIENT, on every published frame. At a full tab...

Kamo·2mo ago
September 6, 2026
Performancekamo-marketing

Stop every scene re-rasterising its sprite bank on resize

An audit of all eighteen scenes found the same defect in twelve of them, and it is the shape that degrades a tab over a minute or two and then stalls it in garb...

Kamo·2mo ago
September 5, 2026
PerformanceKlusterServices

Narrow the window a DDL leaves behind for stale backends

Applying DDL bumps the catalog version, and backends still holding the old one fail their next statement with SQLState 40001 until they are recycled. The last o...

Kamo·2mo ago
September 4, 2026
PerformanceDocsService

The profile endpoint stops loading the whole board

Its own comment said it existed so a page could paint the employer "without pulling every advert down with it", and the line under that comment called board() —...

Kamo·2mo ago
September 3, 2026
Performancekamo-internal

Stop the inline image toolbar re-rendering on every scroll frame

measure() runs on each scroll and resize event and built a fresh state object every time, so the toolbar re-rendered whether or not anything about the image had...

Kamo·2mo ago
September 2, 2026
PerformanceEmailService

Index a message in one statement instead of a select-then-write

The search index row's key is assigned rather than generated, so handing a built entity to save() was a merge: Spring Data SELECTed the whole row — body text in...

Kamo·2mo ago
PerformanceKBService

Stop repeating the ancestor chain on every node of a tree

A node inside a tree already knows where it is -- its position is the tree. Sending the ancestor chain on each one meant every article carried two ancestor refs...

Kamo·2mo ago
August 28, 2026
Performancekamo-internal

A conversation outlives the window showing it

Opening a chat window cost seven requests before a message rendered — history, members, receipts, mark-read, the unread snapshot, the counterpart's avatar and t...

Kamo·2mo ago
PerformanceMediaService

Serve a reopened window only what it missed, and audit a page in one write

Two costs, both paid on every single open of a chat window. ?since on GET /sessions/{guid}/messages. A window being reopened wants the messages after the one i...

Kamo·2mo ago
August 26, 2026
Performancekamo-internal

One session snapshot for the tab, not one per hook instance

useUserInfo held its session in three useState cells. It has 187 call sites and roughly 27 of them are mounted for the whole session — the nav, every shell prov...

kamo·2mo 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