KamoCRM

Live Change Log

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

17,374
Total Changes
5,891
Features
5,258
Fixes
30
Projects
Filter by project
All Projects17,374AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,822TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,321kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,631kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,891Fix5,258Other993Performance165Refactor278Revert23Style42Test159Upgrade1
August 21, 2026
RefactorSecurityService

Delegate AvatarObjectPaths to the shared library

MediaService now names avatar objects too — the support chats list shows the requestor's photo, and a support requestor is in somebody else's organization, so n...

Kamo·2mo ago
August 19, 2026
Refactorkamo-internal

Drop the masthead stat rail, move the filter to the bar

The five counted tiles are gone from the header. It now states what the page is and gives the rest of its width to the primary action. They were also the only ...

Kamo·2mo ago
August 15, 2026
Refactorkamo-internal

One loading screen instead of four, all on the full logo

There were four copies of the same full-screen loading markup — the navigation screen, both of /validate's pre-result screens, and /logout — identical down to t...

kamo·2mo ago
August 14, 2026
Refactorkamo-internal

The player is a module singleton, not a React value

Firing a sound read a context, which made every call site's POSITION IN THE TREE part of its correctness. A component rendered above SoundProvider got a no-op a...

kamo·2mo ago
Refactorkamo-internal

Sign inside the app shell, behind one page header

The wizard opened as a fullScreen MUI Dialog, so signing a package threw the member out of the product: NavTop and NavPri were covered, there was no rail and no...

kamo·2mo ago
Refactorkamo-internal

Fold the back arrow and book icon into the header title

The /kb body repeated the gradient header title verbatim. Drop the duplicate, move its book icon onto the h1 and park the back arrow to the right of it.

kamo·2mo ago
August 13, 2026
Refactorkamo-internal

Drop the speed dial heading

The tab is reached by its own icon and the rows say what they are, so a title and a sentence of explanation above them only cost vertical space in a panel that ...

kamo·2mo ago
Refactorkamo-internal

One Plans & Billing screen instead of two that each answered half

The platform had two billing screens. /settings/account?tab=billing answered what the organization pays; Plans & Billing on the member profile answered what a p...

kamo·2mo ago
August 12, 2026
Refactorkamo-internal

One strip — filter and refresh beside the sub-tabs

The controls sat in a second full-width row under the tab strip holding three short words and an icon, spending a whole band of the pane on what fits in the spa...

kamo·2mo ago
August 11, 2026
RefactorSecurityService

Follow the subscription finder rename

**************** is gone from the shared library. Its Optional return depended on a unique constraint that no longer exists, so once one account holds both a pe...

Kamo·2mo ago
August 10, 2026
Refactorkamo-internal

One writer of the *** TTL, and it is the activity tracker

/api/user-info wrote the session TTL straight to Redis, bypassing every service-side rule — and useUserInfo polls it every five minutes forever, so that one lin...

kamo·2mo ago
RefactorConversionService

Reading a session no longer renews it

The expiration on the Redis record IS the session; when it lapses the member is signed out. This service holds its own copy of KSessionService against that SHAR...

Kamo·2mo ago
RefactorDocsService

Reading a session no longer renews it

The expiration on the Redis record IS the session; when it lapses the member is signed out. This service holds its own copy of KSessionService against that SHAR...

Kamo·2mo ago
RefactorMediaService

Reading a session no longer renews it

The expiration on the Redis record IS the session; when it lapses the member is signed out. This service holds its own copy of KSessionService against that SHAR...

Kamo·2mo ago
RefactorSecurityService

Make reads read-only, leaving one writer of the *** TTL

The expiration on the Redis record IS the session: when it lapses the member is signed out. Reading a session no longer touches it. Only genuine interaction ext...

Kamo·2mo ago
August 8, 2026
Refactorkamo-shared-library

Resolve deprecation through the app catalog

An app the operator retires has to disappear everywhere, not just from the apps page — otherwise it keeps showing up in the security-model editor and in entitle...

Kamo·2mo ago
August 7, 2026
Refactorkamo-internal

Drop the Notes settings page and section

The Notes settings page was only a ComingSoonTab placeholder, so it gave members a nav entry and a landing card that led nowhere. Remove the route along with ev...

kamo·2mo ago
Refactorkamo-internal

Consolidate the member surface onto ?tab=legal-compliance

The standalone **************** route rendered the same component as the settings tab behind a second URL. Delete it and keep the tab: one surface, one entrance...

kamo·2mo ago
August 6, 2026
RefactorESigService

Sign on (envelopeUid, recipientUid, orgId), not a SignerSession

**************** now take the triple. The public controller keeps resolving it from SIGNSESH, so the signer app is unchanged; a staff-authenticated member surfa...

Kamo·2mo ago
Refactorkamo-internal

Drive the remaining polled screens from NATS/WebSocket

Fifteen network polls across the app, replaced with the events that were already happening or with events added to the services that own the state. Mail — the ...

kamo·2mo ago
August 5, 2026
Refactorkamo-internal

Put per-file upload settings inline to halve card height

The Description/Folder/Doc Type/Access Level fields sat on a second line under the file row, so every pending upload cost ~108px. Move them into the top row bet...

kamo·2mo ago
RefactorSecurityService

Remove the god-mode time-box

Checking in work left uncommitted in this working tree by a concurrent session. Not authored here; committed so it is not lost and so main is not left with a tr...

Kamo·2mo ago
Refactorkamo-internal

Move System Debug under Platform Administration

**************** diagnostics are operator tooling, not an access rule, so the tab now sits at **************** behind the platform-admin guard instead of MANAGE...

kamo·2mo ago
August 4, 2026
RefactorKlusterServices

Rename cluster ratestack-scylla -> kamo-scylla, correct ownership docs

This instance is kamo's: it backs the `kamouniverse` keyspace (read/written by **************** through the scylladb-direct ExternalName) and the `audit` keyspa...

Kamo·2mo ago
Refactorkamo-internal

Move break glass into the primary rail

The activation control was a fixed pill anchored to the bottom-left of the viewport. That put a privileged action somewhere nothing else lives, which reads as a...

kamo·2mo ago
Refactorkamo-internal

Drop the dead 'just extended' UI from the timeout popup

justExtended was never set to true — the popup closes on extension rather than showing a success state — so the CheckCircle2/Shield branches, the alternate titl...

kamo·2mo ago
Refactorkamo-shared-library

Share the letterhead resolution between the public page and staff

The staff preview has to show exactly what the customer receives, so branding, the document term and the link host now resolve in one place. Two copies would dr...

Kamo·2mo ago
July 18, 2026
Refactorkamo-internal

Translate the steward console panels; drop the label escape hatch

Catalog, Identifiers, Ingestion, Loan Sale Desk and the Pipeline table rendered hardcoded English inside a console whose other screens were fully translated. Al...

kamo·3mo ago
Refactorkamo-internal

Use next-intl keys for the Mobile Devices strings

Swaps the literal labels added with the Devices sub-tabs for **************** and .mobileDevices.* keys, now published in the translation dictionary (CI fans th...

kamo·3mo ago
Refactorkamo-internal

Fold Document QC into Documents & Conditions; PDF ingest notices

Document QC had its own steward screen for work that is the same documents, on the same loans, done by the same reviewer. Splitting it across two tabs made some...

kamo·3mo ago
July 16, 2026
Refactorkamo-internal

Consume @kamo/* shared libs, delete duplicated web copies

kamo-internal now imports the shared TS packages it originally seeded (one - avatarUrlTransform → re-exports @kamo/media-core (getAvatarSizedUrl, transformAva...

kamo·3mo ago
Refactorkamo-internal

I18n the LabelManager software-identity labels via next-intl

Replace literal strings with **************** keys (added to the translation dictionary). English fallback covers locales pending translation.

kamo·3mo ago
July 10, 2026
Refactorkamo-shared-library

Backward-compatible 6-arg LeadFieldPatch constructor (isVeteran defaults null)

Keeps existing 6-arg consumers (e.g. SecurityService LOS-apply tests) compiling on the shared-lib bump without a lockstep change.

Kamo·3mo ago
Refactorkamo-internal

Split form into Loan / Borrower / Subject Property tabs

Splits the mortgage sub-form's mega-grid into four sub-tabs (Loan, Borrower, Subject Property, What-If Studio) and renames "Property Address" to "Subject Proper...

kamo·3mo ago
Refactorkamo-internal

Use dictionary t() keys for MLOS integration UI strings

Replaces the `// i18n: dictionary key TODO` placeholder literals in LeadMarketManager (MLOS Integration select), MeridianLinkConfigDialog (field labels, Test Co...

kamo·3mo ago
Refactorkamo-internal

Drop the collapsible box around upload + gallery

The "Your wallpapers" section was a collapsible SectionHeader + Collapse — no reason to hide the upload and gallery behind an expand toggle. Replace with a stat...

kamo·3mo ago
July 9, 2026
Refactorkamo-internal

Drop the Background & Theme section from My Account

Completes the consolidation onto the dedicated wallpaper page: removes the org-vs-own switch, its handler, the "My Wallpapers" link and the now-unused backgroun...

kamo·3mo ago
Refactorkamo-internal

Render the console background globally in the layout, not per page

The background switch stays on the home page, but the chosen background (plain gradient or org slideshow) should be behind EVERY page, not just the two landings...

kamo·3mo ago
July 7, 2026
Refactorkamo-internal

Move status editor onto the tabs row; note callback auto-note

- Status/sub-status editor now shares the primary-tabs row: tabs left, status aligned right (removes the separate row under the action buttons). - Callback di...

kamo·3mo ago
July 4, 2026
Refactorkamo-internal

Remove Vendor Product ID from mappable fields

The vendor product is selected once at the run/template level (Configure step) and applied to every row; the backend importer already ignores a mapped vendorPro...

kamo·3mo ago
Refactorkamo-internal

Single Integrations tab replaces AUS-only tab (D40)

MortgageIntegrationsTab: all 15 vendor categories (credit, AUS, eSign, closing- docs, title, flood, …) in one tab, each an expandable section with add/remove co...

kamo·3mo ago
RefactorSecurityService

Single Integrations write surface — MortgageProviderConfig (D40)

Replaces the AUS-only write path with generic provider-connection CRUD keyed by VendorCategory+vendorKey: /provider-connections GET/POST/PUT, secret write-only ...

Kamo·3mo ago
Refactorkamo-shared-library

Generic MortgageProviderConfig replaces AUS-only config (D40)

One integration-credential store keyed by VendorCategory+vendorKey (credit, AUS, eSign, closing-docs, title, flood, …) behind a single Integrations tab — the Mo...

Kamo·3mo ago
Refactorkamo-shared-library

Use the simple entity name in the calibration-count JPQL (D32)

countCalibrationSamples referenced AiDecision by fully-qualified class name in the FROM clause; Hibernate resolves that, but every other @Query in the shared-li...

Kamo·3mo ago
July 2, 2026
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
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
July 1, 2026
Refactorkamo-login

Remove the 2s intro/loading animation screen

Drop showIntro/introComplete state, the 2s intro timer effect, and the branded early-return loading screen. The page now renders straight into the background + ...

Kamo·3mo ago
June 26, 2026
Refactorkamo-shared-library

Declare Slice-2a indexes via @Table(indexes) on entities

Move the mlos_orchestration_state and mlos_steward_task index definitions from KamoInitializer's SchemaCleanupRunner onto the entities themselves (@Table(indexe...

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