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
November 7, 2026
FixMediaService

Zoom's Server-to-Server app is entered once; SI joins live in Provider Setup (SIE10FU)

Owner 2026-11-07: meeting providers are configured on Provider Setup; SIE10's separate SI Meeting Joins screen duplicated it. Backend side of folding it in: - Z...

Kamo·3d ago
Fixkamo-internal

The SI joins status tone takes the theme's own type (unblocks the build)

ReturnType<typeof useTheme> is unknown (useTheme is generic), so next build failed type-checking.

Kamo·4d ago
FixSecurityService

Accept the phone's session, like every session endpoint

SIE5. **************** read only the BFF's X-OTK session, so KamoMobile (api.<org> with X-***-Token) got 401 and could not share a preference with the web — the...

Kamo·4d ago
Fixkamo-internal

Pass the SI Status translator to duration() as the plain function it takes

next-intl's Translator is not assignable to (k, v) => string (TS2345), failing the kamo-internal image build. No behavior change.

Kamo·4d ago
Fixkamo-internal

Searching 'workforce' found nothing - add SI Workforce and Workforce Controls cards

Both tabs existed on /settings/ai but had no landing card, and the settings search only filters landing cards.

Kamo·4d ago
Fixkamo-internal

SI Status tab sets textTransform once, so the build type-checks again

SIE1's tab style named textTransform twice (TS1117), failing every kamo-internal image build since 7557af90a. No behavior change.

Kamo·4d ago
November 6, 2026
FixConversionService

A trunk leg's heard side is our member, not the other party

When the only one-party files come from the trunk leg (a caller coming in), its rx is the caller and its tx is what the caller heard: us. Name that side after t...

Kamo·4d ago
FixConversionService

Whole calls, timed turns with speakers, and a backfill

Owner report 2026-11-06: transcripts "do not reflect the entirety of the call recordings", and separate channels should say who is speaking. Measured on 180 pl...

Kamo·4d ago
FixSecurityService

A cancelled run is waiting on the newer push, not a failure

Forgejo reports a run a newer push cancelled as failure / "Has been cancelled", and with several sessions pushing that is most runs. It now stays in flight (QUE...

Kamo·4d ago
FixAIService

A timed transcription walks only models that give segments

Owner report 2026-11-06: call transcripts "do not reflect the entirety of the call recordings". Measured on the platform org's calls: the router's first STT cho...

Kamo·4d ago
Fixkamo-internal

The reading-pane subject no longer collapses to one letter per line

The action buttons were flex-shrink-0 beside a min-w-0 title, so in a narrow pane they took the whole row and the subject got zero width. The header now wraps a...

Kamo·4d ago
FixKBService

The phone's session header signs in a READ, so KamoMobile can open help, scripts and tasks

KamoMobile calls api.<org> with X-***-Token and cannot mint an OTK, so every KBService read it made (the Password Vault's help article, sales scripts, task list...

Kamo·4d ago
FixMCPGatewayService

Read the address bar's text.content, and pass a shell secret in run_shell's env map (TPVAULT phase 2, live)

Live on a test SI's workstation the address bar's text sat 372 characters after its name; read the node's own content first so a longer states list can't push i...

Kamo·4d ago
FixAIService

A proper 32-byte key for saved provider API keys, no default, no plaintext fallback (TPVAULT side fix)

AI_PROVIDER_KEY (Secret ai-provider-key, 32 random bytes) or the service will not start; new values are v2: + AES-256-GCM with associated data. The old padded-s...

Kamo·4d ago
Fixkamo-internal

The Call Log shows each member's photo and their profile card on hover

Rows wrap the member in the shared MemberHoverCard and warm the member-card cache, so faces are photos rather than initials; the team-member picker warms the sa...

Kamo·4d ago
FixVOIPService

The Call Log's provider audio door refuses a line whose provider keeps no recordings

The list only offers Listen for a recording the platform stores or JustCall keeps; the door now asks the same rule before it asks any provider, so a FreePBX cal...

Kamo·5d ago
Fixkamo-internal

Never link to an article kept out of the help center on purpose

Ten articles were in the manifest but not in the live knowledge base. One, SI Goals, Watches and Signals, had simply never been imported; it is now published. T...

Kamo·5d ago
Fixkamo-internal

Keep idle connections open longer than Traefik, so a POST is never sent down a closing one

Node closed an idle keep-alive connection after 5 s; Traefik keeps its idle connections to a pod for 90 s and reuses them. A request sent as Node closed the soc...

Kamo·5d ago
November 5, 2026
Fixkamo-internal

Every loan has a column on the board, and the list streams through

Sold / Boarded sat on neither lane of the board, so those loans never showed. It now follows Funded, and any status neither lane names gets a column of its own ...

Kamo·5d ago
November 4, 2026
FixKlusterServices

Detach k1m1's NFS mount while k3m1 is not serving it

The worldchunks USB drive dropped off k3m1 on 2026-10-30 and has not come back, so nfs-server stopped. k1m1 kept its soft mount on the assumption the server ret...

Kamo·1w ago
Fixkamo-shared-library

An updated invoice keeps its due date; an overdue one takes no new charges

Re-sending an updated invoice moved its due date forward, which quietly forgave what the customer already owed late. It now keeps its date and only restarts rem...

Kamo·1w ago
November 2, 2026
Fixkamo-internal

The context column scrolls its cards instead of squeezing them

On a desktop the context column of MasterDetail has a fixed height and scrolls, but its grid rows were plain auto, which a fixed-height grid shrinks to the free...

Kamo·1w ago
Fixkamo-internal

My Tasks fills wide screens, says once what failed, and has its tests

The fourth column at 1800px sat inside a breakpoint object, where MUI ignores a media query. Tests for the Organizer rows, their gates, the palette's finds and ...

Kamo·1w ago
Fixkamo-internal

A refusal reads as the service's own sentence, with no retry

The floor screens treated a 403 as a failed load. They now show what the service said, and offer no retry because none can help. The TV board fits every column ...

Kamo·1w ago
Fixkamo-internal

Closeout: pages keep the nav's rights, the canvas tells the truth, and quieter sessions

Floor pages a typed address could reach now answer as the nav does, with a plain message, and a person a bell sent there still reaches what is theirs. The canva...

Kamo·1w ago
Fixkamo-shared-library

A stage move names itself, and a rate change can start a stream

A status set off a call wrote its contact attempt as a CALL, so a stage move into a Contacted stage read "Call · Conversation". The attempt now says STAGE_MOVE ...

Kamo·1w ago
FixSecurityService

A failed internal action says why in the log

Kamo·1w ago
Fixkamo-internal

What the live retest found

Pane titles wrap to two lines on a phone. The Media socket waits a moment before closing, so a page load doesn't open several in turn. The links to the lender's...

Kamo·1w ago
Fixkamo-shared-library

View Loan Revenue & Cost hangs off own loans

Hanging off the whole pipeline made the own-loans rule unreachable: a holder without View Mortgage Pipeline lost the right at sign-in.

Kamo·1w ago
November 1, 2026
Fixkamo-internal

The socket's close callback is in the local stomp types

The fix pass's shared Media socket uses onWebSocketClose, which types/@stomp__stompjs.d.ts didn't declare, so 552adae26 failed its build at useMediaTopic.ts. No...

Kamo·1w ago
Fixkamo-internal

The duplicate route reaches the service, and a saved text's key fits its column

Completes fe182924f. The contract in the brief follows the scripts work.

Kamo·1w ago
FixKBService

The help tree reads titles, not whole translated articles

Any language but English loaded every translated help row on each tree read, about 4 MB, outside the minute-long cache. The tree now carries titles alone and th...

Kamo·1w ago
FixKBService

The deployed config names the platform organization

The pods read the ConfigMap's application.yml, not the one in the image, so sharing stayed off, which is the safe way to fail.

Kamo·1w ago
FixKBService

Every write keys on the article's owning organization

Reads now cross one edge, so writes must not lean on anything a read decides. Each write takes the acting organization and asks ownedBy, in the service as well ...

Kamo·1w ago
Fixkamo-internal

One link to CRM settings instead of every tab

The hero listed each settings tab, which stopped working once the list grew. It now opens the first tab this member can reach.

Kamo·1w ago
Fixkamo-internal

The call session stacks on a phone, and a floor page can carry Quick Tips

The workspace grid took the page's leftover height at phone width, so its panels overlapped. FloorPage takes helpTips and draws the same column SettingsView doe...

Kamo·1w 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