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
October 9, 2026
Featurekamo-shared-library

Branded meeting invitation and update letters for calendar guests

Adds calendar.meeting_invite and calendar.meeting_updated canonical templates and MeetingInviteEmail, the variable builder EmailService fills them from.

Kamo·2w ago
October 6, 2026
Featurekamo-shared-library

One mapping engine for lead imports, with team-member assignment

Manual imports, automated (intake) imports and the backlog each carried their own copy of the mapping code, and they disagreed: date, regex and split transforma...

Kamo·2w ago
Featurekamo-shared-library

MEETING_COMPLETED run trigger, for a conversation meeting's follow-up (SP92 calls)

A meeting an AI member took part in as a conversation partner wakes it once it ends, with its transcript note, the way a phone call's CALL_COMPLETED does. STRIN...

Kamo·2w ago
October 5, 2026
Featurekamo-shared-library

The charter model for the ORG layer, PERSONALITY and DocsTION — the vocabulary, the twelve item columns, the org charter item, org archetypes and their repositories; validation still refuses the new sections (KamoCollab CP03 T7)

CharterLevel appends ORG after CP01's TEAM; CharterRule appends TRAIT and COLLAB; CharterSection appends PERSONALITY (TRAIT, 160) and DocsTION (COLLAB, 60), bot...

Kamo·2w ago
Featurekamo-shared-library

Tendency links — integer derive, the minimal-move inverse with the two-term carry, and the two gates (KamoCollab CP03 T5)

Weakness tendencies are "own controls, linked and option to be fully independent" (owner decision 6). TendencyLinks.LINKS holds the seven links of CP03 spec §5....

Kamo·2w ago
Featurekamo-shared-library

The 60-key trait registry, the group defaults and the Docstion vocabulary (KamoCollab CP03 T4)

PersonalityTraitKey carries a TraitSpec per key (family, type, range, default, choices, linked keys, UI group, unit, adaptability, label keys), REGISTRY_VERSION...

Kamo·2w ago
Refactorkamo-shared-library

Drop findMemberAndManagerIds — its only caller, SecurityService's hosted-computer manager pairs, now reads the org graph (KamoCollab CP02 T15)

git grep of every repo's origin/main (and every unpushed worktree) finds no other caller. Push only AFTER SecurityService's CP02 T15 commit is deployed: until t...

Kamo·2w ago
Refactorkamo-shared-library

Chat member facts come only from the org graph; the legacy facts repository and its constructor are gone (KamoCollab CP02 T18)

ChatPolicySnapshotLoader loses its ChatPolicyFactsRepository constructor, the facts field, loadFacts, ancestry, managerChain, workLocationName and the str, lng ...

Kamo·2w ago
Featurekamo-shared-library

Build member facts from the org graph, next to the old query path (KamoCollab CP02 T5)

ChatPolicySnapshotLoader gains a constructor taking LongFunction<OrgGraph>. With it, load() maps the organization's graph to MemberFacts through the new MemberF...

Kamo·2w ago
Featurekamo-shared-library

Bounded recalculation by member id, and role edits that reach team members (KamoCollab CP01 T7)

**************** recalculates exactly these members: read by id in chunks of 500 (never the organization's members), each chunk through recalcChunk (the TEAM le...

Kamo·2w ago
Featurekamo-shared-library

The loader, its eight org-bounded queries, the 60 s cache, the change event, the wire codec and the department head mapping (KamoCollab CP02 T4)

- OrgGraphFactsRepository (donotmodify.dao.repos): eight native queries, each bounded by org_id through an index; users and CP01's team tables are pinned onto...

Kamo·2w ago
Featurekamo-shared-library

The TEAM level of the rights and session-timeout waterfalls (KamoCollab CP01 T6)

TeamLevels (pure, not a bean) reads a set of members' teams in four queries whatever their number (one when none is in a team): memberships, the teams, their ro...

Kamo·2w ago
Featurekamo-shared-library

CharterLevel.TEAM, between the job title and the member (KamoCollab CP01 T5)

Appends TEAM to CharterLevel (after DEFAULT; ORG from CP03 comes next, R1-11) and states in its Javadoc that resolution order is CharterLayer.rank, never the de...

Kamo·2w ago
Featurekamo-shared-library

The pure org graph core: OrgGraph, its builder, nodes and relationships (KamoCollab CP02 T3)

Package com.kamo.z.shared.org.graph (pure, no beans), per KamoCollab master §6.2 and CP02 spec §5.2-§5.3: - enums OrgRelationship, CounterpartKind, OrgGraphChan...

Kamo·2w ago
Featurekamo-shared-library

The team entities, repositories and limits (KamoCollab CP01 T4)

Team (org_teams), TeamMembership (org_team_members, @IdClass Key), TeamRole, TeamRight (type through RoleRightTypeIdConverter) and TeamCharterItem (team_charter...

Kamo·2w ago
Testkamo-shared-library

Capture the rights and session-timeout waterfall goldens on unchanged main (CP01 T1)

RightsWaterfallGoldenTest (933 lines: cascade 588, templates 324, closure 18, AI 3) a94381d6 and checked in both fixture modes (lazy collections, bulk repositor...

Kamo·2w ago
Featurekamo-shared-library

MediaObjSource and MediaObj.source, createMessage with a source, findTwoPersonChatSession, and the impersonation/Enter-As access-log events (KamoCollab CP00 T4)

- MediaObjSource {MEMBER, SYSTEM, SERVICE}; MediaObj.source (STRING, column SOURCE, length 16, nullable, no default) and sourceOrMember(), which reads NULL as...

Kamo·2w ago
October 4, 2026
Featurekamo-shared-library

Phonetic spellings of the org's name and short name, for the AI's speech (SP94 T3)

Organization.titlePhonetic / titleShortPhonetic (TITLE_PHONETIC, TITLE_SHORT_PHONETIC, VARCHAR(255), nullable), on patchOrganization's allow-list beside title/t...

Kamo·2w ago
Featurekamo-shared-library

Per-phone-server outbound policy and OutboundCallPolicy (SP93 T3)

SP93 Task 3 (spec §5.2, D1, D4-D6): - AiVoiceInstanceSettings gains **************** BLOCK_INTERNATIONAL, BLOCK_PREMIUM_RATE, BLOCK_HIGH_RISK_AREA_CODES (bool...

Kamo·2w ago
September 29, 2026
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
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
Featurekamo-shared-library

SP96 MemberSex, Member.sex and a gender on the voice record

members.sex is a nullable STRING column (FEMALE | MALE, null = not specified), so an AI member can speak with a matching voice. The TTS and REALTIME_AUDIO voice...

Kamo·3w ago
September 28, 2026
Featurekamo-shared-library

The platform API host is api.kamouniverse.com

The platform's OAuth apps now hold api.kamouniverse.com redirect URIs. The owner added them to every console (Google, Microsoft Entra, Zoho, RingCentral) and ke...

Kamo·3w ago
Fixkamo-shared-library

A quote's letterhead falls back to the primary platform apex

QuoteMapper kept its own "kamocrm.com" literal as the theme host of last resort, so a quote for an organization with no live domain still named the old brand's ...

Kamo·3w ago
Featurekamo-shared-library

Kamouniverse.com is the platform's primary apex

The brand moved from kamocrm.com to kamouniverse.com, but nothing the platform generates could follow it. Every "which of this org's domains" rule ranked by few...

Kamo·3w ago
Fixkamo-shared-library

A lead that was ever assigned or opened can be deleted

LeadService.deleteLead cleared only lead_custom_form_data before deleting the row, and six other tables carry a foreign key onto leads(uid). Every assignment wr...

Kamo·3w ago
Fixkamo-shared-library

A team member is equal to another only when their ids are (SP10)

SP10 T47, live: MediaService answered "one or more memberIds not found" to a group chat of the owner and two AI members. Lombok's @EqualsAndHashCode(callSuper =...

Kamo·3w ago
Fixkamo-shared-library

Publish routes another stream's subject instead of pinning ours; lead notes reach the feed after commit

**************** asserted expectedStream(<own stream>) on every subject, so a subject another stream captures was refused with "expected stream does not match [...

Kamo·3w ago
Featurekamo-shared-library

Organizations and plans belong to a KamoUniverse universe

KamoUniverse sells the platform to four audiences - Business, Family, Community, Personal - each on its own plan ladder with packages that fit it (a family gets...

Kamo·3w ago
Featurekamo-shared-library

Meeting calls in AI_CALL telemetry — kind, meeting id, REMOVED, meeting events

AiCallKind {PHONE, MEETING} and AI_CALL.KIND / MEETING_ID (SP14 DDL **************** AiCallOutcome.REMOVED, the four meeting event types, and the member+meeting...

Kamo·3w ago
Fixkamo-shared-library

Keep the meeting transcript's ciphertext columns out of JSON

**************** has failed on main since f92765b1 added MeetingTranscript: transcriptTextCipher, transcriptVttCipher and summaryCipher had neither @JsonIgnore ...

Kamo·3w ago
September 27, 2026
Fixkamo-shared-library

An AI workstation's take-over and MCP token are written only by their own UPDATEs

control_member_id/_started_at and **************** are now updatable = false, and HostedComputerRepository gains the only writes they get: recordControl, clearC...

Kamo·3w ago
Featurekamo-shared-library

AI call telemetry entities

AI_CALL and AI_CALL_EVENT (spec §4.2/§4.3): direction, status, outcome and event-type enums (STRING), the two entities and their repositories. AiCallStatus.LIVE...

Kamo·3w ago
Featurekamo-shared-library

Meeting minutes contract — prompt, JSON parse, markdown and HTML rendering

Mirrors kamoai-voice's minutes.py exactly: caps and chunks count code points (no split emoji), Unicode white space is stripped, only JSON arrays are lists, text...

Kamo·3w ago
Featurekamo-shared-library

Meeting transcripts entity and WebVTT codec

Kamo·3w ago
Featurekamo-shared-library

Number-level AI voice consent ledger with append-only history

The gate also counts the number's newest REVOKED event, so a revocation survives its record moving to another number, a backdated re-grant and a stale whole-row...

Kamo·3w ago
Featurekamo-shared-library

Runtime entities (SP10)

Kamo·3w ago
Featurekamo-shared-library

E.164 normalization for AI voice consent and dialing

Kamo·3w ago
Featurekamo-shared-library

Runtime enums (SP10)

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