KamoCRM

Live Change Log

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

17,593
Total Changes
6,047
Features
5,310
Fixes
30
Projects
Filter by project
All Projects17,593AIService258APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService582InitializerService329KBService151KlusterServices744MCPGatewayService261MediaService602RAGService79SecurityService1,864TranslateService62VOIPService250VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,376kamo-login339kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,674kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore775Docs3,257Feature6,047Fix5,310Other994Performance165Refactor278Revert23Style42Test162Upgrade1
July 8, 2026
Featurekamo-shared-library

MaterialShareLink registry entity + repo (managed/tracked public links)

Backs revocable, expiring, view-counted public links for marketing materials — persisted so links can be listed, revoked, and counted (vs. the stateless HMAC on...

Kamo·3mo ago
Featurekamo-internal

Add right-click / long-press context menu to conversation-view rows

Completes the list action menu across both view modes. Conversation rows now open the same shared menu on right-click and touch long-press with thread-level act...

kamo·3mo ago
Featurekamo-shared-library

DecisionGate.appliedThreshold exposes the actual confidence bar

The gate internally applies max(tenant override, safetyFloor, stage floor) but callers only had the pre-gate tenant wall. appliedThreshold returns the true bar ...

Kamo·3mo ago
Featurekamo-internal

Enterprise Materials workspace (P0) — folders, search, bulk, real preview, shared email composer

Replaces the flat 200-item grid with a full document workspace over the existing imaging backend (which already supports folders, trash, sharing, history, bulk ...

kamo·3mo ago
Featurekamo-internal

Overhaul /messages — iframe rendering, list context menu, threading, races, a11y

Implements the audit of the /messages page end-to-end. Reported issues: - Reply/Reply All/Forward buttons now show text labels; removed from the more-actions ...

kamo·3mo ago
Featurekamo-internal

Instrument Panel redesign — accent families, masthead, section-index nav, unified glass card

Redesigns the two most-visited landings into a permission-shaped operator's console. Foundation - Turn on the already-bundled Geist Sans/Mono (were discarded b...

kamo·3mo ago
Featurekamo-shared-library

**************** targeted update

Async conversion (virtual threads) and scheduled sweeps hold a detached ImgDat; save()/merge() cascades into the orphanRemoval=true images collection and throws...

Kamo·3mo ago
Featurekamo-internal

Add Reply All to the messages reading pane and thread view

Reply All was advertised (keyboard-shortcut label + i18n key) but had no handler. Wire it up: new computeReplyAllRecipients helper puts the sender in To and eve...

kamo·3mo ago
FeatureInitializerService

Partial-unique index enforcing one active closing package per loan (eClose double-close backstop)

CREATE UNIQUE INDEX uk_mlos_closing_pkg_active_loan ON mlos_closing_package (loan_file_uid) WHERE status <> 'CANCELLED'. Durable backstop behind the assembler's...

Kamo·3mo ago
FeatureMediaService

Thumbnail scheduled-generated materials in-process

A headless sweep can't drive ConversionService's OTK thumbnail pipeline, so generate a page-0 PNG thumbnail via ImageIO right after storing the export — schedul...

Kamo·3mo ago
Featurekamo-internal

Recurring generation schedules UI

ScheduleManager: create/list/delete schedules (recipe + daily/weekly/monthly + hour/day + optional auto-post targets + caption); launched from Materials, gated ...

kamo·3mo ago
FeatureMediaService

Scheduled generation — sweep runs recipes on a cadence

- CanvaScheduleController: CRUD for org schedules (recipe + cadence + hour/day + optional social targets), computes nextRunAt - CanvaGenerationService: headle...

Kamo·3mo ago
Featurekamo-shared-library

CanvaSchedule entity + repo (recurring generation)

Org-scoped recurring schedule (recipe + cadence + optional social targets) with an atomic-claim query so a MediaService sweep runs each due schedule once.

Kamo·3mo ago
Featurekamo-internal

Inline expandable Whisper transcript on softphone voicemail + call-history rows

Each recorded row (voicemail and call history) gets a 'Transcript' toggle that fetches the recording's Whisper transcript on demand and shows it inline, so memb...

kamo·3mo ago
Featurekamo-internal

Save + reuse autofill recipes

TemplateAutofill: "Saved recipes" chips load a template + prefilled mapping; "Save as recipe" persists the current template + field values org-wide. + canvaApi ...

kamo·3mo ago
FeatureMediaService

Saved autofill recipes CRUD (org-scoped)

CanvaRecipeController: GET/POST /api/media/canva/recipes + DELETE /{id} — save/list/soft-delete a named brand-template + field mapping, scoped to the caller's o...

Kamo·3mo ago
Featurekamo-shared-library

CanvaAutofillRecipe entity + repo (saved autofill recipes)

Org-shared named binding of a Canva brand template to field values (literal text or a Materials image), so stewards can re-run a standard data-merge.

Kamo·3mo ago
Featurekamo-internal

Add Material ID field to create form, details page, and imports

Threads a nullable materialId (max 40) through the Lead type, leadsApi (create + update wire requests), and the shared leadFields system-field list — which driv...

kamo·3mo ago
Featurekamo-internal

Enterprise autofill UI — data-merge brand templates

TemplateAutofill: pick a Canva brand template, fill each field with literal text, an org/compliance token (NMLS #, Equal Housing disclosure, org name/phone/ web...

kamo·3mo ago
FeatureMediaService

Enterprise autofill — data-merge brand templates

- CanvaApiClient: list brand templates (dataset=non_empty), get dataset, asset-upload jobs, create/get autofill jobs - CanvaController: GET /brand-templates, ...

Kamo·3mo ago
FeatureSecurityService

Persist mapped Material ID on manual import + API intake

Both setDirectFieldOnCreateRequest switches lack a default case, so an unmapped systemFieldPath is silently dropped. Add a materialId case to the manual-import ...

Kamo·3mo ago
Featurekamo-shared-library

Add Material ID field end-to-end in shared-lib

Adds a nullable, max-40-char materialId to the Lead entity (MATERIAL_ID VARCHAR(40)), registers it in LeadHistoryFieldRegistry (Profile category) so edits are a...

Kamo·3mo ago
Featurekamo-internal

Social attach + email-a-material + public links

Distribution for marketing materials, built on the new signed public-URL seam. - materialsApi.publicLink(imgId) + /api/materials/link proxy - Materials: "Copy ...

kamo·3mo ago
FeatureMediaService

Short-lived signed public URLs for marketing assets

Lets social providers (Meta) and email fetch a specific material for a bounded window without exposing the private imaging-materials bucket. - MaterialUrlSigne...

Kamo·3mo ago
Featurekamo-shared-library

First-class borrower self-submit transition ****************

DRAFT→APPLICATION_TAKEN for a borrower (a loan party, not an operator, so no LOS_TAKE_APPLICATION). Routes through transition() with a scoped predicate that gra...

Kamo·3mo ago
Featurekamo-internal

Delete + preview + import-file-to-Canva

- delete a material (gated on MANAGE_MATERIALS) with confirmation - click a thumbnail to preview it in a lightbox - "Import a file" turns a PDF/PPTX/image into ...

kamo·3mo ago
FeatureMediaService

Import a file into Canva as an editable design

- **************** (binary design import) - CanvaController POST /imports (multipart) → create+poll import job → editor deep-link with correlation_state for r...

Kamo·3mo ago
FeatureInitializerService

Migration adds recordings.transcript TEXT column

Kamo·3mo ago
FeatureConversionService

Shared TranscriptionService + generic endpoint; transcribe VOIP recordings

- Extract a reusable TranscriptionService (ffmpeg normalize -> whisper-asr) and a generic POST /api/conversion/transcribe endpoint, replacing the meet-specifi...

Kamo·3mo ago
Featurekamo-shared-library

Transcript column on Recording + RecordingMetadata

Adds a TRANSCRIPT TEXT column to the Recording entity and threads a transcript through **************** (with backwards-compat constructors so existing 5- and 9...

Kamo·3mo ago
FeatureMediaService

Verify return-nav JWT signature; tidy token refresh

- CanvaJwtVerifier: verify the correlation_jwt's Ed25519 signature against Canva's JWKS (/connect/keys), plus aud/exp/type; keys cached by kid. Return-nav n...

Kamo·3mo ago
FeatureKlusterServices

Make whisper-asr independently scalable (HPA, multi-node)

Remove the single-node pin and switch to a per-pod model cache so pods can schedule on any node, and add an HPA (min 1 / max 4, CPU 75%, deliberate scale-up giv...

Kamo·3mo ago
FeatureKlusterServices

Rebrand Guacamole client connection status text to KamoDesktop

Override **************** so the 'Connecting to Guacamole...' screen (and related status) reads KamoDesktop.

Kamo·3mo ago
FeatureMediaService

Recording ingest, retention/quota, storage usage, summary pipeline

- MeetRecordingController: internal (X-Internal-Auth) ingest endpoint the jibri finalize.sh posts finished recordings to. - MeetRecordingService: uploads reco...

Kamo·3mo 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·3mo ago
Featurekamo-shared-library

Meeting-summary canonical template

Adds the "meeting-summary" transactional template (subject + branded HTML with {{roomName}} and raw {{summaryHtml}}) and registers it in CANONICAL_KEYS so it se...

Kamo·3mo ago
FeatureKlusterServices

Prosody moderator module, whisper-asr, jibri recording upload

- Meet-prosody: version-control the custom-plugins ConfigMap (captures the existing token_verification no-op override that was created out-of-band) and add ...

Kamo·3mo ago
FeatureConversionService

Recording transcription endpoint for post-meeting summaries

POST /api/conversion/meet/transcribe (X-Internal-Auth): normalizes an uploaded meeting recording to 16kHz mono WAV via a new additive FfmpegService helper, forw...

Kamo·3mo ago
July 7, 2026
Featurekamo-internal

Calendar integration for scheduled meetings + real recording storage meter

- calendarIntegrationEnabled: when on, a scheduled clubhouse meeting is also added to the creator's calendar (via the existing calendar system) carrying the ...

kamo·3mo ago
Featurekamo-shared-library

MeetingRecording entity + repository for captured recordings

New MEETING_RECORDINGS table (org, meeting ref, room, MinIO bucket/object key, size, duration, captured/expiry timestamps, summary status) — the parent record f...

Kamo·3mo ago
Featurekamo-internal

Marketing app, settings hub, Canva materials

Make Marketing a first-class org-enableable app and ship the Canva-powered Materials experience. App-enablement: - AppType.MARKETING mirror, Organization.isMar...

kamo·3mo ago
FeatureConversionService

Video poster-frame thumbnails for marketing materials

Canva MP4 exports (and any video upload) skip the Docs PDF path and get a single ffmpeg poster-frame thumbnail (_thumb_p0.png) instead of failing. - **********...

Kamo·3mo ago
FeatureMediaService

Canva Connect OAuth + designs/export backend

- CanvaApiClient: PKCE authorize, token exchange/refresh/revoke, users, designs (create/list), export jobs, byte fetch - CanvaTokenService: encrypted per-memb...

Kamo·3mo ago
Featurekamo-shared-library

Canva integration + Marketing as an org-enableable app

- **************** — platform Canva Connect client registration - ImageAssocType.MATERIALS(13, imaging-materials) — org marketing assets bucket - **************...

Kamo·3mo ago
FeatureKlusterServices

Enable Guacamole json-auth SSO + KamoDesktop rebrand

- JSON_SECRET_KEY (optional) on guacamole from the shared desktop-sso secret enables the bundled guacamole-auth-json extension the god-SSO links validate agai...

Kamo·3mo ago
Featurekamo-internal

God-only KamoDesktop icons (Linux + Windows) opening auto-connected sessions

Two nav icons left of Analytics, shown only to god-eligible members (isGod added to NavGateContext). Each fetches a short-lived SSO link from SecurityService an...

kamo·3mo ago
FeatureSecurityService

KamoDesktop SSO token endpoint for god members

GET **************** (god-eligible only) mints a 5-minute guacamole-auth-json token (HMAC-SHA256 + AES-128-CBC, per the extension's wire format) and returns an ...

Kamo·3mo ago
Featurekamo-internal

Org-scoped room names, room-name format, calendar Kamo meetings, start reminders; i18n settings

- useMeeting/MeetingDialog: room names are now namespaced by org token so two orgs can never collide into the same Prosody conference, and honor the org's r...

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