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
August 10, 2026
OtherKlusterServices

Schema parity with CockroachDB -- 714 tables, 8706 columns

The drift diff earned its place. KamoInitializerService builds the schema from JPA entities and produced 599 tables; production carries 714. The 115 difference ...

Kamo·2mo ago
OtherKlusterServices

Schema parity with CockroachDB -- 714 tables, 8706 columns

The drift diff earned its place. KamoInitializerService builds the schema from JPA entities and produced 599 tables; production carries 714. The 115 difference ...

Kamo·2mo ago
August 9, 2026
OtherKlusterServices

Full CockroachDB->YSQL translator for the universe migrations

All 15 migrations now apply cleanly to YugabyteDB: 111 tables, matching CockroachDB exactly. Eight distinct CockroachDB-only constructs had to be handled, found...

Kamo·2mo ago
OtherKlusterServices

Full CockroachDB->YSQL translator for the universe migrations

All 15 migrations now apply cleanly to YugabyteDB: 111 tables, matching CockroachDB exactly. Eight distinct CockroachDB-only constructs had to be handled, found...

Kamo·2mo ago
OtherKlusterServices

CSV export via COPY TO STDOUT, plus a CSV-aware verifier

Transport is COPY ... TO STDOUT WITH (FORMAT CSV), not `cockroach sql --format=csv`. The latter renders SQL NULL as the literal string "NULL", indistinguishable...

Kamo·2mo ago
OtherKlusterServices

CSV export via COPY TO STDOUT, plus a CSV-aware verifier

Transport is COPY ... TO STDOUT WITH (FORMAT CSV), not `cockroach sql --format=csv`. The latter renders SQL NULL as the literal string "NULL", indistinguishable...

Kamo·2mo ago
OtherKlusterServices

Make every sweep schema-aware; kamo has 714 tables, not 680

Cross-checking SHOW BACKUP (714 objects) against a table_schema='public' inventory (680) exposed 34 tables living in five other schemas: email_metadata, email_p...

Kamo·2mo ago
OtherKlusterServices

Make every sweep schema-aware; kamo has 714 tables, not 680

Cross-checking SHOW BACKUP (714 objects) against a table_schema='public' inventory (680) exposed 34 tables living in five other schemas: email_metadata, email_p...

Kamo·2mo ago
OtherKlusterServices

Baseline capture for CockroachDB to YugabyteDB parity checking

Two passes: cheap batched count(*), then an order-independent checksum. The checksum sums per-row md5 hashes as integers rather than the obvious md5(string_agg...

Kamo·2mo ago
OtherKlusterServices

Baseline capture for CockroachDB to YugabyteDB parity checking

Two passes: cheap batched count(*), then an order-independent checksum. The checksum sums per-row md5 hashes as integers rather than the obvious md5(string_agg...

Kamo·2mo ago
August 8, 2026
Otherkamo-internal

Route the Apps & Features copy through next-intl

kamo-internal serves 22 locales and every user-facing string has to come from a message key — hardcoded English breaks every non-English operator. The tab and t...

kamo·2mo ago
August 7, 2026
Otherkamo-internal

Re-point the doc manager tab at editedDocs

f98c5edc rebuilt its tree from a pre-8cb0a485 index and carried the old line back with it. `modifiedDocs` no longer exists in the dictionary, so main was callin...

kamo·2mo ago
Otherkamo-internal

The second doc manager tab reads Edited Docs

Points at the renamed key `docManager.tabs.editedDocs`; `modifiedDocs` is gone from the dictionary, so this has to move with it.

kamo·2mo ago
August 6, 2026
Otherkamo-internal

Rename the DocManager Organizer tab to Binders

The tab lists binders, so name it for what it holds. Points the tab label and the row action at the renamed dictionary keys (tabs.binders, addToBinder); the pic...

kamo·2mo ago
August 2, 2026
Otherkamo-shared-library

Revert "feat(phi): add the handlesPhi tenant flag and PhiTenantGuard"

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

Kamo·2mo ago
OtherInitializerService

Revert "feat(phi): create HANDLES_PHI and PHI_EFFECTIVE_DATE on orgs"

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

Kamo·2mo ago
July 16, 2026
July 10, 2026
Otherkamo-shared-library

MortgageProviderResolver deps → ObjectProvider — was crash-looping MediaService

The @Service is component-scanned by every com.kamo service, but mlos.config repositories only exist where @EnableJpaRepositories registers them. Hard construct...

Kamo·3mo ago
Otherkamo-internal

Translate Residential-Mortgage grid columns + Purpose filter

Replace the literal column headers (Purpose/Loan Amount/LTV/DTI), the Loan Purpose filter label, and the filter option labels with next-intl t() keys **********...

kamo·3mo ago
July 8, 2026
Otherkamo-internal

Show Canva actions only when Canva is usable

The page previously offered Create/Import/Generate-in-Canva next to a "Canva isn't set up" notice — incoherent. Now the toolbar reveals progressively by Canva s...

kamo·3mo ago
OtherKlusterServices

Meet-secrets **************** for jibri recording ingest

Lets jibri finalize.sh authenticate its recording upload to MediaService; matches the cluster *** value MediaService validates against.

Kamo·3mo ago
OtherMediaService

Give MediaService internal.auth.secret (mlos-internal-auth) for summary emails

MediaService -> EmailService /api/email/templates/send (meeting-summary) needs INTERNAL_AUTH_SECRET to match EmailService's internal.auth.secret.

Kamo·3mo ago
July 6, 2026
July 5, 2026
Otherkamo-internal

Convert account-merge + default-product inline strings to next-intl keys

White-label multitenant strings must be translatable. Moves the account-merge dialog/button and the Borrower Origination Web Portal default-product tooltips/sna...

kamo·3mo ago
July 2, 2026
OtherKlusterServices

Provision R1 MEDIA JetStream stream via idempotent bootstrap Job

Media/lead-feed events (media.feed.*, media.post.*) had no JetStream stream, so publishes returned '503 No Responders Available For Request' (chat.> is covered ...

Kamo·3mo ago
July 1, 2026
OtherKlusterServices

node-config(k1m1-runner): record data.forgejo.org IPv4 pin + capacity=6

Documents the live on-node change: data.forgejo.org is IPv6-only and k1m1 has no IPv6 route, so job containers hung ~133s and actions/checkout failed. Pin its I...

Kamo·3mo ago
June 30, 2026
OtherKlusterServices

Consolidate klusterservices onto single k1m1+k3m1 cluster

- NATS: standalone single pod pinned k1m1 (drop k2m1 + generic cluster variants) - CockroachDB: pin k1m1, single-node --join - MySQL: single instance moved in f...

Kamo·3mo ago
June 25, 2026
OtherKlusterServices

Upgrade v3.0 -> v3.3 (fix intermittent WebSocket disconnect)

v3.0.0 intermittently completes the WS 101 upgrade then closes the socket before any frame flows — the recurring 'disconnect on load' in the universe game clien...

Sage·4mo ago
June 23, 2026
Otherkamo-internal

Universe admin: per-shard hosted-region list + plain-message broadcast

#4 Cold-region visibility: the world beacon now carries regions_list, so each shard card in the Live tab lists the exact region addresses it hosts (not just a c...

Sage·4mo ago
Otherkamo-internal

Universe admin: live operator actions (Phase 3)

Actions tab gains a Live operations section that drives the live game's existing gRPC admin surface, each behind a confirm dialog and recorded to a capped Redis...

Sage·4mo ago
Otherkamo-internal

Universe admin: live datastore/gateway health + worldgen run history

Live tab now consumes the new universe.gateway.health and universe.persistence.health beacons alongside universe.world.load: a datastores strip (CockroachDB quo...

Sage·4mo ago
June 22, 2026
Otherkamo-internal

Universe admin: add Live tab — real-time game shards, players & regions

New read-only platform-admin view of the running game (not just the offline worldgen pipeline). Subscribes once per process to the universe.world.load beacon ev...

Sage·4mo ago
June 15, 2026
Otherkamo-internal

Update project files

kamo·4mo ago
June 12, 2026
OtherKlusterServices

node-config: document k1m1 forgejo-runner config (--add-host for submodule DNS)

Job containers on k1m1 fall back to public DNS, so the fleet-swept http://k1m1:3000 .gitmodules URLs fail to clone there. Pin k1m1 into job containers via conta...

Sage·4mo ago
OtherKlusterServices

node-config: document k1m1 docker daemon insecure-registries

The k1m1 forgejo-runner's builds push to the HTTP Forgejo registry; the daemon.json shipped with only the :5000 entries, so every build job landing on k1m1 fail...

Sage·4mo ago
June 11, 2026
OtherKlusterServices

Join shared two-node cluster with k3m1 over LAN; account isolation

Retire WireGuard routes (10.8.x.x) for LAN routes (192.168.4.22 <-> 192.168.4.36 :6222) with creds embedded in the route URLs. Rename cluster to kamo-ratestack-...

Sage·4mo ago
May 18, 2026
Otherkamolos

feat(borrower-ux) backlog: blocked tasks, MUI date picker, memo widgets

1. Real blockedBy task semantics. Was: TaskHub knew about done/current/todo but the "locked" state was declared and never computed. Now: tasks declare blo...

Kamo·5mo ago
Otherkamolos

feat(borrower-ux) sprint 4: a11y + post-submission + fee transparency + i18n keys

1. Accessibility: - StatusBanner gets role=status + aria-live, an inline icon (so success/warn isn't conveyed by colour alone), and a contrast bump ...

Kamo·5mo ago
Otherkamolos

feat(borrower-ux) sprint 3: honest persona, intl identity, real consent, error taxonomy

1. Personality picker reframed honestly. Was "Pick your guide" — looked like the borrower was choosing their loan officer. Now reads "Choose a voice for o...

Kamo·5mo ago
Otherkamolos

feat(borrower-ux) sprint 2: nav + autosave + intl address + resume recovery

1. BorrowerHeader: slim sticky header on every post-application surface (apply/*, waypoints/*, workspace/*). Logo / back-to-workspace on the left, page ti...

Kamo·5mo ago
Otherkamolos

feat(borrower-ux) sprint 1: trust + safety baseline

Four highest-priority items from the borrower-UX audit: 1. Gate every stub integration behind **************** When the flag is off (e.g. real deployments),...

Kamo·5mo ago
May 17, 2026
OtherKlusterServices

node-config: raise k1m1 kubelet max-pods 110 -> 200

Default RKE2 max-pods=110 was being hit, blocking kamolos rolling-update deploys (maxSurge:1,maxUnavailable:0 needs slot to create new pod before killing old; d...

Kamo·5mo ago
May 16, 2026
Otherkamo-shared-library

Revert "feat(los): introduce LOS entity package marker"

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

Kamo·5mo ago
May 12, 2026
Otherkamo-internal

Revert "fix(account-settings): auto-route child-org owners to their permitted org"

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

kamo·5mo ago
May 11, 2026
Otherkamo-shared-library

Revert "feat(member): **************** for idempotent role promotion"

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

Kamo·5mo ago
OtherSecurityService

Revert "fix(orgs): propagate child-org-creator admin status to parent-org membership"

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

Kamo·5mo ago
May 9, 2026
Otherkamo-internal

Wire t() into remaining hardcoded UI strings across ~88 files

Replaces hardcoded English with next-intl t() calls in places the prior conversion missed: DataGrid headerName values (~238 across pipeline, account, leads, doc...

kamo·5mo 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