KamoCRM

Live Change Log

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

17,393
Total Changes
5,908
Features
5,260
Fixes
30
Projects
Filter by project
All Projects17,393AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,829TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,327kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,637kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,908Fix5,260Other993Performance165Refactor278Revert23Style42Test159Upgrade1
July 16, 2026
Featurekamo-internal

3-stage org onboarding guidance (create → finish DNS → enter)

Generalize the first-org hero into a single stage-aware guidance panel keyed on the member's owned-org count + DNS status (from /api/security/org/my-networks): ...

kamo·3mo ago
Featurekamo-internal

Dual company/software resolver + delivery + consumption

- Organization.ts: deliver software identity + per-surface selectors via OrgContext - brand.ts: **************** (+ vitest, 8 cases) - ThemeLogo: logoSoftware/l...

kamo·3mo ago
FeatureSecurityService

Software logo upload types + config.json bake

- uploadLogo: explicit object-key switch **************** with rejecting default so a software upload can never clobber the company logo.svg - copyFolder: pre...

Kamo·3mo ago
Featurekamo-shared-library

Add software white-label branding columns to Organization

Kamo·3mo ago
Featurekamo-internal

First-org CTA hero for members on the platform org

Show an onboarding hero at the top of the home launchpad inviting a KamoCRM-platform member (not a team member) who hasn't yet created a child org to spin up th...

kamo·3mo ago
FeatureVOIPService

TURN-REST credentials endpoint for the mobile softphone

GET /api/voip/turn/credentials mints ephemeral coturn creds (HMAC-SHA1 over "<expiry>:<memberId>" with the shared static-auth-secret) so native/cellular WebRTC ...

Kamo·3mo ago
FeatureSecurityService

Expose per-org primaryColor + logo URLs on /my-networks

Each org row now carries primaryColor (Organization.colors.colorPri, '#'-prefixed to match config.json) and derived logoUrl/logoSimpleUrl (theme.<domain>/public...

Kamo·3mo ago
FeatureMediaService

Snapshot web-chat integration id on support visitor + ticket

Resolves the WebChatIntegration by creatingKeyHash (enabled-filtered, consistent with bootstrap()/AI-prompt resolution) once in createSupportSession and stamps ...

Kamo·3mo ago
FeatureAIService

Per-integration public AI prompt + session attribution

Upgrade the public-chat system-prompt waterfall from per-org to per-integration: PublicAiChatController now reads the X-Public-Chat-Key-Hash header (nullable) f...

Kamo·3mo ago
FeatureAPIService

GET /api/public-chat/bootstrap gateway route

Add bootstrap endpoint that reuses the existing proxyWithAuth pipeline (key validation + opt-in origin + PUBLIC_CHAT scope + rate-limit + X-Public-Chat-Key-Hash...

Kamo·3mo ago
FeatureMediaService

Public-chat bootstrap config resolver

Adds an internal GET **************** that resolves a WebChatIntegration by X-Public-Chat-Key-Hash and returns its resolved design/behavior config (default-fill...

Kamo·3mo ago
FeatureMediaService

WebChatIntegration CRUD (mints key + integration, org-scoped)

Org-facing management API for the Phase-2 web-chat settings tab. On create, mints the underlying PublicChatApiKey (same key-gen approach as PublicChatKeyControl...

Kamo·3mo ago
Featurekamo-internal

Add "Access Copilot Mobile App" entry points on home + NavPri

Both surfaces dispatch an `open-interaction-center` event that NavTop listens for to open the Interaction Center on the Setup Mobile App tab. Home shows a label...

kamo·3mo ago
Featurekamo-internal

Password-gate the QR, single-line tab, logo-left header, 10-min code

- Member must re-enter their password (server-verified via /api/mobile-access-otk, which mints the OTK only on success) before the QR is revealed — prevents s...

kamo·3mo ago
FeatureSecurityService

POST **************** — gate Mobile Copilot QR

Verifies the caller's own password (passwordEncoder.matches against their session's user) without changing anything. Used by the mobile-access-otk BFF route so ...

Kamo·3mo ago
Featurekamo-internal

Setup Mobile Access tab — QR to install + auto-configure Mobile Copilot

New 3rd tab in NavTopPanel (gated by ALLOW_MOBILE_ACCESS right): shows a branded QR encoding a short-lived OTK deep link (kamocopilot://configure) that signs th...

kamo·3mo ago
Featurekamo-shared-library

Add ALLOW_MOBILE_ACCESS (167) general right for Mobile Copilot

New RoleRightType (serviceType=null → General group) gating the 'Setup Mobile Access' interaction-center tab. RoleRightsSyncService backfills it to all roles on...

Kamo·3mo ago
July 15, 2026
Featurekamo-shared-library

Add anon usage count query for public web-chat quota

Kamo·3mo ago
FeatureMediaService

Mobile push dispatch (FCM data + direct APNs) with presence gate

chat incoming (MediaController), support ticket (SupportNotificationService), SMS/voicemail (VoipStompRelayController), social **************** Presence-gated l...

Kamo·3mo ago
FeatureKlusterServices

Expose AIService /ws/ai-chat via api.* hosts for mobile clients

IngressRoute (priority 100, websecure, ws-upgrade middleware sans compress) routes wss://api.<domain>/ws/ai-chat to kamowsai-service:80 — same pattern as the me...

Kamo·3mo ago
FeatureVOIPService

Accept X-***-Token on REST + signed ?st= stream tokens on audio endpoints

OTKValidationFilter precedence: X-OTK → X-***-Token → ?st= (GET, audio streaming paths only, verified via shared StreamTokenCodec with internal.auth.secret; cla...

Kamo·3mo ago
FeatureMediaService

Accept X-***-Token on REST; slide TTL with per-session timeout

OTKPreAuthFilter resolves X-***-Token when no X-OTK is present (same call MediaService REST without the BFF. KSessionService now slides the Redis TTL with the s...

Kamo·3mo ago
FeatureSecurityService

Device-token SSO **************** stream tokens, X-*** header parity

- DeviceAuthController: durable device credential per (user, device) with rotate-on-exchange + 60s grace; /device/exchange mints a per-org *** via PostAuth*...

Kamo·3mo ago
Featurekamo-shared-library

Device-token + push-registration entities, HMAC stream-token codec

hashed secret, rotation grace, sliding expiry), push_device_registrations (one push destination per device+org+kind), and StreamTokenCodec — short-lived HMAC to...

Kamo·3mo ago
FeatureSecurityService

Cache closed-loan docs across passes; retire on solve/exhaust

The trainer now refines a loan over multiple passes instead of one-and-done: - TrainingDocStore is a PERSISTENT, deterministically-keyed cache (key = hash of...

Kamo·3mo ago
Featurekamo-shared-library

Multi-pass closed-loan training — pass counter + corpus upsert key

The closed-loan trainer now re-reads a loan on successive passes until its extraction reproduces the loan outcome, so: - LeadLosLink.closedLoanPasses drives a p...

Kamo·3mo ago
Featurekamo-shared-library

Status-preserving progress write for the closed-loan trainer

run is RUNNING, without touching status. An operator pause (status → PAUSED) can no longer be clobbered by a full-row save from the pool thread — the guarded up...

Kamo·3mo ago
FeatureSecurityService

Harden closed-loan trainer — concurrency, idempotency, limits

- Concurrency: in-process activeOrgs guard + the DB claim() so this instance never double-walks an org and two replicas can't overlap; a run whose heartbeat...

Kamo·3mo ago
Featurekamo-shared-library

Harden closed-loan trainer — run lock + per-loan idempotency

- ClosedLoanTrainingRun.claim(): atomic conditional UPDATE that takes ownership of a run only when it is not already RUNNING or its heartbeat is stale (prev...

Kamo·3mo ago
Featurekamo-internal

Closed-loan auto-trainer panel on the platform Document AI tab

Top-level owners can run + monitor the MeridianLink closed-loan trainer across every tenant from Settings → Platform → Document AI. Per-org rows show status, lo...

kamo·3mo ago
FeatureSecurityService

Closed-loan auto-trainer + platform control endpoints

A closed loan is ground truth: its MeridianLink metadata is the answer key, its documents are the input. ClosedLoanTrainerService walks each MeridianLink org's ...

Kamo·3mo ago
Featurekamo-shared-library

Org-scoped loan roster query for the closed-loan trainer

**************** gives the trainer every LOS-linked loan for an org+provider, each carrying the externalLoanName it reads status + documents for.

Kamo·3mo ago
Featurekamo-shared-library

Closed-loan auto-trainer foundation (MeridianLink ground truth)

Foundation for training document extraction against funded loans (the answer key): - ClosedLoanTrainingRun entity+repo — per-org run control + live counters - E...

Kamo·3mo ago
FeatureSecurityService

DOC_REJECTED email carries the plain-language reason

Both reject paths now pass **************** to the borrower's rejection email instead of the raw enum literal.

Kamo·3mo ago
Featurekamo-shared-library

Plain-language borrower messages for document rejections

RejectionReasonType was a bare enum (the borrower literally saw "ILLEGIBLE"). Each value now carries a borrowerMessage() remediation string + a messageFor() map...

Kamo·3mo ago
July 14, 2026
Featurekamo-internal

Platform review queue on the Document AI tab

The Document AI tab now hosts the cross-tenant review queue: low-confidence extractions from every lender, lowest-confidence first, with inline confirm/correct/...

kamo·3mo ago
FeatureSecurityService

Platform QC queue + review endpoints (top-level owners)

system-config gains a cross-tenant extraction review queue + confirm/correct/reject, gated to top-level owners — the central labeling surface for the shared mod...

Kamo·3mo ago
Featurekamo-shared-library

Platform-wide QC review (cross-tenant labeling for the shared model)

A document is a document — extraction and the model are platform-level, not per lender. Adds a cross-tenant NEEDS_REVIEW queue + QcReviewService.platformReview ...

Kamo·3mo ago
FeatureSecurityService

Platform extraction config + cross-org corpus/accuracy/export

system-config GET/PUT now carries extractionAutoApplyConfidence + extractionModelId and reports the platform-wide corpus size + per-doc-type accuracy; adds a cr...

Kamo·3mo ago
Featurekamo-internal

Platform "Document AI" configuration tab

Adds a Document AI tab to **************** the auto-apply confidence threshold, the registered fine-tuned model id, the platform-wide training-corpus size + per...

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