KamoCRM

Live Change Log

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

15,120
Total Changes
5,169
Features
4,935
Fixes
30
Projects
Filter by project
All Projects15,120AIService197APIService161BillingService143ConversionService107DaemonService129DocsService215ESigService88EmailService518InitializerService318KBService105KlusterServices697MCPGatewayService85MediaService546RAGService71SecurityService1,658TranslateService55VOIPService205VectorService11kamo-apps25kamo-asterisk-support24kamo-capcha17kamo-capcha-widget4kamo-internal6,937kamo-login330kamo-marketing625kamo-nowww20kamo-register213kamo-shared-library1,455kamo-signer-monorepo53kamolos108
Filter by type
All TypesBuild11CI523Chore738Docs2,167Feature5,169Fix4,935Other986Performance157Refactor274Revert23Style42Test94Upgrade1
August 9, 2026
FeatureInitializerService

Schema for object-store-only storage measurement

object_storage_days records what a sweep reads back from MinIO for the two things that carry no size in the database: branding assets and the docs workspace. Bu...

Kamo·1mo ago
FeatureInitializerService

Schema for per-mailbox storage measurement

**************** holds, per mailbox and per arrival day, the RFC822 bytes that mailbox is holding. Storage accounting had no honest source for mailbox bytes: th...

Kamo·1mo ago
FeatureInitializerService

Schema runner for org_storage_snapshots

Mirrors OrgStorageSnapshot as explicit DDL, per the house style — ddl-auto creates the table first, so the CREATE is a fallback and the SET DEFAULTs are what ac...

Kamo·1mo ago
FeatureInitializerService

Declare the **************** app split

The backfill only ever filled a plan row that was missing — deliberately, so it could not silently move a tier — which left apps that had never been priced wher...

Kamo·1mo ago
August 8, 2026
FeatureInitializerService

One properly categorised catalog row per app, on every entitlement root

Nine apps — POS, Marketing Tools, Calculator, Club, Inventory, Legal, Games and the two origination systems — had no catalog representation at all: no pricing r...

Kamo·1mo ago
FeatureInitializerService

Backfill app entitlement rows into the platform plan catalog

Entitlement now resolves on a typed service_type column, but no catalog row carried one, so every plan still resolved to 'everything included' via the fail-open...

Kamo·1mo ago
August 7, 2026
FeatureInitializerService

Mailbox pointers for departments and orgs, and backfill the departments

DEPTS.MAILBOX_ID and ORGS.CONTACT_MAILBOX_ID, both plain UUID with no FK to email_provider.mailboxes: mailboxes sync from external providers and can be removed ...

Kamo·1mo ago
FeatureInitializerService

Give a team member a manager

Adds MANAGER_ID to member_team_member, a nullable self-reference for the reporting line. Nothing is backfilled: no manager is a complete answer, both at the top...

Kamo·1mo ago
FeatureInitializerService

Add DEPTS.PARENT_DEPT_ID for nested departments

Nullable with no backfill -- null means top level, which is what every existing department was and most will stay. Declared plain UUID with an explicit DROP DE...

Kamo·1mo ago
FeatureInitializerService

Migration for the commission ledger and Stripe payout tables

Mirrors com.kamo.z.shared.commission. ddl-auto would create these from the annotations anyway; the explicit DDL is the house convention and is what makes the sh...

Kamo·1mo ago
August 6, 2026
FeatureInitializerService

Land the legal package schema

Adds com.kamo.z.shared.hr.legal to the repository scan list and ensures the uniqueness and lookup indexes the entity mapping cannot express safely.

Kamo·1mo ago
FeatureInitializerService

Backfill the collection each existing binder belongs to

Derives the scope from the first DOC item's Img; empty binders fall back to the owner's My Docs. Applies NOT NULL only after the backfill.

Kamo·1mo ago
August 5, 2026
FeatureInitializerService

Create the email search_vector column and its inverted index

**************** never existed. EmailService's own V1__email_metadata_schema.sql declares it, but that migration never ran -- the table came from this service's...

Kamo·1mo ago
FeatureInitializerService

Schema and contact-point seed for lead communications

Hibernate creates the three new tables from the shared-lib entities; this adds what it cannot express — the partial unique index that keeps at most one open con...

Kamo·1mo ago
FeatureInitializerService

Schema for the multi-provider meeting layer

Creates **************** and org_meeting_oauth_tokens, adds the provider-identity columns to MEETING_RECORDS and MEETING_RECORDINGS and the Zoom/Teams-capable s...

Kamo·1mo ago
FeatureInitializerService

Reassignable primary agent on a reserved opportunity

PRIMARY_AGENT_MEMBER_ID is who holds the opportunity now; REQUESTED_BY_MEMBER_ID is left untouched forever. Nullable with no backfill on purpose — null means "n...

Kamo·1mo ago
August 4, 2026
FeatureInitializerService

Commission columns for reserved opportunities and market defaults

Six nullable columns: the overall commission agreed on a reserved opportunity, and the market default that pre-fills it at approval. NUMERIC(19,4) to match the ...

Kamo·1mo ago
FeatureInitializerService

Tables for lead opportunity reservations

Mirrors LeadOpportunityReservation, LeadOpportunityCommissionSplit and **************** in kamo-shared-library. ddl-auto:update would create them from the entit...

Kamo·1mo ago
August 3, 2026
FeatureInitializerService

Create phi_access_log — the durable §164.312(b) audit trail

Until now PHI access was recorded only to a log stream with 14-day retention against a six-year obligation, and with no query surface. An accounting of disclosu...

Kamo·1mo ago
FeatureInitializerService

Create the second-factor tables

Backs UserMfaEnrollment and MfaRecoveryCode in kamo-shared-library — §164.312(d) Person or Entity Authentication, the gap the compliance assessment called disqu...

Kamo·1mo ago
FeatureInitializerService

Create HANDLES_PHI and PHI_EFFECTIVE_DATE on orgs

Mirrors the two new Organization fields, following the OrgBrandingFieldsMigration convention, so the columns are reproducible on any environment rather than onl...

Kamo·1mo ago
August 2, 2026
FeatureInitializerService

Create HANDLES_PHI and PHI_EFFECTIVE_DATE on orgs

Mirrors the two new fields on the Organization entity in kamo-shared-library, following the OrgBrandingFieldsMigration convention. HANDLES_PHI is NOT NULL DEFAU...

Kamo·1mo ago
July 9, 2026
FeatureInitializerService

Originator/transaction-first columns (@Order 90)

Additive nullable columns + org-unique transaction-number index for the MLOS originator/transaction refactor: mlos_loan_transaction (transaction_number + assign...

Kamo·2mo ago
July 8, 2026
FeatureInitializerService

Add INVESTOR_PRICE column to rate_locks + loan_pricing_snapshots

@Order(80) idempotent ADD COLUMN IF NOT EXISTS (DECIMAL(9,4), matching the price-to-100 grids) so the MLOS RCE can record the true non-par investor execution pr...

Kamo·2mo ago
FeatureInitializerService

Partial-unique index enforcing one active closing package per loan (eClose double-close backstop)

CREATE UNIQUE INDEX uk_mlos_closing_pkg_active_loan ON mlos_closing_package (loan_file_uid) WHERE status <> 'CANCELLED'. Durable backstop behind the assembler's...

Kamo·2mo ago
FeatureInitializerService

Migration adds recordings.transcript TEXT column

Kamo·2mo ago
July 5, 2026
FeatureInitializerService

Seed the 17 real program rulesets (doc03 §9 Phase 1)

Migrates the authoritative ProgramRuleset data from the KamoMLOS client ruleset files into **************** (17 codes, extracted faithfully) and replaces Progra...

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

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