Live Change Log

See what we're building, in real-time. Every feature, fix, and improvement shipped across the platform.

18,042
Total Changes
4,671
Features
4,589
Fixes
32
Projects
Filter by project
All Projects18,042AIService114APIService140BillingService133ConversionService87DaemonService109DocsService191ESigService80EmailService392InitializerService304KBService76KlusterServices550MCPGatewayService45MediaService466RAGService63SecurityService1,532TranslateService47VOIPService175VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,606kamo-login319kamo-marketing590kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,332kamo-signer-monorepo50kamolos104
Filter by type
All TypesBuild24CI523Chore670Docs231Feature4,671Fix4,589Other6,781Performance136Refactor274Revert23Style48Test71Upgrade1
April 29, 2026
Fixkamo-asterisk-support

Add go-sql-driver/mysql v1.7.1 checksum to go.sum

go mod tidy without source files is a no-op, so the mysql checksum was never added. Generated the correct h1 hashes via a throwaway golang:1.22-alpine container...

Kamo·4mo ago
Chorekamo-internal

Checkpoint de [skip ci]

Kamo CI·4mo ago
Fixkamo-shared-library

Handle legacy ordinal strings for CountryType via AttributeConverter

DB rows had country stored as ordinal integers (e.g. "186" for UNITED_STATES) instead of enum names, causing IllegalArgumentException on findAll(). CountryTypeC...

Kamo·4mo ago
Chorekamo-internal

Checkpoint id [skip ci]

Kamo CI·4mo ago
Chorekamo-internal

Checkpoint pt [skip ci]

Kamo CI·4mo ago
Chorekamo-internal

Checkpoint ru [skip ci]

Kamo CI·4mo ago
Chorekamo-internal

Checkpoint bn [skip ci]

Kamo CI·4mo ago
Chorekamo-internal

Checkpoint ar [skip ci]

Kamo CI·4mo ago
Fixkamo-internal

Cancel translate jobs instantly by running tsx in background

When Forgejo cancels a workflow, bash waits for any foreground child to finish before processing the signal — so a running tsx locale job would block cancellati...

kamo·4mo ago
Fixkamo-asterisk-support

Move ASTERISK_CDR_DSN to local config.json, not CI/CD secrets

CDR credentials are local to each FreePBX server and have no business in the CI/CD pipeline. Operators add ASTERISK_CDR_DSN directly to their config.json alongs...

Kamo·4mo ago
Chorekamo-internal

Checkpoint es [skip ci]

Kamo CI·4mo ago
Chorekamo-internal

Checkpoint zh [skip ci]

Kamo CI·4mo ago
FixSecurityService

Allow elevated access on getDomainById and verify-dns endpoints

Top-level org owners and system members were getting 403 on getDomainById and verify-dns because those endpoints checked isUserMemberOfOrg directly. Adds hasEle...

Kamo·4mo ago
Fixkamo-internal

Show existing org domain instead of entry form when no custom domain

Fall back to the org's platform subdomain as the display domain so DnsProgressView renders rather than DomainEntryForm when no custom external domain exists. Al...

kamo·4mo ago
Featurekamo-asterisk-support

Enrich upload manifests with Asterisk CDR caller-ID data

Adds optional MySQL CDR enrichment so the softphone history tab can display who called (or was called). When ASTERISK_CDR_DSN is configured as a Forgejo repo se...

Kamo·4mo ago
FeatureConversionService

Parse CDR caller-ID fields from upload manifest

When kamo-asterisk-support includes a cdr{} section in the upload manifest (populated when ASTERISK_CDR_DSN is configured), ConversionService extracts callerIdN...

Kamo·4mo ago
FeatureInitializerService

Add CDR caller-ID columns to recordings table (order 40)

Adds caller_id_num, caller_id_name, call_direction, and call_result columns to the recordings table so the softphone history tab can display who called without ...

Kamo·4mo ago
Featurekamo-shared-library

Add CDR caller-ID fields to Recording entity

Adds callerIdNum, callerIdName, callDirection, and callResult columns to the Recording entity so kamo-asterisk-support can store Asterisk CDR metadata alongside...

Kamo·4mo ago
FixVOIPService

Surface imaging fallback when provider has no call history

KamoPBXProvider.getCallHistory now returns null instead of throwing **************** so the 501 response no longer bypasses the imaging fallback. The provider c...

Kamo·4mo ago
Chorekamo-internal

Checkpoint fr [skip ci]

Kamo CI·4mo ago
Chorekamo-internal

Checkpoint es [skip ci]

Kamo CI·4mo ago
Chorekamo-internal

Checkpoint hi [skip ci]

Kamo CI·4mo ago
Chorekamo-internal

Checkpoint zh [skip ci]

Kamo CI·4mo ago
Fixkamo-internal

Restore NavPri panel labels and LeadHistory column headers

NavPri: salvage-keys grabbed href URLs as label values and swapped label/description pairs for Accounts, KB, and Notes nav panels. LeadHistoryPanel: MUI bgcolo...

kamo·4mo ago
Featurekamo-internal

Add COMP payment method option to subscription order wizard

COMP is a valid backend PaymentMethod enum value for complimentary platform-admin grants, but was missing from the frontend type and wizard UI — only INVOICE an...

kamo·4mo ago
Fixkamo-internal

Show platform domain context when no custom domain is set

Surface the active *.kamocrm.com hostname in the domain entry form so users can see their current platform domain instead of a blank entry screen. Also fixes ve...

kamo·4mo ago
Otherkamo-internal

Revert "chore(messages): add wave3 translation merge fragments (JSON)"

This reverts commit ****************

kamo·4mo ago
Otherkamo-internal

Revert "feat(setup-dns): show platform kamocrm domain on custom domain entry"

This reverts commit ****************

kamo·4mo ago
Chorekamo-internal

Add wave3 translation merge fragments (JSON)

kamo·4mo ago
Featurekamo-internal

Show platform kamocrm domain on custom domain entry

Surface the active *.kamocrm.com hostname on the add-domain flow and detect custom domains by excluding kamocrm URLs instead of default-flag alone.

kamo·4mo ago
Fixkamo-internal

Checkpoint translations per chunk and per locale on main

Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...

kamo·4mo ago
Fixkamo-internal

Checkpoint translations per chunk and per locale on main

Persist locale JSON after each API chunk so cancellation loses at most one batch. CI translates one locale per process and commits/pushes after each so finished...

kamo·4mo ago
April 28, 2026
Fixkamo-internal

Disable Docker BuildKit cache so every pipeline run does a full rebuild

Sets no-cache on both image build steps so npm ci and npm run build always run, even when the source tree is unchanged.

kamo·4mo ago
Fixkamo-internal

Bust Docker BuildKit cache per commit so npm run build runs every push

Identical checkout trees (e.g. empty commits) reused cached layers and skipped a real Next build. Pass GIT_COMMIT from the workflow and label the image revision...

kamo·4mo ago
Chorekamo-internal

Blank commit to kick CI/CD

kamo·4mo ago
Fixkamo-internal

Add missing chat meet button labels

kamo·4mo ago
FixEmailService

Sync members.email when primary mailbox is assigned, changed, or removed

When a mailbox was assigned to a member in a KAMO_MAIL org, members.email was never updated, causing EmailCredentialService to fail to resolve IMAP credentials ...

Kamo·4mo ago
FixSecurityService

Prevent duplicate root domains and fix primary domain display

ONE_DOMAIN_PER_ORG check incorrectly excluded .kamocrm.com web-alias domains, allowing an org to accumulate multiple root domains (and 10 aliases each) by retry...

Kamo·4mo ago
Fixkamo-internal

Serialize member-security and members PUT calls to avoid CockroachDB conflict

Two concurrent writes to the same `members` row caused a serializable isolation conflict — member-security read the row while the members endpoint wrote to it (...

kamo·4mo ago
Fixkamo-internal

Double scrollbar width from 6px to 12px

kamo·4mo ago
FixSecurityService

Reduce org creation latency and fix translation cascade failures

- OrganizationController: replace ensureTeamMembersForAllOrgs (full org table scan) with ensureTeamMemberForOrg (single org) — eliminates the ~400ms×N DB ro...

Kamo·4mo ago
Fixkamo-shared-library

Widen commit_log_translations.title to TEXT to match DB column

The column was VARCHAR(512) in both the annotation and the DB, causing translation inserts to fail for long translated titles. The DB column is now STRING (appl...

Kamo·4mo ago
Chorekamo-internal

Trigger CI/CD

kamo·4mo ago
Fixkamo-internal

Unwrap catalog and calculation from backend response envelope

getSubscriptionCatalog returned { catalog: {...} } but was cast directly as SubscriptionCatalog, leaving catalog.plans undefined and the plan selection step bla...

kamo·4mo ago
FixBillingService

Add @JsonProperty to is*-prefixed boolean DTO fields

Lombok generates isXxx() is-getters for boolean fields named isXxx. Jackson strips the leading 'is' from is-getters and serializes them as 'xxx' rather than 'is...

Kamo·4mo ago

Like what you see shipping?

Every one of these updates lands in your workspace automatically. Start free and watch it grow week after week.

Start Free ForeverView Pricing