KamoCRM

Live Change Log

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

17,500
Total Changes
5,986
Features
5,284
Fixes
30
Projects
Filter by project
All Projects17,500AIService251APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService576InitializerService329KBService151KlusterServices740MCPGatewayService251MediaService602RAGService79SecurityService1,847TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,349kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,657kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore774Docs3,254Feature5,986Fix5,284Other994Performance165Refactor278Revert23Style42Test160Upgrade1
July 3, 2026
Featurekamo-internal

Pricing Review steward screen (rate ladder + LLPA waterfall), live

Third steward tab, on the shipped MLOSPricingService reads via the new SecurityService proxy (+ the new org-scoped runs read). Org run inventory with a run sele...

kamo·3mo ago
FeatureSecurityService

Pricing review read proxy (rate ladder + LLPA decomposition)

MlosPricingController @ /api/security/mlos/pricing + MlosPricingClient to MLOSPricingService (/api/pricing). Reuses MlosBaseController. runs inventory injects t...

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

Archive-not-delete markets, market-only pipeline, drag reorder

Settings › Engagement Types: - Archive markets (type "ARCHIVE" to confirm) instead of deleting; Active/Archived sub-tabs; restore from Archived. Market detail...

kamo·3mo ago
FeatureSecurityService

?status filter on markets list; remove redundant DELETE

GET /api/security/commerce-markets now takes an optional status=active|archived|all (default active) so the settings Archived tab can load archived markets. Dro...

Kamo·3mo ago
Featurekamo-shared-library

Archived-market queries; drop redundant hard-delete

Add findArchivedByOrganizationId + findAllByOrganizationIdOrdered and the matching **************** service methods so Commerce settings can surface an Archived...

Kamo·3mo ago
Fixkamo-internal

Underwriting review polish (i18n, a11y, contrast, enum humanize)

Apply review findings: localize frozen/yes/no + humanized aria-labels, humanize enum pills, phase title-case parity (shared titleCase), null-safe ausKindId, WCA...

kamo·3mo ago
FixSecurityService

Fail-closed tenant guard on underwriting waivers/validations

Review found the org guard was a no-op on the common empty-list case for the by-id waivers/validations reads (which the MLOS service does not org-filter), leaki...

Kamo·3mo ago
Featurekamo-internal

Underwriting Review steward screen (agency AUS + non-QM), live

Second steward tab, on the shipped MLOSUnderwritingService reads via the new SecurityService proxy. Agency AUS runs inventory (DU/LP/GUS + decision) with a deta...

kamo·3mo ago
FeatureSecurityService

Underwriting review read proxy (agency AUS + non-QM internal rules)

MlosUnderwritingController @ /api/security/mlos/underwriting + MlosUnderwritingClient to MLOSUnderwritingService (/api/underwriting, X-Internal-Auth). Reuses Ml...

Kamo·3mo ago
Featurekamo-internal

Wire Capital & Risk Command Center to the live read-path

Replace the fixture layer with the real end-to-end read-path: browser -> **************** route handler -> APIService -> SecurityService MlosCapitalMarketsContr...

kamo·3mo ago
FeatureSecurityService

Capital-markets steward read proxy for the Command Center

Add an MLOS-named, read-only proxy that lets the kamo-internal Capital & Risk Command Center reach MLOSCapitalMarketsService without exposing the internal netwo...

Kamo·3mo ago
Featurekamo-internal

MLOS Capital & Risk Command Center steward console

Add the AI-native mortgage steward console under /commerce (MORTGAGE market tab), replacing the placeholder intents/commitments sub-tabs with MortgageStewardSec...

kamo·3mo ago
Featurekamo-internal

System Wide toggle + credit-balance editor + cascade filter; history member filter/links/pagination; inject icon+INJECT confirm

- /leads/credits: right-aligned 'System Wide:' Active/Suspended dropdown; Credit Balance uses the ∞-capable InfinityCell (lowering invalidates, ∞ leaves as-is...

kamo·3mo ago
FeatureSecurityService

System-wide toggle, lead-viewers, credit-balance edit, history pagination

- /credits/system-wide GET+PATCH (org credit-suspend), /credits/lead-viewers (VIEW_LEADS holders incl. grant-all) for the History member filter. - Credit-bala...

Kamo·3mo ago
Featurekamo-shared-library

System-wide credit suspend, credit-balance invalidation, paginated history

- OrgLeadConfig (new ORG_LEAD_CONFIG table): org-wide 'System Wide' switch that suspends CREDIT-BASED lead auto-assignment (FFA unaffected); gated in acceptNe...

Kamo·3mo ago
Refactorkamo-internal

Drop redundant in-view titles on Templates/Past-Imports tabs

The sub-tab labels already name the view, so remove the h4 title + subtitle from LeadImportTemplateManager and LeadImportHistoryManager; keep the refresh action...

kamo·3mo ago
Fixkamo-internal

Add missing /api/security/lead-imports proxy route; default to Import Templates

- The base GET/POST /api/security/lead-imports had NO Next proxy route.ts (only sub-paths did), so Past Imports fetch (and the import POST) 500'd at the Next ...

kamo·3mo ago
FixSecurityService

Gate FFA acceptability on suspension in available-summary + available

available-summary now resolves the member's allotment and skips the product when suspended BEFORE the free-for-all short-circuit, and available() gates creditOk...

Kamo·3mo ago
Fixkamo-shared-library

Suspension now actually blocks acceptance (alert + accept + FFA)

findApplicableAllotments filtered 'AND la.isActive = true', so getMostSpecificAllotment returned a less-specific ACTIVE fallback (or nothing) when a member's sp...

Kamo·3mo ago
Featurekamo-internal

Split Lead Credits into Available/History/Manage Credits actions

Reorders the /leads top-right actions to: Add New Lead, Leads Available (→/leads/available, Bolt icon + live availability indicator, shown with Spend/Receive), ...

kamo·3mo ago
Refactorkamo-internal

Drop the Import Leads tab; two sub-tabs + header button

- Remove the 'Import Leads' sub-tab; the import wizard now opens from an always-visible 'Import Leads' button in the page header. Only two sub-tabs remain: Im...

kamo·3mo ago
ChoreEmailService

Wire mlos-internal-auth (INTERNAL_AUTH_SECRET) into deployment [skip ci]

EmailService's InternalAuthFilter guards /api/email/templates/send + /seed-org on internal.auth.secret, which was unset (fail-closed 503). Share the existing pr...

Sage·3mo ago
ChoreSecurityService

Wire mlos-internal-auth (INTERNAL_AUTH_SECRET) into deployment [skip ci]

SecurityService's internal-auth clients (recovery SMS -> VOIP, recovery email + template seed -> Email) send X-Internal-Auth from internal.auth.secret, which wa...

Kamo·3mo ago
ChoreVOIPService

Wire mlos-internal-auth (INTERNAL_AUTH_SECRET) into deployment [skip ci]

Guards the new /api/bulktext/send endpoint. Shares the existing production internal-auth value (mlos-internal-auth) so SecurityService's recovery SMS authentica...

Sage·3mo ago
FixVOIPService

Implement POST /api/bulktext/send internal transactional SMS

SecurityService's BulkTextSmsClient (password-recovery + account-settings SMS) has always POSTed **************** to /api/bulktext/send, but the controller was ...

Sage·3mo ago
OtherKlusterServices

Provision R1 MEDIA JetStream stream via idempotent bootstrap Job

Media/lead-feed events (media.feed.*, media.post.*) had no JetStream stream, so publishes returned '503 No Responders Available For Request' (chat.> is covered ...

Kamo·3mo ago
Fixkamo-internal

Send leadId as string when creating a comment

parseInt() rounded lead ids past JS MAX_SAFE_INTEGER, so the backend looked up a nonexistent lead and returned 404, surfacing as 'Failed to create post' on the ...

kamo·3mo ago
FixSecurityService

Accept leadId as string in createPost to preserve CRDB id precision

Lead IDs are CRDB unique_rowid() values that exceed JS MAX_SAFE_INTEGER. The frontend now sends leadId as a string; parse both String and numeric forms so findB...

Kamo·3mo ago
Fixkamo-internal

Resolve member names on /leads/credits + link to their account

The member column and filter showed raw ids because the name map was built from /api/security/members, whose CockroachDB Long ids serialize as JSON numbers and ...

kamo·3mo ago
Chorekamo-internal

Rebuild to pull new i18n keys from translation dictionary

The manual-import feature keys were added to kamo-translation-dictionary (en) which CI copies into messages/ at build time; this forces a rebuild so the deploye...

kamo·3mo ago
Featurekamo-internal

Inject Test Lead action on /leads/available (managers only)

Adds an 'Inject Test Lead' button beside Accept for each vendor/product, shown only to members with MANAGE_CREDITS. Opens a confirmation dialog, then POSTs to t...

kamo·3mo ago
FeatureSecurityService

Inject test lead + fix Manage-Credits list for grant-all admins

- New POST **************** (MANAGE_CREDITS): creates a synthetic 'Void > Test Lead' (John Doe / 555-555-5555 / noreply@<org base domain>) with requiresAssi...

Kamo·3mo ago
Featurekamo-shared-library

Store original uploaded file key on LeadImport run

Adds SOURCE_FILE_KEY + SOURCE_FILE_CONTENT_TYPE columns so a run references the original file archived in MinIO (KamoInitializer adds the columns on next run).

Kamo·3mo ago
Featurekamo-internal

Archive & download the original imported file

On Start Import the raw file is uploaded (best-effort) and its key passed to the import POST; Past Imports shows a Download button for runs with an archived fil...

kamo·3mo ago
FeatureSecurityService

Archive original file to MinIO + download endpoint

Injects MinIOStorageService; POST /source-file stores the raw upload in the private internal bucket; GET /{id}/source-file streams it back (org-checked); the ke...

Kamo·3mo ago
Featurekamo-internal

Import Templates + Past Imports sub-tabs, auto-detect, re-import

- Sub-tab bar in LeadManualImportManager: Import Leads | Import Templates | Past Imports - LeadImportTemplateManager: template list/create/edit/delete + upload-...

kamo·3mo ago
FeatureSecurityService

Persist runs/records, template CRUD, header auto-detect & re-import

- LeadImportPersistenceService: header normalize+SHA3 fingerprint (ordered/unordered), mapping/row JSON round-trips, persist run + non-success records, templa...

Kamo·3mo ago
Featurekamo-internal

Live availability indicator on the Lead Credits button

Mirror the NavPri Leads indicator on the /leads 'Lead Credits' action: a green/red status dot (green = a lead is acceptable now via FFA or credit, red = none) a...

kamo·3mo ago
Fixkamo-internal

Make EditableCard onEdit optional so reassignment gating type-checks

The assignment card passes `canReassignManually ? startEditAssignment : undefined` to EditableCard.onEdit, but onEdit was typed `() => void` (required), failing...

kamo·3mo ago
Featurekamo-internal

Live NavPri lead alert — green/red dot, blink, fire popup, edge trim

- LeadAlertProvider (global, mounted at NavPri level): WS-driven /available-summary; drives all state - NavPri Leads icon: green dot (can accept) / red (cannot)...

kamo·3mo ago
FeatureSecurityService

GET /leads/available-summary for the live NavPri lead alert

Aggregates the caller acceptability across all active markets (comment gate + credit/FFA/ daily-spend rules). Returns hasAcceptable / hasAcceptableCredit / bloc...

Kamo·3mo ago
Featurekamo-shared-library

Persistence spine for import templates, runs & per-row records

Replaces the empty stub entities with real @Entity classes (modeled on the LeadIntake* precedent: UUID id, gen_random_uuid, DB-default timestamps, statusId + @T...

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