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
July 2, 2026
FeatureInitializerService

Codify §4.2 requirement-writer single-live partial-unique backstop

At most ONE LIVE requirement per (loan_file_uid, img_doc_type_id, party) obligation cell. **************** app-layer idempotency read cannot catch a concurrent ...

Kamo·3mo ago
July 1, 2026
ChoreInitializerService

Rebuild against latest kamo-shared-library

Kamo·3mo ago
ChoreInitializerService

Drop retired k2m1/k0m1 from MinIO node defaults

Kamo·3mo ago
June 30, 2026
FeatureInitializerService

NULLs-safe unique index for ClosingWorkflowTemplate versions (doc 05 §6.3)

One version per (organization_id, scope_level, scope_ref_id) grain. CRDB is NULLs-distinct, so split for the nullable scope_ref_id (mirrors mlos_aiptp_*): mlos_...

Kamo·3mo ago
FixInitializerService

Null-safe split of the AiPullThroughPolicy single-active index (doc 09 §8)

CRDB is NULLs-distinct, so the single (lender_profile_id, market_id) WHERE status='ACTIVE' index did NOT backstop the org-wide (market_id IS NULL) grain — two c...

Kamo·3mo ago
June 29, 2026
FeatureInitializerService

(loan_file_uid,type) native single-active partial-unique index (doc 11 §5.3/§6.2)

Closes a pre-existing double-active hole in the MLOS loan-identifier registry: index (a) **************** only constrains (org, type, VALUE) for the 10 REGISTRY...

Kamo·3mo ago
June 28, 2026
FeatureInitializerService

Anti-double-lock partial-unique index for RCE lock records (doc 08 §7.3)

SchemaCleanupRunner adds **************** — a partial UNIQUE index on mlos_lock_record (organization_id, loan_scenario_id) WHERE status IN **************** At m...

Kamo·3mo ago
FeatureInitializerService

§2.4 anti-AUS-shopping partial-unique index on mlos_aus_run

One ACTIVE (non-superseded, non-frozen) AusRun per (loan_file_uid, source_label) — "duplicates look like AUS-shopping" (doc 10 §2.4/§2.5). Safe to land now that...

Kamo·3mo ago
June 27, 2026
FeatureInitializerService

Register pkg + RCE/pull-through DDL (docs 08/09)

@EnableJpaRepositories += **************** SchemaCleanupRunner: **************** (partial-unique) + rce_commit_ai_decision_fk + rce_commit_lock_record_fk + rce_...

Kamo·3mo ago
FeatureInitializerService

Register com.kamo.z.shared.mlos.aus in @EnableJpaRepositories (doc 10)

New aus_* repo package (AusRun + children). mlos_aus_run created + verified.

Kamo·3mo ago
FeatureInitializerService

EventProjectionPolicy platform-default partial unique index (doc 07 §6.7)

**************** **************** WHERE organization_id IS NULL — pins the platform-default singleton (CRDB NULLs-distinct leaves null-org rows unconstrained ot...

Kamo·3mo ago
FeatureInitializerService

RuleVersionPin entry->pin hard FK (doc 06 §4.6)

mlos_rvpe_pin_idx + mlos_rvpe_pin_fk **************** -> mlos_rule_version_pin.uid), mirroring the satisfier->requirement FK. Applied + verified.

Kamo·3mo ago
FeatureInitializerService

Rule-layer DB CHECKs (doc 06 §4.2/§9.2)

3 platform-owned biconditional CHECKs (mlos_requirement_rule / _rule_set / mlos_freshness_policy: platform_owned = (organization_id IS NULL)) + the legal-wall b...

Kamo·3mo ago
FeatureInitializerService

Schema for the 1-obligation/N-satisfier condition model (doc 06)

Register com.kamo.z.shared.mlos.docs in @EnableJpaRepositories (new repo pkg) + SchemaCleanupRunner backstop for mlos_requirement_satisfier (the append-only WOR...

Kamo·3mo ago
FeatureInitializerService

Notification party+consent ledger schema (doc 07 §6)

- KamoInitializerApp: @EnableJpaRepositories += **************** (new repo pkg for **************** - SchemaCleanupRunner: mlos_consent_one_identity_chk = num...

Kamo·3mo ago
FeatureInitializerService

DecisionInput provenance-integrity DDL (decision-spine 2c)

decision_input auto-creates via ddl-auto; SchemaCleanupRunner adds the invariants Hibernate can't emit: - decision_input_one_source_chk: num_nonnulls(11 FK cols...

Kamo·3mo ago
June 26, 2026
ChoreInitializerService

Check in pending WIP (no CI/CD on this repo)

- DataLoader: platform baseline security model + KamoCRM market-backfill wiring - add KamoCRMMarketBackfillLoader; remove superseded BillingGroupBackfillLoader ...

Kamo·3mo ago
PerformanceInitializerService

Stop per-boot customer_id FK tug-of-war in SchemaCleanupRunner

Remove the stale RetailCustomer->Account cleanup drops of commerce_carts.customer_id, **************** and **************** Those columns are now live, Hibernat...

Kamo·3mo ago
FeatureInitializerService

Guideline-version no-overlap partial-unique index (Phase-2 Slice 7)

SchemaCleanupRunner: ux_guideline_version_active partial-unique ON mlos_guideline_version (organization_id, product_id) WHERE status='ACTIVE' AND effective_unti...

Kamo·3mo ago
FeatureInitializerService

Value-set platform-owned ownership CHECK (Phase-2 Slice 4)

SchemaCleanupRunner: ADD CONSTRAINT mlos_value_set_ownership_chk CHECK (platform_owned = (organization_id IS NULL)) — doc 02 §6.2: a platform taxonomy is platfo...

Kamo·3mo ago
FeatureInitializerService

Mlos_product ARM-consistency CHECK (Phase-2 Slice 2)

SchemaCleanupRunner: ADD CONSTRAINT **************** CHECK ((amortization_type = 'ARM') = (arm_fixed_period_months IS NOT NULL)) — a fixed period is declared IF...

Kamo·3mo ago
FeatureInitializerService

Register catalog repos + rate-sheet-version no-overlap index (Phase-2 Slice 1)

- @EnableJpaRepositories += com.kamo.z.shared.mlos.catalog (the new MlosInvestor/ **************** repos; entities already covered by @EntityScan). - SchemaCl...

Kamo·3mo ago
FeatureInitializerService

Partial unique indexes + servicing invariants (Phase-1 config completion)

SchemaCleanupRunner DDL for the new mlos.config domains (mlos.config already in @EnableJpaRepositories; Hibernate ddl-auto:update creates the tables): - one-act...

Kamo·3mo ago
FeatureInitializerService

Register mlos.config repo pkg (Phase-1 Slice 1)

Add com.kamo.z.shared.mlos.config to @EnableJpaRepositories so KamoInitializer creates mlos_lender_profile + mlos_licensing_entry. Indexes (incl. UNIQUE market_...

Kamo·3mo ago
FeatureInitializerService

Register mlos.compliance repo pkg (Slice 2c-i)

Add **************** to @EnableJpaRepositories so KamoInitializer creates mlos_adverse_action_timer + mlos_regx_timer. Indexes entity-declared via @Table — no S...

Kamo·3mo ago
FeatureInitializerService

Register mlos.legal repo pkg (Slice 2b)

Add com.kamo.z.shared.mlos.legal to @EnableJpaRepositories so KamoInitializer creates mlos_licensed_act_registry / mlos_ron_eligibility / mlos_steward_license. ...

Kamo·3mo ago
FeatureInitializerService

Register mlos.steward + mlos.orchestration repos; Slice-2a schema

- KamoInitializerApp @EnableJpaRepositories: add the accumulated MLOS repo packages **************** plus esign/personal_loans so KamoInitializer owns their...

Kamo·3mo ago
DocsInitializerService

Commit project markdown (rescind no-.md policy)

Kamo·3mo ago
May 18, 2026
FeatureInitializerService

Migration for borrower-facing brand + disclosure columns

Adds the seven nullable columns the kamo-shared-library Organization entity now declares (TAGLINE / NMLS_ID / PHONE_SUPPORT / EMAIL_SUPPORT / EQUAL_HOUSING_DISC...

Kamo·5mo ago
May 16, 2026
April 29, 2026
FeatureInitializerService

Add MEMBER_UI_PREFERENCES table (order 60)

Idempotent CREATE for the generic per-member UI-preference store backing the hex-head popover size selector and future per-member UI settings. Schema mirrors th...

Kamo·5mo ago
FeatureInitializerService

Migrate members.is_available to availability_status enum

Kamo·5mo ago
FeatureInitializerService

Add CDR caller-ID columns to recordings table (order 40)

Adds caller_id_num, caller_id_name, call_direction, and call_result columns to the recordings table so the softphone history tab can display who called without ...

Kamo·5mo ago
April 27, 2026
FeatureInitializerService

Add member language + default_currency columns

Adds two NOT NULL columns to the members table backing the new Member.language (VARCHAR DEFAULT 'ENGLISH') and Member.defaultCurrency (VARCHAR(10) DEFAULT 'USD'...

Kamo·5mo ago
FeatureInitializerService

Migration runner for Recording provider-lookup columns + VM archive columns

Adds RECORDINGS.provider_instance_id (UUID) and provider_external_id (VARCHAR(64)) plus the composite idx_recordings_provider_lookup index used by the softphone...

Kamo·5mo ago
April 26, 2026
FeatureInitializerService

Add include_company and company_name columns

LeadCompanyColumnRunner (Order 40) idempotently adds: - lead_markets.include_company (BOOLEAN, nullable) — tracks whether a market requires company name on le...

Kamo·6mo ago
FeatureInitializerService

Backfill is_available = TRUE for existing members

Kamo·6mo ago
April 24, 2026
FixInitializerService

Use CockroachDB-compatible DROP INDEX CASCADE syntax

CockroachDB rejects ALTER TABLE ... DROP CONSTRAINT for UNIQUE constraints with: unimplemented: cannot drop UNIQUE constraint "uk_org_oauth_provider" using ...

Kamo·6mo ago
FeatureInitializerService

Multi-instance phone/SMS provider migration

Runs after Hibernate ddl-auto:update creates new tables (VOIP_PROVIDER_INSTANCE, BULK_TEXT_PROVIDER_INSTANCE, PHONE_EXTENSION, PHONE_END_USER, PHONE_DEVICE, PHO...

Kamo·6mo ago
RefactorInitializerService

Drop teamMemberPayFeesSetting from DataLoader

Master-model provisioner no longer passes the removed tri-state pay-fees setting when creating the master security model — the field is gone from ChildOrgSecuri...

Kamo·6mo ago
April 23, 2026
FixInitializerService

TeamMember is-a Member; drop bogus tm.getMember() calls

TeamMember uses JOINED inheritance — it IS a Member, no nested member field. The backfill was calling tm.getMember() which doesn't exist. Also switches the JPQL...

Kamo·6mo ago
April 21, 2026
ChoreInitializerService

Persist org after parent attach via saveOrganization

Kamo·6mo ago
ChoreInitializerService

Provision master model with MEMBER_SELECT ATF policies

Kamo·6mo ago
April 20, 2026
FixInitializerService

Drop stale CHECK constraints on default-role-rights enum columns

Hibernate auto-generates CHECK (column IN ('VAL1', 'VAL2', ...)) constraints on CREATE TABLE for @Enumerated(EnumType.STRING) columns, freezing the enum's value...

Kamo·6mo ago
FixInitializerService

Add missing unique constraints for role-right upserts

**************** + syncSecurityModelRoleRights use `ON CONFLICT (role_id, right_type) DO NOTHING` and `ON CONFLICT (default_role_id, right_type) DO NOTHING`, wh...

Kamo·6mo ago
FeatureInitializerService

Seed Organization.isTopLevel for kamocrm and OWNER_UNLIMITED self-comp plan

- DataLoader: drop OrganizationType arg from createOrg, set isTopLevel=true on kamocrm - KamoCRMAgeReqUpdateRunner + test: match on IS_TOP_LEVEL = TRUE instead ...

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