Live Change Log

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

17,874
Total Changes
4,587
Features
4,515
Fixes
32
Projects
Filter by project
All Projects17,874AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService351InitializerService299KBService74KlusterServices542MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,556kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,587Fix4,515Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
July 7, 2026
FeatureSecurityService

Lead callback endpoints (schedule/list/resolve)

New **************** controller + service: persists the callback, posts scheduling/outcome notes into the lead's media stream, and mirrors the callback onto the...

Kamo·2mo ago
Featurekamo-shared-library

Add LeadCallback entity, status enum, and repository

Backs the lead-view callback feature: a lead-owned callback record (PENDING/CONTACTED/CANCELED) keyed off leadUid, with a soft reference to the mirrored EmailSe...

Kamo·2mo ago
Fixkamo-internal

Explain why the MLOS default-lead-source control is hidden instead of silently dropping it

On the vendors-products tab the "designate default lead product" control is gated on mortgage-vertical readiness — POS enabled, an active MORTGAGE commerce mark...

kamo·2mo ago
ChoreSecurityService

Rebuild against shared-lib dbNow() CAST fix

Empty commit to trigger CI, which clones kamo-shared-library at build time and picks up the **************** dbNow() CAST(now() AS timestamp) fix.

Kamo·2mo ago
Fixkamo-shared-library

DbNow() use CAST(now() AS timestamp), not now()::timestamp

The ::timestamp shorthand is mangled by Hibernate's native-query parser (it reads ':' as a named-parameter prefix, turning ::timestamp into :timestamp) -> CRDB ...

Kamo·2mo ago
Featurekamo-internal

Create a session for group chats opened by memberIds

ChatTool ignored props.memberIds: a group open arrived with an empty userId and no sessionGuid, so the 1:1 createSession bailed early and the window never got a...

kamo·2mo ago
Fixkamo-internal

Stop duplicate chat popups for the same conversation

The tool-window dedup only exact-matched a single userId key against an async-mirrored windowsRef, so the same 1:1 chat opened twice: - userId from a member ro...

kamo·2mo ago
ChoreSecurityService

Rebuild against kamo-shared-library rights-waterfall fix (5f20d29)

CI clones and builds kamo-shared-library from source, so this empty commit re-triggers the build to pick up the layered rights resolution. On boot the MemberRig...

Kamo·2mo ago
Fixkamo-internal

Show all enabled-app permission groups in job title & department editors

JobTitleManager and DepartmentManager only ever rendered two permission groups — General and CRM — so **************** rights were invisible and uneditable ther...

kamo·2mo ago
Fixkamo-shared-library

Resolve member rights as a true waterfall instead of NUKE-always-wins

Effective rights were computed by folding every source (roles, department, job title, member) into one map where NUKE always won. That meant a member holding bo...

Kamo·2mo ago
FixSecurityService

Revert securityProvider to self-pointing; self-heal member applied rights

Two prod issues from the securityProvider-mirror change: 1. Enter-as-System-Member failed with "No membership in the organization's security provider" for e...

Kamo·2mo ago
Fixkamo-internal

Refresh provider status when OAuth popup closes

The provider now redirects to the api-gateway callback (a different origin), so its postMessage may not pass the opener origin check. Re-fetch real provider sta...

kamo·2mo ago
FeatureAPIService

Public passthrough for email OAuth provider callback

Forward GET **************** to EmailService sessionlessly (strips auth, no redirect following), mirroring the RingCentral OAuth callback. This is the fixed pub...

Kamo·2mo ago
FeatureEmailService

Fixed public redirect + gateway-forwarded callback

Platform email OAuth (Microsoft 365 / Google / Zoho) had no valid public redirect URI: the redirect was derived from the request host, which in prod is the clus...

Kamo·2mo ago
FixDocsService

Serve e-sign editor PDF for any converted doc, incl native PDFs

The e-sign editor (DocumentEditor → PdfCanvas / PageThumbnailSidebar) opens any converted document, not only files uploaded through the sig-template flow. It fe...

Kamo·2mo ago
Fixkamo-internal

My Docs uses MY_DOCS ordinal (3), not enum id (4)

The backend resolves ImageAssocType via `values()[assocType]` (ordinal index) and persists it @Enumerated(ORDINAL). Every imaging surface passes the ordinal, bu...

kamo·2mo ago
FixConversionService

Convert deduplicated documents so e-sign edit is enabled

When an uploaded file's bytes matched an existing ImgDat, the dedup path (register-existing) reused that dat verbatim and never ran the conversion pipeline. If ...

Kamo·2mo ago
FixVOIPService

Return 200 allFalse for unconfigured org capabilities

GET /api/voip/capabilities threw ProviderNotConfiguredException (422) when an org had no phone provider, logging a red console error on every page load for phon...

Kamo·2mo ago
Fixkamo-internal

Stop 404/422 console errors for un-customized nav and phone-less orgs

Read the ui-preferences collection endpoint (always 200) for the initial navLayout load instead of the single-key GET, which 404s when a member has never custom...

kamo·2mo ago
FixKlusterServices

Proactively provision browser-only aliases (media.*)

The log-scan discovery mechanism can never bootstrap the `media` alias: it is only ever contacted by the browser over a WebSocket/XHR subresource (SockJS /ws/in...

Kamo·2mo ago
Featurekamo-internal

Gate lead contact-info by assignment + new privacy rights

Mirror the three new CRM rights. On the lead detail page, mask/lock the Primary Contact, Mailing Address and Property Address fields for leads not assigned to t...

kamo·2mo ago
FeatureSecurityService

Enforce lead contact-info privacy rights

getAllLeads now returns the lean LeadListDTO and hides unassigned leads from members without VIEW_UNASSIGNED_LEADS. getLeadById masks contact info (state preser...

Kamo·2mo ago
Featurekamo-shared-library

Lead contact-info privacy rights + lean list DTO

Add three CRM rights (161-163): "Assigned To Others: View/Edit Lead Contact Info" and "View Unassigned Leads". Add LeadListDTO — a lean projection for the /lead...

Kamo·2mo ago
FixSecurityService

Interpret lock LAST_EDIT_AT as UTC for epoch-millis expiry

dbNow() now returns DB-UTC wall-clock (now()::timestamp), so recover the absolute instant with toInstant(UTC) instead of the JVM default zone — keeps the browse...

Kamo·2mo ago
Fixkamo-shared-library

DbNow() cast now()->::timestamp (TIMESTAMPTZ->Instant broke LocalDateTime)

SELECT now() returns TIMESTAMPTZ, which Hibernate materializes as java.time.Instant and cannot cast to the declared LocalDateTime return type — throwing ClassCa...

Kamo·2mo ago
Featurekamo-register

Send membership type from the /member and /team paths

/team signups create a TEAM_MEMBER (created PROSPECT, pending admin activation); /member signups create a MEMBER. RegisterFlow takes a memberType prop supplied ...

Kamo·2mo ago
FeatureSecurityService

/team creates a TEAM_MEMBER (PROSPECT), /member creates a MEMBER

Public registration now honors the memberType the register site sends (from the /member vs /team path): /team creates a TEAM_MEMBER — as PROSPECT, so an admin m...

Kamo·2mo ago
July 6, 2026
Fixkamo-internal

Agent filter shows member name + phone extension, not email

The Agent dropdown labelled each teammate with their email because the loader read firstName/lastName keys the backend never sends (it sends nameFirst/nameLast/...

kamo·2mo ago
FeatureSecurityService

Expose team-member work phone extension in team-members-contractors

The /leads Agent filter needs the work-phone extension to label options as "Name (ext 8080)". The extension already exists on TeamMember (getPhoneWorkExtension)...

Kamo·2mo ago
Featurekamo-internal

Request-support popup shows parent-org shared topics

Point the ticket-creation topic dropdown at the new /api/support/topics/available endpoint (own-org + parent-shared topics) so child-org users can contact their...

kamo·2mo ago
FeatureMediaService

Surface parent-org shared topics in request-support popup

Child-org users could not see their parent org's shared support topics (assignToOwnOrg=false) when requesting support, because the popup only fetched own-org to...

Kamo·2mo ago
Fixkamo-shared-library

Correct inverted parent-shared topic query

The child-org topic query filtered on assignToOwnOrg=TRUE (own-org-only) when it should return topics SHARED with child orgs (assignToOwnOrg=FALSE). Rename the ...

Kamo·2mo ago
FeatureSecurityService

New child orgs inherit their parent's securityProvider

When creating a child org from kamo-internal, set the new org's securityProvider to the parent org's securityProvider (the org it's created under) instead of le...

Kamo·2mo ago
Featurekamo-login

Show account-linked notice on ?linked=1

When register links an existing account to a new org, it redirects here with ?linked=1. Show "You already have a Kamo account — we've added this organization to...

Kamo·2mo ago
Featurekamo-register

Handle account-linked response for existing users

When the entered email already belongs to an ACTIVE account, the backend links this org to it and returns ACCOUNT_LINKED. Route those users straight to sign-in ...

Kamo·2mo ago
Featurekamo-internal

Wire up member/team-member create + Prospect-gate UI

- Add the missing POST proxy routes /api/security/members/create and /create-team-member (these 405'd before, so creation never reached the backend). Status...

kamo·2mo ago
FeatureSecurityService

Reuse existing users, mirror to securityProvider, gate team-member sign-in

Reuse (no duplicate accounts for the same person): - MemberCreateController now reuses an existing user by personal email case-INSENSITIVELY (was case-sensiti...

Kamo·2mo ago
Featurekamo-shared-library

SecurityProvider membership mirror + reuse/patch groundwork

- **************** userId): mirror a user into the org's securityProvider org as a base Member (deduped; no-op when the org secures itself or the user is al...

Kamo·2mo ago
Fixkamo-register

Send the registrant's hostname in the body so the account lands under the right org

The resolved org was available on the client but never sent to the backend — the org was conveyed only implicitly via X-Forwarded-Host, which the ingress rewrit...

Kamo·2mo ago
FixSecurityService

File new accounts under the org of the domain, not kamocrm

/register bound the new member's org to the request Host, but the org signal never survived the hop: kamo-register proxies every signup to the shared api.kamocr...

Kamo·2mo ago
Fixkamo-shared-library

Resolve org-by-domain with a deepest-label alias fallback

Add **************** exact domain match, then drop the deepest label once (register.optionone.com -> optionone.com) so a per-org register/branding subdomain res...

Kamo·2mo ago
Fixkamo-login

Stop viewport shaking on browsers with classic scrollbars

On machines whose Chrome uses layout-consuming (non-overlay) scrollbars, the login/recover pages fidgeted with both scrollbars flickering. Root cause: the root ...

Kamo·2mo ago
Featurekamo-internal

Wire Tasks tab to real backend + delete action + live count

Adds the Next proxy routes for /leads/{id}/tasks[/{taskId}] (the tab's getTasks/ addTask/updateTask/completeTask calls were 404ing), a deleteTask action in the ...

kamo·2mo ago
FeatureSecurityService

Lead tasks REST API + real-time TASK_CHANGED

Implements the backend the /leads/view Tasks tab was already calling but that never existed: GET/POST/PUT/DELETE **************** (LeadTaskController + LeadTask...

Kamo·2mo ago
Featurekamo-shared-library

LeadTask entity for lead follow-up tasks

Backs the /leads/view Tasks tab (previously a frontend-only stub with no persistence). LeadTask (table LEAD_TASK) mirrors the frontend TaskItem shape **********...

Kamo·2mo ago
Featurekamo-internal

Real-time datagrid + live lead view with per-pane edit locks

/leads grid is now fully live over websocket (NATS→STOMP): rows add/remove/update against the active filter automatically and changed cells blink once for other...

kamo·2mo ago
FeatureMediaService

Org-guard the /topic/leads/rt/{orgId} realtime subscription

Cross-tenant SUBSCRIBE guard for the new lead real-time topic, mirroring the existing /topic/social/feed guard: a member may only subscribe to their own org's l...

Kamo·2mo ago
FeatureSecurityService

Per-pane edit-lock REST API + auto-save sweeper

Adds /api/security/leads/{id}/locks **************** backed by LeadLockService: exclusive per-pane reservation, draft-buffering heartbeats that reset a 5-min id...

Kamo·2mo ago
Featurekamo-shared-library

Real-time NATS publishing + per-pane edit-lock entity

Publish org-scoped lead events on security.leads.rt.{orgId} (created/updated/ deleted with changed-field keys, history-appended) so the /leads grid and /leads/v...

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