KamoCRM

Live Change Log

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

17,395
Total Changes
5,910
Features
5,260
Fixes
30
Projects
Filter by project
All Projects17,395AIService242APIService174BillingService157ConversionService110DaemonService137DocsService223ESigService91EmailService568InitializerService329KBService151KlusterServices738MCPGatewayService235MediaService592RAGService79SecurityService1,830TranslateService62VOIPService248VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,328kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,637kamo-signer-monorepo56kamolos114
Filter by type
All TypesBuild16CI523Chore773Docs3,252Feature5,910Fix5,260Other993Performance165Refactor278Revert23Style42Test159Upgrade1
September 29, 2026
Docskamo-internal

SP98 Task 25A rulings SP98-T25A-1..7 — provider-neutral computer use

check over Kamo's own computer_* contract; toolVersion probe-filled; router serves COMPUTER_USE where an adapter carries images and tool loops; Tool Plane image...

Kamo·3w ago
FeatureSecurityService

A colleague's call card for AI calls, and consent to AI calls on one's own profile (SP95 T5)

- GET **************** (X-Internal-Auth): a team member's name, kind, whether they are still here, their effective zone (work site, member, org, UTC), the E...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
TestSecurityService

SP96 the charter's VOICE TTS pin is refused and resolves to nothing

SecurityService picks up the retired pin from shared-lib (Task 14); no SecurityService code read it. Pins the service's side: a member item naming voiceModelId/...

Kamo·3w ago
FixMCPGatewayService

An upstream image follows the wrapped text instead of filling it (SP98 T25A)

A workstation screenshot is an MCP image block of about 250 KB of base64. The untrusted wrap serialized it into the result text, so the text budget held base64 ...

Kamo·3w ago
FeatureAIService

Computer use is earned through Kamo's own computer_* tools by any provider (SP98 T25A)

native computer tool with a beta header and passed on any 2xx. AI members drive their workstation through the Tool Plane's computer_* tools, never a vendor's na...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
FeatureMCPGatewayService

Phone_call calls a colleague by memberId, as PLACE_INTERNAL_CALL (SP95 T9)

A colleague is named by memberId, never by number: the planner reads their SecurityService call card and dials the cell, else the phone, else the work number on...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Featurekamo-internal

SP96 sex on the member profile, gated as personal data

A Personal details card in the Identity room holds the member's sex: Not specified, Female or Male. It is on the member row, so the gates mirror SecurityService...

Kamo·3w ago
Featurekamo-internal

SP96 sex on the member profile, gated as personal data

A Personal details card in the Identity room holds the member's sex: Not specified, Female or Male. It is on the member row, so the gates mirror SecurityService...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Fixkamo-internal

Name the unknown recipient instead of a generic send failure

Review round-1 MAJOR: EmailService's RecipientDomainValidator now answers 422 RECIPIENTS_UNKNOWN before a send is attempted whose recipient names one of the org...

Kamo·3w ago
FixEmailService

Close three false-refusal paths the review found in RecipientDomainValidator

Independent review of D-luna-1 (email-fix-review-1.md) found two BLOCKERs and a MAJOR, each a real false refusal of legitimate mail, demonstrated from code alre...

Kamo·3w ago
FixMCPGatewayService

Use the RECIPIENTS_UNKNOWN constant instead of a string literal

Review round-1 NIT: the constant was declared and never referenced, so it and the literal in withDirectoryHint could silently drift apart if either were ever ed...

Kamo·3w ago
Docskamo-asterisk-support

Why allow= alone keeps G.722 out of the offer to LiveKit

Review 1 asked whether codec_prefs_outgoing_offer (prefer:pending, operation:union) could still put a caller's g722 into Asterisk's offer to LiveKit. It cannot:...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Featurekamo-shared-library

The computer-use check writes the contract a model passed (SP98 T25A)

COMPUTER_USE is earned through Kamo's own computer_* tools by any provider, so toolVersion is probe-filled: the check records which contract the model passed, a...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
Featurekamo-shared-library

SP96 retire the charter's VOICE TTS pin

A VOICE item is style only: validation refuses voiceModelId/voiceId (FIELD_NOT_ALLOWED), the resolver has no TTS key and EffectiveCharter no Tts, and CharterVie...

Kamo·3w ago
Featurekamo-shared-library

PLACE_INTERNAL_CALL, member consent, the spoken company name, the team line, ON_REQUEST approvals

SP95 Task 4 (spec §5.2, D1, D4, D10, D15, D24): - AiActionClass gains PLACE_INTERNAL_CALL (AUTONOMOUS), appended last. CharterResolver resolves an unnamed PLA...

Kamo·3w ago
Fixkamo-asterisk-support

AI extensions offer G.711 only, so the AI leg is never G.722

livekit-sip answers an offer with the codec it ranks highest, not the first one offered (media-sdk sdp.SelectAudio: G722 -5 > PCMU -10 > PCMA -20). With allow=!...

Kamo·3w ago
FixMediaService

An AI member's chat name is the full name, same as a human's

**************** trusted Member.usernameAlias over the account's own full name whenever the alias was non-blank. MemberCreationService mirrors the account's use...

Kamo·3w ago
Docskamo-internal

SP98 T20 rulings: the measured counts

Kamo·3w ago
Fixkamo-internal

UI sweep A: theme tokens, plain errors, empty states and phone layouts (SP98 T20)

AI settings (registry, routing, MCP, workforce controls, Security & Models), personas, Platform admins and the assistant's model picker, from a static-harness s...

Kamo·3w ago
FeatureAIService

An AI member's remembered voice per speech model, and the resolver that keeps or re-picks it

The ai_member_voices store (JDBC, TransientDbRetry, compare-and-set re-picks, an hourly touch, the CHOSEN upsert and the one-statement preferred flag), the memb...

Kamo·3w ago
FixKlusterServices

The platform main line survives a boot, and 8200 is the team line

Luna's go-live (2026-09-28) wrote [kamo-main-luna] into extensions_custom.conf and KAMO_LUNA_EXT / KAMO_LUNA_MAX_RING into globals_custom.conf by hand on the ho...

Kamo·3w ago
Docskamo-internal

Ledger — 1 entries

Kamo·3w ago
FixAIService

The brief words an action class it has no case for, so a new shared-lib class never breaks the build

CharterCompiler.actionClass gains default -> words(name): the enum name in lower-case words, first letter capitalised (PLACE_INTERNAL_CALL reads "Place internal...

Kamo·3w ago
FeatureVOIPService

The DDL file for the phone server's team line

SP95 Task 2. **************** a nullable VARCHAR(20) that holds the extension an AI's unnamed transfer rings (the team line, 8200 on the k1m1 FreePBX). Hand-app...

Kamo·3w ago
Docskamo-internal

SP94 phonetic org names — spec, plan, ledger, PROGRESS row, master §11 row

Plans the owner's 2026-09-28 request for phonetic spellings of an org's name and short name, spoken only by AIService's E5 speech API (a single-pass, case-insen...

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