Live Change Log

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

17,865
Total Changes
4,581
Features
4,512
Fixes
32
Projects
Filter by project
All Projects17,865AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService348InitializerService299KBService74KlusterServices539MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,553kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,581Fix4,512Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
August 25, 2026
FeatureMediaService

Deliver cluster alerts into a member's chat thread

Alertmanager webhook receiver at /api/internal/alerts/chat, so a KamoDesktop alert reaches a person instead of a dashboard. This is the BEST-EFFORT leg. Email ...

Kamo·2w ago
FeatureMediaService

Bug CRUD, screenshots and the one visibility rule

A system bug crosses the tenancy line in one direction: the platform organization sees every tenant's, and no tenant sees another's. That rule lives in ********...

Kamo·2w ago
FeatureMediaService

Guard social messaging and Canva at their credential chokepoints

SOCIAL_MESSAGING is enforced in SocialCredsResolver.resolve — the narrowest point covering every adapter and both directions. No credentials means no Telegram, ...

Kamo·2w ago
August 24, 2026
FeatureMediaService

The Affiliate Sales Scoreboard endpoint

GET **************** answers this organisation's top ten for one metric over one window, plus the caller's own standing when they are not on it. The counters o...

Kamo·2w ago
FeatureMediaService

Refuse meeting recording for a tenant that handles PHI

The capability split made ServiceType.MEET permitted — a live conference on self-hosted Meet never leaves the cluster — while MEETING_RECORDING stayed blocked, ...

Kamo·2w ago
FeatureMediaService

Let the public config be addressed by org id, not only by host

The meet sidecar looks up an org's meet config to decide whether a guest needs a meeting password. It asked by hostname, which on the shared meet host resolves ...

Kamo·2w ago
FeatureMediaService

Carry the type description in both of its shapes

The description is a Lexical document now, so the service stores the plain-text mirror the client sends alongside it and hands readers whichever shape they can ...

Kamo·2w ago
August 22, 2026
FeatureMediaService

Relay "the classic version was just saved" to the editor

DocsService publishes docs.classic-saved.{memberId} after a WOPI save lands on a CLASSIC version; this puts it on /topic/docs/saves/{memberId} over the STOMP co...

Kamo·2w ago
August 21, 2026
FeatureMediaService

Enforce the org chat policy, and close two holes it sat on

Applies the policy at the three places a conversation can start or continue: session creation, member adds, and the send path. A room is not policed pair by pai...

Kamo·2w ago
FeatureMediaService

Put the requestor's face and name on each support chat row

A Chats → Support row showed the same support glyph on every line, so a queue of them was a wall of identical blue circles. The face people actually scan for is...

Kamo·3w ago
FeatureMediaService

Name the requestor's org, and end System User access when the ticket moves

Three things, all about a support desk that answers more than one tenant. The ticket detail now carries a per-viewer verdict on whether to offer "open the requ...

Kamo·3w ago
August 20, 2026
FeatureMediaService

Mint an opaque UUID token, in one insert

createCode generates the token itself, so there is nothing to read first and nothing for two tabs to collide over. That removes the whole apparatus the old sequ...

Kamo·3w ago
FeatureMediaService

Move credit on a newer link, and record the moment it moves

The ingest worker now calls reattributeWhileAnonymous after the traffic bumps. The repository method carries the entire rule, so there is nothing to check here ...

Kamo·3w ago
FeatureMediaService

Serve the tracking-codes tab and ingest the visitor beacon

MediaService already backs the other marketing tabs, so it takes both halves of tracking codes: the authenticated CRUD and stats surface at /api/media/marketing...

Kamo·3w ago
August 15, 2026
FeatureMediaService

Creating and resolving a meeting take the rights that name them

/api/meet/create checked only that you had a session, so every authenticated member of every organization could create a meeting with the org's provider — START...

Kamo·3w ago
August 14, 2026
FeatureMediaService

Relay the outstanding-course count onto the member's own topic

The twin of the legal relay, because NavTop sums the two counts into one badge and a pair of halves that behaved differently would give the member chrome that w...

Kamo·3w ago
FeatureMediaService

Unread means the requestor spoke, or the ticket just became yours

The badge counted "live tickets nobody has picked up, plus the ones I hold" — message-blind, and it only ever fell when a ticket reached a terminal status. So i...

Kamo·4w ago
August 13, 2026
FeatureMediaService

Stamp unseen counts on the ticket list, and keep the queue live

getTickets now bulk-loads an unseen-message count per row for the caller, beside the visitor rows it already loads that way, and getTicketDetail computes its ow...

Kamo·4w ago
August 12, 2026
FeatureMediaService

One conversation, many hands — join on open, name every message, re-open on a reply

A support ticket is worked by whoever is helping, not only by whoever it is currently stamped with. Assignment decides who the work is offered to and whose list...

Kamo·4w ago
August 11, 2026
FeatureMediaService

Reassignment reaches the new agent, and the requestor is told who is there

Reassignment did not reach anybody. assignmentOpenedAt records that a client put the conversation on screen, and it is what raises a ticket at sign-in — but it ...

Kamo·4w ago
August 10, 2026
FeatureMediaService

Endpoints for the sign-in auto-open handover

GET /sessions/chat/auto-open returns the chat conversations this member's client should raise; POST /sessions/{guid}/auto-opened records that it did. The durabl...

Kamo·4w ago
FeatureMediaService

AUTO_ASSIGNMENT, and raise an assigned conversation on the agent's screen

A chat request and a submitted ticket are the same unit of work; the topic's strategy is the only thing that decides how either is handed over. The PRE_TICKET s...

Kamo·4w ago
FeatureMediaService

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 9, 2026
FeatureMediaService

Attach an already-stored file without uploading it again

Forwarding a 2 GB video to three colleagues cost three full uploads. Storage deduplicated them into one object, but only after each transfer had completed and b...

Kamo·4w ago
August 8, 2026
FeatureMediaService

Accept 3 GiB attachments by streaming them to storage

file.getBytes() cannot represent an upload this large — a Java array stops just above 2 GiB — so every attachment past that died on an OutOfMemoryError regardle...

Kamo·4w ago
August 7, 2026
FeatureMediaService

Report the caller's claimable ticket queue

Kamo·1mo ago
FeatureMediaService

GET /types/{typeId}/slots so the settings editor can list slots

The settings UI has always fetched this path, but only POST/PUT/DELETE were mapped, so the Availability Slots tab got a 405 and rendered empty. Unlike /slots/av...

Kamo·1mo ago
August 6, 2026
FeatureMediaService

Relay the legal-package count and guard per-member SUBSCRIBEs

legal.packages.> -> **************** core NATS, no stream — the same shape SupportStompRelayController and PlatformStompRelayController already use. topicFor is...

Kamo·1mo ago
FeatureMediaService

Relay SecurityService platform events onto STOMP

SecurityService owns the platform-admin surface — system configuration, DNS provisioning, commerce sync — but has no WebSocket endpoint, so every screen backed ...

Kamo·1mo ago
August 5, 2026
FeatureMediaService

Capture the demo lead before the booking step

The marketing site's demo form collected name, email, company, company size, industry and a message, then advanced to scheduling without telling anyone. Lead cr...

Kamo·1mo ago
FeatureMediaService

Meeting provider abstraction with Zoom and Microsoft Teams

Meetings were Kamo Meets by construction — MeetService persisted a Meet room name and nothing else. This introduces the abstraction and two remote providers beh...

Kamo·1mo ago
August 3, 2026
FeatureMediaService

Persist MediaService PHI access trail to phi_access_log

Chat message reads were recorded through the Slf4j default writer, which puts the §164.312(b) trail in a 14-day log stream against a six-year retention obligati...

Kamo·1mo ago
FeatureMediaService

Record chat message reads on the endpoints that return bodies

Sending a message left a row; reading one left nothing. Every chat, support and social thread on the platform renders from a handful of endpoints here, and none...

Kamo·1mo ago
July 19, 2026
FeatureMediaService

Carry the AI conversation into the human thread on handoff

Creates or reuses the support session, copies the AI transcript in as one system event, routes it, and tells the visitor honestly what happens next. Confidenti...

Kamo·1mo ago
FeatureMediaService

Accept agent-authored outreach into an open borrower thread

The counterpart AIService's outreach dispatcher calls. Without it the whole outbound path terminated in a recorded 404 - the gate authorized a touch, the messag...

Kamo·1mo ago
July 18, 2026
FeatureMediaService

Assign a sales agent per channel + report LO availability

- WebChatIntegration CRUD threads salesAgentId (null clears the assignment) - lo-presence now returns the member's availabilityStatus alongside online, so the ...

Kamo·1mo ago
FeatureMediaService

Verify routing token, persist leadUid, reassign chat on lead move

- createSupportSession takes a signed routingToken (not preferredAgentMemberId); verified via ChatRoutingTokenCodec + cluster internal.auth.secret, enforces ...

Kamo·1mo ago
July 16, 2026
FeatureMediaService

Snapshot web-chat integration id on support visitor + ticket

Resolves the WebChatIntegration by creatingKeyHash (enabled-filtered, consistent with bootstrap()/AI-prompt resolution) once in createSupportSession and stamps ...

Kamo·1mo ago
FeatureMediaService

Public-chat bootstrap config resolver

Adds an internal GET **************** that resolves a WebChatIntegration by X-Public-Chat-Key-Hash and returns its resolved design/behavior config (default-fill...

Kamo·1mo ago
FeatureMediaService

WebChatIntegration CRUD (mints key + integration, org-scoped)

Org-facing management API for the Phase-2 web-chat settings tab. On create, mints the underlying PublicChatApiKey (same key-gen approach as PublicChatKeyControl...

Kamo·1mo ago
July 15, 2026
FeatureMediaService

Mobile push dispatch (FCM data + direct APNs) with presence gate

chat incoming (MediaController), support ticket (SupportNotificationService), SMS/voicemail (VoipStompRelayController), social **************** Presence-gated l...

Kamo·1mo ago
FeatureMediaService

Accept X-***-Token on REST; slide TTL with per-session timeout

OTKPreAuthFilter resolves X-***-Token when no X-OTK is present (same call MediaService REST without the BFF. KSessionService now slides the Redis TTL with the s...

Kamo·1mo ago
July 14, 2026
FeatureMediaService

Reach the borrower's OWN officer directly, no support-right gate

Drop the ACCEPT_SUPPORT_TICKETS requirement from assignToPreferredAgent: the borrower's assigned loan officer is reachable regardless of whether they're a confi...

Kamo·1mo ago
FeatureMediaService

Direct-to-assigned-LO routing + LO presence endpoint

Powers the borrower portal's merged LO/chat widget: - **************** direct-assigns a public-chat ticket to a SPECIFIC agent (the borrower's assigned loan o...

Kamo·1mo ago
July 13, 2026
FeatureMediaService

Missed-message email notifications (chat + support) with per-source suppression

Durable NATS consumer chat-email-notifier on chat.session.> feeding a MESSAGE_EMAIL_NOTICES ledger (PENDING/SENT, per-sender for chat, per-ticket for support), ...

Kamo·1mo ago
July 10, 2026
FeatureMediaService

Durable last-seen timestamps + bulk endpoint

PRESENCE:{id} is deleted the moment a member goes offline, so nothing recorded when they were last active. Stamp PRESENCE_LAST_SEEN:{id} (orgId + ts, 400d TTL) ...

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