KamoCRM

Live Change Log

Every feature, fix and improvement, posted as it ships. Nothing is held back for a launch.

17,594
Total Changes
6,048
Features
5,310
Fixes
30
Projects
Filter by project
All Projects17,594AIService258APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService582InitializerService329KBService151KlusterServices744MCPGatewayService261MediaService602RAGService79SecurityService1,864TranslateService62VOIPService250VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,377kamo-login339kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,674kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore775Docs3,257Feature6,048Fix5,310Other994Performance165Refactor278Revert23Style42Test162Upgrade1
July 27, 2026
FeatureSecurityService

Bulk-email recipient resolution + department contact fields

- **************** POST /api/security/marketing-email/ recipients/resolve turns lead/account/application IDs into email recipients. Gated on MANAGE_BULK_EMA...

Kamo·3mo ago
Featurekamo-shared-library

Shared-lib support for bulk-email recipient resolution + company contact email

- **************** contactEmail branch (company contact email editable via PUT /api/security/org, used as company-scope campaign From) - ApplicationRepository...

Kamo·3mo ago
FeatureEmailService

Bulk email campaign backend — provider, dispatcher, compliance, realtime

Backend for org-level bulk email campaigns, entirely separate from the everyday email provider so it can't be throttled/blocklisted alongside business mail: - ...

Kamo·3mo ago
Featurekamo-shared-library

ECOA/FCRA adverse-action notice scaffolds + satisfy-timer

The issuance mechanism's shared-lib half. ComplianceTimerService gains **************** — flips only ARMED ECOA_AA timers to SATISFIED (leaves COUNTEROFFER/INCO...

Kamo·3mo ago
Featurekamo-internal

Add Master Machine remote-desktop launcher (god-gated)

Third one-click desktop next to Linux/Windows: navRegistry entry (ComputerIcon), 'master' target through openKamoDesktop + the SSO proxy route, and dispatch in ...

kamo·3mo ago
FeatureSecurityService

Add "master" target for Master Machine SSO deep-link

buildAutoConnectUrl now mints a Master Machine connection (KAMO_GUAC_MASTER_HOSTNAME, default 192.168.4.46); included in every token for session reuse. Kept in ...

Kamo·3mo ago
FeatureKlusterServices

Add "Master Machine" (kamo-dev-1) RDP device to Guacamole

Local Kubuntu workstation shares its live Plasma/Wayland session over RDP via KRdp. Adds an idempotent bootstrap SQL connection (192.168.4.46:3389, sage/shared ...

Kamo·3mo ago
Featurekamo-shared-library

Bulk-email campaign foundation entities + department/org contact fields

Adds the shared-library foundation for org-level bulk email campaigns: - OrgBulkEmailProviderEntity (separate from everyday provider; UNIQUE org_id) - EmailCamp...

Kamo·3mo ago
Featurekamo-shared-library

STEWARD_TASK_ROUTED canonical template

The routed-decision steward notification needs a canonical email template. Registers STEWARD_TASK_ROUTED in CANONICAL_KEYS with its json/html pair; body carries...

Kamo·3mo ago
FeatureSecurityService

Gateway relay to mint a MERS MIN for a closing package

POST **************** ownership-checked (requirePackageOrg) so a steward mints only for their own tenant. The upstream reads the 7-digit MERS Org ID from the te...

Kamo·3mo ago
Featurekamo-internal

Date-of-birth on lead view + create form

Adds a "Date of Birth" field under Primary Contact on /leads/view/[id] using a MUI DatePicker that opens to the year grid first (openTo=year, disableFuture, min...

kamo·3mo ago
FeatureSecurityService

Accept and gate contact date-of-birth (DOB)

Maps `dateOfBirth` in the manual-import and vendor-intake field switches with a lenient multi-format parse (ISO plus common US M/d/yyyy forms; unparseable value...

Kamo·3mo ago
Featurekamo-shared-library

Add nullable contact date-of-birth to Lead

Adds a contact-level `dateOfBirth` (java.time.LocalDate, DATE column) to the base Lead: entity + Create/Update/LeadDTO (fromLead), copied in LeadService create/...

Kamo·3mo ago
July 23, 2026
Featurekamo-internal

Author document-requirement overlay rules from the steward console

The "what documents does this loan need" rule matrix had no authoring surface. This adds a Document-requirement rules section to the Documents & Conditions scre...

kamo·3mo ago
FeatureSecurityService

Relay document-requirement overlay-rule authoring

Relays POST/GET/retire on **************** to MLOSDocService, with organizationId server-stamped from the operator session so a steward authors and lists only t...

Kamo·3mo ago
Featurekamo-internal

Author conditional LLPAs from the catalog panel

Adjustments could not vary by borrower: MlosAdjustmentCondition had no writer, and the pricing engine treats an adjustment with no conditions as always-applies,...

kamo·3mo ago
Featurekamo-internal

Confirm email when reassigning a lead from the lead-view

The Assignment card now reassigns via leadsApi.reassignLead, which surfaces the server's assigneeNotified flag. On a reassignment to a new member the toast read...

kamo·3mo ago
FeatureSecurityService

Email the new owner when a single lead is reassigned

Mirrors the bulk path for the lead-view Assignment card. When PUT /leads/{id} moves a lead to a different member, that member now gets the same LEADS_ASSIGNED e...

Kamo·3mo ago
FeatureSecurityService

Relay conditional-LLPA authoring

Relays POST **************** through the org-stamping write helper, so a steward authors conditional adjustments only for their own tenant.

Kamo·3mo ago
July 22, 2026
Featurekamo-internal

Bulk-reassign selected leads to a team member

The grid already had multi-select checkboxes but nothing to do with a selection. Checking rows now reveals a Reassign action beside the other lead actions, gate...

kamo·3mo ago
FeatureSecurityService

Bulk-reassign endpoint, gated on REASSIGN_LEADS_MANUALLY

POST **************** moves a batch of leads onto one team member and emails that member once for the whole batch. Authorization uses REASSIGN_LEADS_MANUALLY (...

Kamo·3mo ago
FeatureEmailService

Sample variables for the LEADS_ASSIGNED template

Without a case here the admin template editor's Preview renders the new template with every placeholder blank, which reads as a broken template rather than an u...

Kamo·3mo ago
Featurekamo-shared-library

LEADS_ASSIGNED email template; harden assignLead for bulk use

assignLead had zero callers and had never run in production. Before wiring the bulk reassignment path to it, give it the guarantees that path needs: - take org...

Kamo·3mo ago
Featurekamo-shared-library

Add MANAGE_ORG_BRANDING (174)

Org branding endpoints (logos, colors, backgrounds, theme provisioning) were owner-or-god only, leaving no way to delegate branding without handing over ownersh...

Kamo·3mo ago
Featurekamo-internal

Author eligibility matrices from the catalog panel

Without a matrix covering a scenario's occupancy and purpose, pricing returns NO_COVERAGE — so before this, only a purchase of a primary residence could be pric...

kamo·3mo ago
FeatureSecurityService

Relay eligibility-matrix authoring; rebuild picks up the SUSPENDED resume

Relays POST **************** through the existing org-stamping write helper, so a steward authors matrices only for their own tenant. This push also rebuilds a...

Kamo·3mo ago
Featurekamo-internal

Rebuild the agent studio as a full-width workspace

Removing the width cap was not the fix; the layout itself needed to be designed for the space rather than tolerated in it. The studio is now three zones side b...

kamo·3mo ago
Featurekamo-internal

Author lock policies — without one, no rate can be locked at all

RateCommitmentService refuses a lock whenever the priced result carries no lockPolicyVersionId ("lock-policy version is required"), and a result only carries on...

kamo·3mo ago
Featurekamo-internal

Show how each agent is doing

Adds a performance section to the top of the agent studio: conversations, how often a person took over and what triggered it, outreach outcomes, and cost. Writ...

kamo·3mo ago
FeatureAIService

Per-agent scorecard

What each agent actually did: conversations, how often a person had to take over and why, outreach outcomes including the ones held back, and what it cost. Eve...

Kamo·3mo ago
Featurekamo-shared-library

Grouped aggregate queries for the agent scorecard

Twelve @Query aggregates across sessions, messages, usage records and outbound touches, so a scorecard is a handful of grouped queries rather than loading rows ...

Kamo·3mo ago
July 19, 2026
Featurekamo-internal

Edit what each model costs

Adds per-model price editing to the provider setup screen. Prices are seeded from each vendor's published list price where we know it, and blank where we do not...

kamo·3mo ago
FeatureAIService

Model pricing catalog, write path and backfill

Cost accounting could never work: AiModel has price columns, AiModelController reads them and ChatOrchestrationService reads them to compute costEstimate - but ...

Kamo·3mo ago
Featurekamo-internal

Show the AI handoff context to the agent taking over

Renders an AI_HANDOFF system event as a card with the reason, the AI's summary, and a collapsible transcript of the conversation so far - so the borrower does n...

kamo·3mo ago
FeatureAPIService

Proxy the public AI->human handoff route

Adds POST **************** proxied to MediaService alongside its createSupportSession sibling. Without this the handoff feature was dead on arrival: MediaServi...

Kamo·3mo ago
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·3mo ago
FeatureAIService

Agent-initiated handoff to a human, with context

The AI could not previously ask for a person: escalation rules reached the model via the compiled prompt, but there was no machine-readable signal back, so the ...

Kamo·3mo 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·3mo ago
FeatureAIService

Outbound triggers, scheduler and web-chat dispatch

Makes the outreach spine actually fire. The gate, contact state, consent and audit already existed; nothing caused a touch to be evaluated. - NATS enabled for ...

Kamo·3mo ago
Featurekamo-internal

Required-text editor; dedupe AI general settings; fix model toggle

Adds an editor for org-wide required opening/closing text - the compiler and columns existed but nothing could set them, so the capability was dead. Copy states...

kamo·3mo ago
FeatureAIService

Persist org-wide required text and apply it immediately

AiOrgSettings gained forcedPreamble/forcedFooter and SalesAgentCompiler already folds them into every agent, but the settings controller neither read nor wrote ...

Kamo·3mo ago
Featurekamo-internal

Full-page AI Sales Agent studio, replacing the modals

The agent editor was a ~800px MUI Dialog whose entire surface was a 10-row textarea, on the one AI tab that used a dialog at all. It is now a dedicated route, a...

kamo·3mo ago
FeatureAIService

Sales-agent compiler, versioning, outreach gate; fix tool replay

Structured agent config compiles to the system prompt, freezes per published version, and gains the gate an agent must pass before initiating contact. Compiler...

Kamo·3mo ago
Featurekamo-shared-library

Structured sales-agent config, version spine and outreach state

Replaces the single training-context blob with a structured, versionable agent model, and adds the per-contact spine an agent needs before it may initiate conta...

Kamo·3mo ago
July 18, 2026
Featurekamo-internal

AI Sales Agents tab + per-channel agent assignment

Builds out /settings/ai?tab=sales-agents (was a stub): orgs create agents for their sales industry, either from a built-in template or by writing the training c...

kamo·3mo ago
FeatureSecurityService

Enrich borrower chat routing + capture subject-property state

chat-routing now returns the assigned officer's NMLS, title, photo, phone, email and whether they hold a valid license for the subject-property state, plus the ...

Kamo·3mo ago
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·3mo ago
FeatureAIService

Sales-agent CRUD, mortgage template, and agent-driven chat prompt

- AiSalesAgentController (/api/ai/sales-agents): org-scoped CRUD + GET /templates - SalesAgentTemplateRegistry: built-in starter templates, beginning with a m...

Kamo·3mo ago
Featurekamo-shared-library

SalesAgent entity + per-channel agent assignment

Org-configurable AI sales agents: a named agent for a sales industry, programmed with a training context the org authors (from a template or by hand), assignabl...

Kamo·3mo ago
FeatureSecurityService

Auto-provision platform-managed MLOS chat + serve site key by host

- ManagedChatIntegrationService: lazily mint the org's platform-managed SPECIFIC_AGENT WebChatIntegration on first access. KamoMLOS is first-party: org resolv...

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