KamoCRM

Live Change Log

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

18,391
Total Changes
6,526
Features
5,537
Fixes
30
Projects
Filter by project
All Projects18,391AIService276APIService177BillingService161ConversionService117DaemonService146DocsService240ESigService93EmailService619InitializerService344KBService162KlusterServices769MCPGatewayService277MediaService620RAGService79SecurityService1,995TranslateService62VOIPService265VectorService11kamo-apps26kamo-asterisk-support28kamo-capcha17kamo-capcha-widget4kamo-internal8,691kamo-login342kamo-marketing642kamo-nowww20kamo-register213kamo-shared-library1,824kamo-signer-monorepo57kamolos114
Filter by type
All TypesBuild23CI525Chore794Docs3,286Feature6,526Fix5,537Other1,001Performance174Refactor281Revert23Style45Test175Upgrade1
August 14, 2026
Testkamo-internal

Catch a template-built i18n key that next-intl cannot reach

The catalogue's keys contain dots, and they were written into en.json as literal flat keys. next-intl resolves by splitting on dots, so every one of the 46 even...

kamo·2mo ago
Testkamo-internal

Make 'do not hand-edit the unenforced list' enforceable

The list has been wrong four times (58 -> 52 -> 47 -> 57) and every single time because it was edited by reasoning instead of regenerated. The file already said...

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

Strengthen hrOverview id-precision and attendance-state coverage

The precision test used a 15-digit memberId, which round-trips through Number() losslessly and never proved the join key stays a string. Switch to an id past Nu...

kamo·3mo ago
August 11, 2026
Testkamo-shared-library

Pin how the pool divides into per-mailbox limits

Dovecot needs a byte figure per mailbox, but storage is one organization-wide pool across eighteen domains. The division has to hold one property above all — th...

Kamo·3mo ago
Testkamo-shared-library

Pin the delegation-mode semantics

These predicates are what the surfaces hide themselves on, so getting one wrong either offers a button that cannot work or silently permits a charge the owner m...

Kamo·3mo ago
August 9, 2026
Testkamo-shared-library

Pin the deprecated-alias exclusion

The catalog key is ServiceType's numeric id, and several retired constants deliberately share one with the app that replaced them — DOC_MANAGER with DOCS on 8, ...

Kamo·3mo ago
August 7, 2026
Testkamo-shared-library

Script the half of the scan invariant this repo cannot see

SharedLibBeanSafetyTest can only police the library: it knows a bean requires a repository from some package, and nothing about whether the ~40 services scan it...

Kamo·3mo ago
Testkamo-shared-library

Detect the unsafe repository dependencies instead of listing them

The guard carried 29 baselined offenders and a location exemption, and caught none of the four outages it exists to prevent. Both were guesses standing in for a...

Kamo·3mo ago
August 6, 2026
TestSecurityService

Cover the chat-routing propagation that broke assignLoanOfficer

assignLoanOfficer gained a step that looks up the loan's source lead to reroute the borrower's open public-chat session. That lookup runs a JPQL query through t...

Kamo·3mo ago
August 5, 2026
Testkamo-shared-library

Pin the contact-point and linker invariants, and drop timeline count queries

The two classes the whole feature rests on had no tests, and all three properties they guarantee fail silently in production: an unmatched call is indistinguish...

Kamo·3mo ago
August 3, 2026
TestSecurityService

Fail the build when a repository package is missing from the scan

This service has @ComponentScan("com.kamo") but an EXPLICIT @EnableJpaRepositories list. The moment a bean here needs a repository outside that list, the reposi...

Kamo·3mo ago
TestSecurityService

Ratchet on endpoints that resolve no session

ResourceServerConfig is anyRequest().permitAll() and @EnableMethodSecurity appears nowhere in this service, so every @PreAuthorize is inert and public is the de...

Kamo·3mo ago
July 15, 2026
TestSecurityService

Prove closed-loan trainer convergence + retire + concurrency

Drives ClosedLoanTrainerService across successive passes with the (pre-live) MeridianLink wire and vision read stubbed, locking the behaviour the design hinges ...

Kamo·3mo ago
July 10, 2026
Testkamo-shared-library

PlatformOAuthProviderType append-order guard

Regression-locks the Phase 5 pull-forward: MERIDIANLINK(8,"meridianlink", "MeridianLink Mortgage") must stay the LAST constant so no existing provider's persist...

Kamo·4mo ago
July 9, 2026
Testkamo-shared-library

Regression test for LeadMarket MLOS collapse rule

Kamo·4mo ago
Testkamo-internal

Add vitest scoped to app/lib/mortgage engine

kamo·4mo ago
TestSecurityService

Lock the system-managed originator (projection, freeze, assignment)

8 tests over LoanTransactionService: live projection fills name/NMLS/subject-state license + org and marks LIVE; stale hand-entry is cleared when no LO is assig...

Kamo·4mo ago
July 4, 2026
Testkamo-shared-library

[11] doc 11 §6.2 single-active enum↔DDL drift guard

**************** is derived from enum metadata, but the DB backstop is four partial-unique indexes in KamoInitializer whose type IN(...) lists HARD-CODE the sin...

Kamo·4mo ago
Testkamo-shared-library

Update CanonicalTemplateLoaderTest for the change-password template set

Commit 7c6b20f (change-password support) added the canonical PASSWORD_CHANGED template and reworded EMAIL_VERIFICATION's expiry variable ({{expiryMinutes}} → {{...

Kamo·4mo ago
TestSecurityService

Lock the D28 stage-override write logic (legal-wall reject, delete+audit, rollback)

6 tests over the new MlosConfigWriteService methods: legal-wall stages rejected before any write; routine upsert bumps profileVersion + appends the WORM change-...

Kamo·4mo ago
May 29, 2026
Testkamolos

Tier 4 — LoanPaymentPostingService unit tests

Six mocked-repository unit tests covering the heart of the payment posting: - **************** payment of $100 against loan with $25 fees / $50 interest / la...

Kamo·5mo ago
May 16, 2026

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