Live Change Log

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

17,860
Total Changes
4,577
Features
4,511
Fixes
32
Projects
Filter by project
All Projects17,860AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService347InitializerService299KBService74KlusterServices539MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,551kamo-login318kamo-marketing582kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,577Fix4,511Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
September 7, 2026
FeatureVOIPService

A number can be shared by several members, and one of them receives it

A single OWNER_MEMBER_ID could say "this number belongs to Sarah" and nothing else. Real desks are not shaped like that: a support line is answered by four peop...

KamoΒ·4d ago
FeatureVOIPService

Serve the inbound webhook URL, from one definition

An administrator adding a text provider has to paste Kamo's inbound URL into the carrier's own console, and nothing told them what it was. Missing that step has...

KamoΒ·4d ago
September 6, 2026
FeatureVOIPService

Actually create the Telnyx account setup, carry MMS, and let a carrier-only org hold threads

Three gaps, and the first was the feature not working at all. TELNYX PROVISIONING WAS DEFINED AND CALLED BY NOTHING TelnyxProvider.provision(), ensureMemberCr...

KamoΒ·4d ago
FeatureVOIPService

Route texts by NUMBER, and add Telnyx on both sides of it

An organization can buy its DIDs and its texting from one company and answer the calls with another. Kamo could not express that: a member's texting was a prope...

KamoΒ·4d ago
September 4, 2026
FeatureVOIPService

Fall back to the org's own hostname for the Teams redirect

A redirect the org typed into its own registration still wins outright β€” Microsoft requires the URI replayed on the token exchange to match the authorization by...

KamoΒ·6d ago
FeatureVOIPService

Lock the shared sweeps, and run two pods

Every @Scheduled sweep here whose effect is shared now takes a named distributed lease through SingletonTaskRunner before it does anything, so it runs once acro...

KamoΒ·6d ago
FeatureVOIPService

Teams Phone falls back to the org's own Entra app

The per-phone-server credentials still win β€” that is the most specific source. What changes is the fallback underneath them: the org's own MICROSOFT_TEAMS regis...

KamoΒ·1w ago
September 3, 2026
FeatureVOIPService

Let an on-premise PBX report a ringing extension

RingCentral and JustCall publish INBOUND_RINGING from their webhooks. FreePBX and KamoPBX publish nothing -- they are the customer's own Asterisk and nothing wa...

KamoΒ·1w ago
FeatureVOIPService

Wire JustCall in through the phone provider abstraction

JustCall (api.justcall.io/v2.1) as a full PhoneProvider: call history, texts, voicemail, recordings, the agent directory and availability, plus signed account w...

KamoΒ·1w ago
August 27, 2026
FeatureVOIPService

Keyword interception at step 0 on the RingCentral rail (MS1 Task 4)

Today a STOP to a number no MEMBER_VOIP_CONFIG row owns hits the "No member found for to-number" branch and vanishes β€” and that branch is EXACTLY where an opted...

KamoΒ·2w ago
FeatureVOIPService

SmsKeywordService β€” the one writer for inbound keywords (MS1 Task 3)

Closes the TODO Task 2 left behind. Until this commit a verified inbound STOP reached BulkTextInboundController, was recognised, was logged, and was then DROPPE...

KamoΒ·2w ago
FeatureVOIPService

Carrier-facing inbound SMS webhook (MS1 Task 2)

POST **************** -- form-encoded or JSON, guarded by the CARRIER'S OWN SIGNATURE. Why a new endpoint. /api/voip/webhook cannot receive a STOP and fails si...

KamoΒ·2w ago
FeatureVOIPService

Implement KamoPBX extension, user and device management

The provider advertised extensionManagement, userManagement and deviceManagement as true while implementing none of them, so the UI would have shown buttons tha...

KamoΒ·2w ago
FeatureVOIPService

Decrypt the KamoPBX credential; test the refusal path

The master credential is stored as ciphertext by the platform settings UI, so it must be decrypted before use β€” handing ciphertext to the API as a password woul...

KamoΒ·2w ago
FeatureVOIPService

Read KamoPBX platform config from the database

Adding a KamoPBX phone server failed with a raw Kubernetes DNS error β€” 'I/O error on PUT ... **************** β€” shown to an organization admin who can neither r...

KamoΒ·2w ago
FeatureVOIPService

Provision a KamoPBX account when a phone server is created

Adding a KamoPBX phone server now creates the underlying account and writes the account id and realm back to configJson. Any configJson the client sent is DISCA...

KamoΒ·2w ago
FeatureVOIPService

Implement the KamoPBX provider

Replaces the stub. KamoPBX is Kamo's own platform, so the organization holds no credential at all: KamoPBXAccountProvisioner creates the account when a phone se...

KamoΒ·2w ago
August 26, 2026
FeatureVOIPService

Read and write the line-window gate

GET surfaces lineWindowEnabled; PUT accepts it as a nullable Boolean so that absent means "not mentioned" and preserves the stored value. Every existing caller ...

KamoΒ·2w ago
FeatureVOIPService

Authenticate RingCentral with a JWT, per phone server

RingCentral was the last provider whose credentials came from a Kamo-wide registration plus two browser consent hops β€” one for the org, one per member. Both are...

KamoΒ·2w ago
FeatureVOIPService

Missed-call and voicemail counts for the softphone indicator

Reported as separate lines rather than a total: the icon shows the sum and its dropdown shows the breakdown, so a pre-summed wire value would make the dropdown ...

KamoΒ·2w ago
August 25, 2026
FeatureVOIPService

An unread snapshot, a mark-read, and a live frame

Its own NATS subject rather than the existing message one: the browser's handler for /topic/voip/message/ plays the arrival sound and opens a tool window for ev...

KamoΒ·2w ago
August 24, 2026
FeatureVOIPService

The blocked capability now outranks the right, and god mode

PhiPlaybackAuthorizer gated PHI call playback on VIEW_CALL_LOGS. That was the whole check because ServiceType.VOIP mapped to the blocked VOIP_RECORDING module, ...

KamoΒ·2w ago
August 10, 2026
FeatureVOIPService

Point at YugabyteDB and use PostgreSQLDialect

CockroachDB has been replaced by YugabyteDB. Connection strings move from cockroachdb-public:26257 to yb-tserver-service:5433, and the Hibernate dialect from **...

KamoΒ·4w ago
August 5, 2026
FeatureVOIPService

Persist calls and associate calls, texts and voicemail with leads

Calls were never recorded anywhere β€” VoipCallEventService published a NATS event for the browser and kept nothing, and RECORDINGS only exists when audio was cap...

KamoΒ·1mo ago
FeatureVOIPService

Microsoft Teams Phone as a provider

Teams is not one API, so the provider glues three control planes together: β€’ Graph, app-only β€” call history (getPstnCalls), presence reads, directory and...

KamoΒ·1mo ago
August 3, 2026
FeatureVOIPService

Persist the VOIP PHI trail to phi_access_log

Call recordings, voicemail audio and transcripts were audited into the log stream, which keeps 14 days against a six-year Β§164.528 obligation and cannot be quer...

KamoΒ·1mo ago
FeatureVOIPService

Require VIEW_CALL_LOGS for call playback in PHI-handling orgs

Recording and voicemail playback checked tenancy and nothing else: any member of the owning org could pull any call in it, transcript included, on extensions th...

KamoΒ·1mo ago
FeatureVOIPService

Record call recording, voicemail and transcript access

Recording playback left no trace. A recorded call is the densest PHI the platform stores β€” the unredacted conversation β€” and "who listened to this call" was una...

KamoΒ·1mo ago
July 16, 2026
FeatureVOIPService

TURN-REST credentials endpoint for the mobile softphone

GET /api/voip/turn/credentials mints ephemeral coturn creds (HMAC-SHA1 over "<expiry>:<memberId>" with the shared static-auth-secret) so native/cellular WebRTC ...

KamoΒ·1mo ago
July 15, 2026
FeatureVOIPService

Accept X-***-Token on REST + signed ?st= stream tokens on audio endpoints

OTKValidationFilter precedence: X-OTK β†’ X-***-Token β†’ ?st= (GET, audio streaming paths only, verified via shared StreamTokenCodec with internal.auth.secret; cla...

KamoΒ·1mo ago
July 8, 2026
FeatureVOIPService

Allow admins to connect RingCentral on a member's behalf

The per-member RingCentral flow was self-serve only, so an admin managing another member's profile saw "they must connect it themselves". Sysadmins commonly cre...

KamoΒ·2mo ago
FeatureVOIPService

Per-member RingCentral OAuth identity + softphone SIP fixes

Softphone SIP credential fixes: - getSipCredentials: map outboundProxyBackup + stunServers (web-phone v2 needs them for WSS failover + ICE/media); throw Provi...

KamoΒ·2mo ago
July 3, 2026
FeatureVOIPService

Doc-07 SMS template system β€” /api/voip/sms/templates + GSM-7/UCS-2 segment guard

**************** over the shared-lib SmsTemplate entities: renders {{var}} and sends via the EXISTING BulkTextProvider primitive (no second carrier path); SmsSe...

SageΒ·2mo ago
April 28, 2026
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Β·4mo ago
April 27, 2026
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Β·4mo 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Β·4mo ago
April 26, 2026
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
FeatureVOIPService

Persist connection test result to isConnected field

- test() endpoint saves isConnected=true/false to DB after every health check - update() resets isConnected to null when configJson changes (credentials may h...

KamoΒ·4mo ago
April 24, 2026
FeatureVOIPService

Per-instance resource controllers + org aggregate + internal sync

Per-instance resource CRUD (extensions / users / devices / voicemail): - VoipExtensionsController at **************** - VoipUsersController at /api/voip/instanc...

KamoΒ·4mo ago
FeatureVOIPService

Multi-instance provider refactor + full FreePBX + Flowroute SMS

Core model change: one org β†’ many VoipProviderInstances (was: one per org). Every provider API call is now instance-scoped. PhoneProvider interface: - New meth...

KamoΒ·4mo ago
April 18, 2026
March 20, 2026
FeatureVOIPService

Add BulkTextProviderFactory with tests

KamoΒ·5mo ago
FeatureVOIPService

Add InfobipTextProvider implementation with tests

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