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
April 28, 2026
Featurekamo-internal

Wave 3 conversions, fallback fix, and auto-translate CI

- Replace all hardcoded English strings with t() calls across wave 3 components (chat, clubhouse, support, notes, pipeline, leads, nav, etc.) - Merge wave 3 f...

kamo·5mo ago
Featurekamo-internal

Wire next-intl with member.language as locale source

Adds next-intl-based internationalization across kamo-internal without URL locale prefixes. Active locale is read from the kamo-locale cookie, which mirrors the...

kamo·5mo ago
FeatureVOIPService

Fall back to imaging recordings for call history + voicemails

FreePBX 17 doesn't expose voicemail messages over REST or GraphQL on this install (the GraphQL voiceMail type returns mailbox config, not messages, and /admin/a...

Kamo·5mo ago
Featurekamo-shared-library

Paginated Recording lookup by (instance, extension, isVm)

Used by the softphone tabs as the canonical source of truth for call recordings and voicemails when the upstream provider can't list them — e.g. FreePBX 17 has ...

Kamo·5mo ago
FeatureSecurityService

Auto-provision KamoCRM seat on sub-org creation; promote-billing-owner endpoint

EntitlementService walks SubscriptionMember (not AccountMember) to compute member entitlements — the union of features across active licensee subs, plus the Fre...

Kamo·5mo ago
April 27, 2026
FeatureInitializerService

Add member language + default_currency columns

Adds two NOT NULL columns to the members table backing the new Member.language (VARCHAR DEFAULT 'ENGLISH') and Member.defaultCurrency (VARCHAR(10) DEFAULT 'USD'...

Kamo·5mo ago
Featurekamo-register

Add language step, country timezone picker, scroll + *** fixes

- New 'My Language' step prepended to the wizard, mirroring the country step's layout. Lists the 22 marketing-supported locales as flag tiles with native na...

Kamo·5mo ago
Featurekamo-internal

Add language + default currency to Regional Settings card

Member profile's Regional Settings card now exposes editable Language (22 supported locales mirroring the marketing site) and Default Currency (searchable Autoc...

kamo·5mo ago
FeatureSecurityService

Persist member language/timezone/currency on signup

The /register endpoint now accepts language, timezone, and defaultCurrency alongside the existing country field. RegistrationService sets country and timezone o...

Kamo·5mo ago
Featurekamo-shared-library

Map external customer address blocks into AccountAddress on pull

Add AdapterAddressMapper helper that converts a JSON address node from any provider into an EmbAddress and attaches it to an Account as a typed AccountAddress (...

Kamo·5mo ago
Featurekamo-internal

/account/new copy-from-lead UX, full name fields, dual phones, address; account-level address management

Frontend: - /account/new: per-section "Copy from Lead" buttons + header "Copy all from Lead" button (when leadId param) - Name section: prefix, first, middle, l...

kamo·5mo ago
FeatureSecurityService

Support nested name/email/phoneNumbers + address management endpoints

- AccountController accepts nested name/email/phoneNumbers JSON on POST/PUT - Initial address on POST creates SHIPPING (and BILLING when useAsBillingToo set), s...

Kamo·5mo ago
Featurekamo-internal

Production-grade History + Voicemail tabs with media-player tool

History tab (SoftphoneHistoryTab.tsx): - Infinite scroll via IntersectionObserver inside the panel's scroll container - Filter chips: All / Inbound / Outbound /...

kamo·5mo ago
FeatureInitializerService

Migration runner for Recording provider-lookup columns + VM archive columns

Adds RECORDINGS.provider_instance_id (UUID) and provider_external_id (VARCHAR(64)) plus the composite idx_recordings_provider_lookup index used by the softphone...

Kamo·5mo ago
FeatureConversionService

Persist providerInstanceId + providerExternalId on Recording at ingest

Threads asterisk-support's X-Phone-Server-Id and X-Asterisk-Unique-Id (already in UnprocessedRecording) onto the new RecordingMetadata fields so call/voicemail ...

Kamo·5mo ago
FeatureDocsService

Add **************** with HTTP Range support

Generic streaming endpoint for audio/video imaging assets, used by the kamo-internal MediaPlayer tool. Reuses ImageService authorization (same as /download/...)...

Kamo·5mo ago
FeatureVOIPService

Recording playback, voicemail archive, paginated voicemail, history enrichment

- New RecordingController with bulk lookup, range-streamed audio for master + per-channel tracks, and metadata for the media-player tool window - CallController...

Kamo·5mo ago
Featurekamo-shared-library

Provider lookup keys on Recording, voicemail archive, MinIO range streaming

- Recording: add providerInstanceId + providerExternalId for joining provider call-history / voicemail rows back to imaging assets - PhoneVoicemail: add isArchi...

Kamo·5mo ago
Featurekamo-internal

Add History tab — paginated audit timeline with search and filters

- LeadHistoryPanel: sticky filter toolbar with debounced search, **************** filters, MUI table with pagination, color-coded event chips, member-name resol...

kamo·5mo ago
FeatureSecurityService

Add GET /{id}/history and /{id}/history/filters endpoints

Paginated, filterable, searchable lead-history endpoint with batch actor loading (no N+1). Filters endpoint returns distinct used fields, all registry fields, d...

Kamo·5mo ago
Featurekamo-shared-library

Add lead-history audit log — entity, registry, service, DTO, LeadService hooks

- LeadHistory entity (UUID PK, plain Long FKs — no FK constraints to allow lead deletion/conversion) - LeadHistoryEventType enum with human-readable labels - Le...

Kamo·5mo ago
Featurekamo-internal

Dynamic member type label in My Account page title

Title now reads "My {Member|Team Member} Account" using the org-configured behavior labels, switching automatically once the member's type is loaded.

kamo·5mo ago
Featurekamo-internal

Move Create Document button into DocManager toolbar

The button was only available on /doc/manager via the actions prop. Moved all logic (state, handler, DOC_TYPES, menu) into DocManager so it appears on every emb...

kamo·5mo ago
Featurekamo-internal

International support — CountrySelect, LanguageSelect, SubdivisionField across all forms

- Add reusable CountrySelect (207 countries, flag icons), LanguageSelect (26 languages, flag icons), SubdivisionField (US state dropdown with flags; other cou...

kamo·5mo ago
Featurekamo-shared-library

Add international support — Lead country/subdivision/timezone, Org language, CountryType isProvince

- CountryType: add PROVINCE_NAMES set, isProvince(), getSubdivisionLabel() - Organization: add language (LanguageType) field - Lead: add country (CountryType), ...

Kamo·5mo ago
Featurekamo-internal

ASSIGN_LEADS right, agent filter unassigned option, grid column cleanup

- Gate 'Unassigned Leads' agent filter option behind ASSIGN_LEADS right - 'All Leads' excludes unassigned leads for members without the right - Remove Street, P...

kamo·5mo ago
Featurekamo-shared-library

Add ASSIGN_LEADS right (ID 137) under CRM section

Kamo·5mo ago
Featurekamo-internal

Add Assign To field to Market & Assignment section on /leads/new

- Fetches active team members from **************** on mount - Groups members by department with alphabetically sorted departments and members - Formats names a...

kamo·5mo ago
Featurekamo-asterisk-support

Emit recordedAt + per-file extension in upload manifest

- Watcher: every emitted Recording carries RecordedAt, derived from the EPOCH segment of our managed **************** filename, falling back to file mtime f...

Kamo·5mo ago
FeatureConversionService

Pass Recording metadata to imaging — ffprobe length + manifest parsing

- **************** runs ffprobe -show_entries format=duration on the master Opus/WebM, returns ms. 0 = unknown (not fatal). - **************** now: * runs p...

Kamo·5mo ago
Featurekamo-shared-library

Recording + RecordingExt entities, RecordingImagingService writes them

- New Recording entity (UUID id, IMG_ID, IS_MASTER, IS_VM, EXTENSION, MEMBER_ID, LENGTH, DATE_RECORDED, DATE_CREATED [DB-defaulted via @CreationTimestamp]). ...

Kamo·5mo ago
Featurekamo-internal

Update Platform Administration cards to match unified tab structure

Replace the two stale cards (Organizations standalone page + Configuration) with five cards matching the actual tabs: General, Organizations, VOIP & SMS, System...

kamo·5mo ago
Featurekamo-internal

Full-width grid layout and move sync trigger from Advanced tab

- Redesign VOIP & SMS tab to use full content-area width: pipeline stats span the top row, Recording Processing and Global Sync Schedule sit side by side in...

kamo·5mo ago
Featurekamo-internal

Merge Organizations into Configuration page with unified tab nav

- Add Organizations as a tab in **************** (General · Organizations · VOIP & SMS · System User · Advanced order) - Delete **************** standalone page...

kamo·5mo ago
Featurekamo-marketing

Add Go logo to BUILT WITH banner

Kamo·5mo ago
Featurekamo-internal

Surface PHONE_SERVER_ID on phone-instance overview tab

Operators configuring kamo-asterisk-support on a FreePBX host need to paste the matching VoipProviderInstance UUID into the helper's config file as PHONE_SERVER...

Kamo·5mo ago
Featurekamo-internal

Wire call features settings end-to-end through provider abstraction

- voipApi: add CallFeaturesDto type, getCallFeatures() and setCallFeatures() API calls - useSoftphone: add **************** state loaded from API on startup; ...

kamo·5mo ago
FeatureVOIPService

Add call features API — call forward + auto-answer wired through provider abstraction

- Add CallFeaturesDto and SetCallFeaturesRequest POJOs - Add callForward/autoAnswer flags to ProviderCapabilities - Add default getCallFeatures/setCallFeatures ...

Kamo·5mo ago
Featurekamo-asterisk-support

Initial commit — FreePBX recording uploader (GO)

Watches **************** for finished WAV recordings, groups multi-leg call legs by Asterisk UNIQUEID, and uploads each batch to APIService /api/voip/recordings...

Kamo·5mo ago
Featurekamo-internal

VOIP_RECORDING_UPLOADS scope + recording pipeline counters/tunables

- APIManager: new VOIP_RECORDING_UPLOADS scope option (used by kamo-asterisk-support on FreePBX hosts to upload voicemail and call recordings via APIService)....

Kamo·5mo 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