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 3, 2026
ChoreSecurityService

Rebuild to pick up Marketing rights group (shared-lib 4cfbf64)

RoleRightsSyncService self-heals the 6 new Marketing rights (ids 150-155) into all roles on boot; /roles/rights then serves the MARKETING group.

Kamo·3mo ago
FeatureSecurityService

Assignable-members endpoint + work extension on member profile

- GET **************** (VIEW_LEADS holders ∪ grant-all) → {id,name,extension} for the lead-view assignment dropdown (name + work extension, not email). - GET ...

Kamo·3mo ago
FeatureSecurityService

Doc-04 tenant-config layer — self-heal + activation summary + 5 domain GET/PUTs

mlos.config.enabled + com.kamo.z.shared.mlos.config in @EnableJpaRepositories. MlosConfigSelfHealRunner: default LenderProfile + 5 domain singletons per active ...

Kamo·3mo ago
FixSecurityService

Close residual cross-org existence oracles + cap WORM-bound JSON blobs

Adversarial-review findings MLOS-W-01/03/04: - the 404-normalized empty list envelope now echoes the request's identity keys **************** so unknown, fore...

Kamo·3mo ago
FeatureSecurityService

Steward WRITE proxies — record feedback, publish pull-through policy, trigger pricing run

Write discipline, applied identically on all three POSTs: - downstream body built server-side from a WHITELIST of browser fields; - organizationId + actor membe...

Kamo·3mo ago
FixSecurityService

Atomic claim before lead creation — prevent orphan pooled leads

social.lead.new can be processed concurrently (old + new SecurityService pod both hold a core-NATS subscription during a RollingUpdate → one publish delivered t...

Kamo·3mo ago
FeatureSecurityService

Live FFA toggle — quick endpoint + broadcast on product updates

- PATCH **************** (MANAGE_CREDITS): toggle a product's free-for-all flag from the Leads-Available shortcut; publishes vendor-product + availability. - ...

Kamo·3mo ago
FeatureSecurityService

SecurityService read-proxy for MLOS Governance

One controller/client pair fronting MLOSGovernanceService's five reads (both its steward-feedback and pull-through-policy modules share /api/governance). organi...

Kamo·3mo ago
FeatureSecurityService

SecurityService read-proxy for MLOS Documents (doc + doc-orchestration)

Two browser-facing read-proxy controller/client pairs fronting MLOSDocService (/api/docs) and MLOSDocOrchestrationService (/api/doc-orchestration) for the Docum...

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
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
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
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
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
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
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
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
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
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
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
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
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
FixSecurityService

Correctness, scale & PII hardening in LeadImportController

- dedup via scoped LeadRepository query instead of findAll() over all tenants (was an OOM/DoS + cross-tenant exposure risk, re-run per 1000-row batch) - cap i...

Kamo·3mo ago
FeatureSecurityService

Mark-reassignment gated by MARK right; Manage-Credits returns members with Spend/Receive right

LeadAcceptController: mark-reassignment requires MARK_LEADS_REQUIRES_ASSIGNMENT. LeadCreditController.manage: returns eligibleMemberIds (SPEND_RECEIVE_LEAD_CRED...

Kamo·3mo ago
July 1, 2026
FeatureSecurityService

Credit lead-assignment API ****************

- LeadAcceptController: GET /leads/available, POST /leads/accept (atomic, comment-gated, FFA + credit), GET /leads/uncommented, POST /leads/{id}/mark-reassign...

Kamo·3mo ago
FeatureSecurityService

Market status filter, archive/reactivate, market-scoped vendors

- GET **************** (default active); enrich each market DTO with vendor-products derived from its vendors - Replace DELETE /lead-markets/{id} with PATCH /...

Kamo·3mo ago
FeatureSecurityService

Start trial clock on org owner's first login

Seed new orgs with a PENDING trial (source=TRIAL, trialExpiresAt=null) that grants nothing until started, then start the 3-day clock on the owner's first FQDN-s...

Kamo·3mo ago
FixSecurityService

Set site region + use node-local MinIO per pod

- Add kamo.minio.region (MINIO_REGION, default us-west-ca-s-1) so SigV4 signatures match the server's enforced site region; fixes background upload and sett...

Kamo·3mo ago
FeatureSecurityService

Auto-grant a 3-day trial to every newly created org

Kamo·3mo ago
FixSecurityService

Stop cross-org background image leak; order-safe reorder + staging bucket

Reordering only re-uploaded new files to their new index, dropping reordered existing images and leaving imageBgCount claiming unpopulated slots; provisioning t...

Kamo·3mo ago
FixSecurityService

Return 404 for a missing org instead of 200 with empty body

getOrganizationById returned a bare null, which Spring serialized to HTTP 200 with an empty body; clients calling response.json() then threw 'Unexpected end of ...

Kamo·3mo ago
FixSecurityService

Let the System User resolve any org's applied model

The cross-org gate returned 403 when orgId != session org and the caller had no Member row in the target org. The platform-wide System User operates across ever...

Kamo·3mo ago
ChoreSecurityService

Rebuild against latest kamo-shared-library

Kamo·3mo ago
June 30, 2026
FixSecurityService

Canonicalize webhook repo name to public-projects casing

After the cluster migration the Forgejo repos were recreated lower-cased (securityservice), but historical rows and the public-projects filter use canonical cas...

Kamo·3mo ago
FixSecurityService

Generate favicons via multi-node logo read, not single-node exists()

generateAndUploadFavicons() gated on minioService.exists(), which only stats the current MinIO host. When the simple logo was written to (or only replicated ont...

Kamo·3mo ago
June 26, 2026
DocsSecurityService

Commit project markdown (rescind no-.md policy)

Kamo·4mo ago
June 16, 2026
FixSecurityService

Expose GD (god eligibility) in /user-info for kamo-universe

The session stores the GD flag (KSessionService) but /user-info never returned it, so kamo-universe's KamoIdentity always deserialized is_god=false and the god/...

Kamo·4mo ago
FixSecurityService

Case-insensitive email lookup so reset emails send

Password recovery lowercased the input but findByEmailEmail does a case-sensitive match against the stored email (e.g. Sage@KamoCRM.com), so the user was never ...

Kamo·4mo ago
June 15, 2026
FixSecurityService

Carry impersonation audit trail across org jumps

When the caller is already an impersonation session (a god admin acting as another member, carrying SUDO_MEMBER_ID), entering another org from /network minted t...

Kamo·4mo ago
FeatureSecurityService

God-mode member impersonation endpoint

POST /api/security/impersonate mints a fresh ***+OTK for an arbitrary member of the caller's current org, gated on the caller session carrying god mode (GD). Re...

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