Live Change Log

See what we're building, in real-time. Every feature, fix, and improvement shipped across the platform.

18,042
Total Changes
4,671
Features
4,589
Fixes
32
Projects
Filter by project
All Projects18,042AIService114APIService140BillingService133ConversionService87DaemonService109DocsService191ESigService80EmailService392InitializerService304KBService76KlusterServices550MCPGatewayService45MediaService466RAGService63SecurityService1,532TranslateService47VOIPService175VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,606kamo-login319kamo-marketing590kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,332kamo-signer-monorepo50kamolos104
Filter by type
All TypesBuild24CI523Chore670Docs231Feature4,671Fix4,589Other6,781Performance136Refactor274Revert23Style48Test71Upgrade1
April 26, 2026
Otherkamo-internal

Pipe sip.js init steps to server log via beacon

The browser-side SDK init failure is currently invisible — the popup just says "Phone SDK failed to initialize" with no message, the WebSocket never opens, and ...

kamo·4mo ago
Fixkamo-marketing

Periodic STOMP presence heartbeat for public support

Refresh Redis TTL for public session presence so agents see accurate online state.

Kamo·4mo ago
Fixkamo-internal

Globe uses media session presence for marketing visitors

Request public-chat session GUIDs in presence snapshot; treat online if either session or requestor member is connected. Handle snapshot envelope and sessionGui...

kamo·4mo ago
FixMediaService

Track public support chat by session GUID in Redis

Marketing visitors use /ws/public-chat-native without memberId; tickets still reference the org placeholder member as requestor. Increment PRESENCE_PUBLIC keys ...

Kamo·4mo ago
Refactorkamo-internal

Ticket requestor presence via WebSocket only

kamo·4mo ago
RefactorMediaService

Requestor snapshot over STOMP, drop HTTP presence

Kamo·4mo ago
Otherkamo-internal

Surface SIP.js init/transport errors to browser console

Empty "Phone SDK failed to initialize" messages were hiding the actual failure from sip.js. Turn on logBuiltinEnabled so the library writes its transport / regi...

kamo·4mo ago
FixVOIPService

Don't wipe member assignment on sync from providers that lack metadata

**************** unconditionally overwrote PhoneExtension.assignedMemberId with whatever the provider returned. FreePBX (and any provider that doesn't track whi...

Kamo·4mo ago
Featurekamo-internal

Add includeCompany to market popup and companyName to leads

Market add/edit popup (LeadMarketManager): - Radio control "Track Company Name" / "Individual Only" (required) - Defaults to unset on new market; pre-fills on e...

kamo·4mo ago
FeatureInitializerService

Add include_company and company_name columns

LeadCompanyColumnRunner (Order 40) idempotently adds: - lead_markets.include_company (BOOLEAN, nullable) — tracks whether a market requires company name on le...

Kamo·4mo ago
FeatureSecurityService

Expose includeCompany in intake-config and market-config responses

Both **************** and **************** now include the includeCompany flag so the frontend knows whether to show the company name field on lead creation.

Kamo·4mo ago
Featurekamo-shared-library

Add includeCompany to LeadMarket and companyName to Lead

- LeadMarket entity gets include_company (Boolean, nullable) - Lead entity gets company_name (String, max 50, nullable) - LeadMarketDTO, CreateLeadMarketRequest...

Kamo·4mo ago
Fixkamo-internal

Show provider name in view mode + own extension in edit dropdown

Two bugs on **************** 1. View mode dumped the raw UUID — "Instance 32f520b0-347a-…" — because the instance list was only loaded inside handleVoipEdit...

kamo·4mo ago
Fixkamo-shared-library

Serialize ExtensionDto.assignedMemberId as a string

overflows JS's safe-integer range (e.g. 1168485658174423046 round-trips as 1168485658174423000 once a JSON number hits the browser). The frontend already typed ...

Kamo·4mo ago
OtherSecurityService

Add diagnostic logging to /names endpoint

Log orgId, member count, and per-member name resolution to diagnose why the assigned-member name is not resolving correctly.

Kamo·4mo ago
FixKlusterServices

Make WebRTC config survive pod restart

The previous approach (http_custom.conf with [general] override) didn't actually take effect because Asterisk's INI parser doesn't honor multiple [general] sect...

Kamo·4mo ago
FixKlusterServices

Enable Asterisk built-in HTTP server on :8089 for WebRTC /ws

A chan_pjsip `protocol=ws` transport rides on top of res_http_websocket, which in turn requires Asterisk's built-in HTTP server to be running. The default FreeP...

Kamo·4mo ago
Featurekamo-internal

Show sales type path in Add Lead subtitle

Append the market's Sales Type and Sub-Type to the "Adding to" line so the form mirrors the labels used in the Edit Market popup at **************** Renders as ...

kamo·4mo ago
FixSecurityService

Prioritize real first/last name over usernameAlias for display

usernameAlias is functionally a login handle (often equal to username), not a display name. Real human-readable names live on User.name (EmbNameFull). Apply to ...

Kamo·4mo ago
Refactorkamo-internal

Move Create Lead action into header, drop sticky bar

Replace the top-right Cancel button with the primary Create Lead action and remove the bottom sticky action bar entirely. Add a back IconButton to the left of t...

kamo·4mo ago
Fixkamo-internal

Scope Add Lead scroll and footer to its content area

The form was using minHeight: 100vh inside a parent that's already calc(100vh - 56px), forcing an outer scrollbar even when content fit. The action bar also use...

kamo·4mo ago
Featurekamo-internal

Unified PhoneSdk supporting RingCentral + sip.js (FreePBX)

The softphone hook used to instantiate ringcentral-web-phone unconditionally, which threw on any FreePBX credential shape because that SDK is hard-coded to Ring...

kamo·4mo ago
FeatureVOIPService

WSS-aware SIP credentials for browser softphones

The /api/voip/sip/credentials endpoint now returns credentials a browser-side SIP stack can actually use: WSS transport, public domain, and a wsServers URL. - ...

Kamo·4mo ago
FeatureKlusterServices

Add WSS WebRTC transport for browser softphones

Asterisk's chan_pjsip now binds a plain WebSocket transport on 0.0.0.0:8089 and Traefik terminates TLS at **************** (port 443) so kamo-internal can regis...

Kamo·4mo ago
Fixkamo-internal

Smart multi-column layout for Add Lead form

Restructure the page into a top-level grid so sections compose horizontally instead of stretching individual fields: - Market & Assignment uses a 3-col interio...

kamo·4mo ago
Fixkamo-internal

Use /api/security/members/names for assigned-member name resolution

The by-department endpoint filters to active TeamMembers only, missing assignments to base Members or inactive members. Switch to /names which returns all membe...

kamo·4mo ago
FeatureSecurityService

Add /names endpoint returning id→name for all members regardless of state

The by-department endpoint filters to active TeamMembers only, but extension assignments may reference base Members or inactive members. Use /names for ID→name ...

Kamo·4mo ago
Refactorkamo-internal

Make Best Contact Time a free-text field

Replace the Morning/Afternoon/Evening dropdown on the Add Lead and Lead View edit forms with a plain text input so members can describe specific windows (e.g., ...

kamo·4mo ago
Fixkamo-internal

Full-width Add Lead form and clearance for sticky footer

Drop the 1200px max-width on /leads/new so the form spans the page area, and bump bottom padding so the sticky action bar no longer overlaps the last form secti...

kamo·4mo ago
Featurekamo-internal

Single-lead Add Lead form at /leads/new

Refactor Add Lead from an in-page multi-tab pane into a dedicated route at /leads/new so it can be linked directly. The current market is passed through as ?mar...

kamo·4mo ago
FeatureSecurityService

Add **************** endpoint

Returns salesType, subType, and customForms for a market by marketId so the Add Lead form can render sub-type fields and intake custom forms without first creat...

Kamo·4mo ago
FixSecurityService

Resolve display name with correct priority in by-department endpoint

Priority: member.usernameAlias → user.name.formatFull() → user.alias → user.username

Kamo·4mo ago
Featurekamo-shared-library

Add isDisplayOnIntake to create/update request DTOs

Kamo·4mo ago
Featurekamo-shared-library

Expose isDisplayOnIntake in FormFieldDTO

Kamo·4mo ago
Featurekamo-shared-library

Add IS_DISPLAY_ON_INTAKE column to FormField entity

Kamo·4mo ago

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing