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
October 11, 2026
FeatureKBService

The org graph in KBService and every note read through the one widened predicate — shared notes reach their audience read-only; create and update refuse a shared scope (USE_RELEASE) and the reserved categories (RESERVED_CATEGORY) (KamoCollab CP05 Task 15)

- orggraph/OrgGraphBeanConfig + OrgGraphEventListener: the loader, the 60 s cache, and a core subscription to security.orggraph.changed.* that evicts the or...

Kamo·4w ago
FeatureKBService

Work links for tasks — POST **************** answers who has an open task on which records (KamoCollab CP04 Task 9)

TaskWorkLinkService implements WorkLinkResolver: an open task (not DONE, on a live checklist, in the org) links its assignee and creator to the task itself (TAS...

Kamo·4w ago
FeatureKBService

Declare the disclosure ledger recorder, paired with its repository scan (KamoCollab CP08 Task 12)

DisclosureLedgerConfig declares DisclosureRecorder; KBServiceApplication's @EnableJpaRepositories gains **************** in the same commit. DisclosureLedgerWir...

Kamo·4w ago
FeatureKBService

The DDL for checklist_items.blocked_at, pinned by a contract test (KamoCollab CP13 Task 1)

When an SI's task became BLOCKED, for the stuck-work check. Re-runnable, additive, nullable, no CHECK, no backfill; applied by hand before the shared-lib entity...

Kamo·4w ago
October 7, 2026
FixKBService

A translation with a failed field is a failure, and long articles get time to finish

TranslateService leaves a field it could not translate out of its reply and names it in failedKeys. This client returned the reply as it was, so the article was...

Kamo·1mo ago
October 5, 2026
FeatureKBService

A supervisor's read of an AI member's notes is written to phi_access_log (KamoCollab CP00 T8)

GET /api/notes/members/{memberId}, .../{noteId} and .../{noteId}/versions now record the read after it succeeds, through the shared PhiAccessRecorder: one LIST ...

Kamo·1mo ago
September 28, 2026
FixKBService

KamoUniverse is a stop word for related-article suggestions

KbArticleRelationService matches articles on their significant terms and already drops the platform's own names ("kamocrm", "kamo") because every help article s...

Kamo·1mo ago
September 27, 2026
FixKBService

A deleted task takes back its comment notifications too

Deleting a task (or clearing done tasks, or deleting their list) withdrew only its TASK_ASSIGNED and TASK_DUE notices. Every TASK_COMMENTED about it stayed in i...

Kamo·1mo ago
September 25, 2026
FeatureKBService

Record links, who wrote each version, readable history, supervisor reads, app gate

A restored version now comes back deciphered, with its links and editor: the editor saves that answer straight back as the note's body, so the ciphertext it use...

Kamo·1mo ago
FeatureKBService

Hand a retiring AI member's open tasks to its supervisor (SP02 TASK_HANDOFF)

POST **************** behind the KamoAI secret (KamoaiInternalAuthFilter: 503 unset, 403 mismatch, constant-time). One transaction per task; Inbox tasks move to...

Kamo·1mo ago
FeatureKBService

KBService announces its own writes

Kamo·1mo ago
FeatureKBService

The task API — mine, search, create into an Inbox, change, finish, link

A status list with no status in it (status=,) reads as the default instead of reaching the query builder as an empty filter; blank linkKind/linkRef are absent l...

Kamo·1mo ago
FeatureKBService

Tasks across lists — create, reassign and move, status, delete, links

A move re-seals the task's words under its own label, since the fallback key is the list owner's and the move changes the owner. A due time sent again unchanged...

Kamo·1mo ago
September 24, 2026
OtherKBService

Own NATS login, Redis login, KamoAI secret

NatsConfig's comment now names where the login comes from: svc_kb, from the nats-user-kb Secret, which overrides the shared kamo_svc keys.

Kamo·1mo ago
September 23, 2026
FixKBService

Pin kamo-shared-library 1.6.1, the only version that exists

The library moved to 1.6.1 and this service still asked for 1.6.0. There is no window in which both resolve: the library is never published to a remote, so the ...

Kamo·1mo ago
PerformanceKBService

Stop asking three hot queries one row at a time

Three queries pg_stat_statements showed as kbservice's top production DB cost, all from asking in a loop (or with a plan the legacy YugabyteDB planner picked ba...

Kamo·1mo ago
FixKBService

KBService presents the NATS login

NATS mapped every credential-less connection to the KAMO account (no_auth_user), and it listens on the host network of k1m1 — so any pod, the desktop VM or a ma...

Kamo·1mo ago
FeatureKBService

The checklist API, with prerequisites the server enforces

/api/checklists: list, get, create, update, delete, duplicate, reset, clear-done, sequence ("do in order"), clear links, and per task add, edit, tick/untick, se...

Kamo·1mo ago
PerformanceKBService

Don't load content_json to build the public tree index, and stop loading it twice

buildPublicTreeIndex builds a small structural index (parent/child, slug path, ancestors) from every public article in the org, but it was loading full KbArticl...

Kamo·1mo ago
FixKBService

A media presigned URL was not scoped to the caller's org

GET /api/kb/media/{mediaId}/url looked the row up by uid alone (KbMediaService.getPresignedUrl -> **************** unlike every other media read here (presignAl...

Kamo·1mo ago
September 17, 2026
FeatureKBService

Count the marketing site's page views, on the article or on the page

KBService now answers the view counter kamo-marketing shows at the foot of every page. Two endpoints, both {"views": n} with the view just counted included: ...

Kamo·1mo ago
September 16, 2026
OtherKBService

Liveness probe on /actuator/health/liveness, not the DB-aware aggregate

The aggregate /actuator/health includes the DataSource indicator, so restarting the database failed liveness on every pod at once and restarted the whole platfo...

Kamo·1mo ago
OtherKBService

Release idle Hikari connections now that YSQL pooling is shared

The connection manager no longer pins sessions **************** so idle app connections no longer each hold a database backend. Keep the pool maximum, but stop ...

Kamo·1mo ago
September 13, 2026
FixKBService

Accept OCI image indexes when resolving the built digest [skip ci]

The images are pushed as OCI image indexes, so asking the registry for a single image manifest only answered 404, the digest came back empty and the check faile...

Kamo·1mo ago
FixKBService

Restart when a same-commit rebuild leaves pods on the old digest [skip ci]

The rollout step tried to detect a same-commit rebuild by comparing the Deployment's image reference before and after `set image`. "Apply manifests" has already...

Kamo·1mo ago
September 11, 2026
FeatureKBService

Say which locales each public article is really translated into

The marketing site's sitemap now lists every language version of every help-center, documentation and API-reference article, and each article page names the oth...

Kamo·2mo ago
September 5, 2026
FixKBService

Prove the deploy by digest, not by tag

The preceding commit stops `set image` being a silent no-op. This asserts the outcome: after the rollout, the tag is resolved to a digest at the registry and th...

Kamo·2mo ago
FixKBService

A rebuild of the same commit deployed nothing and reported success

The image is tagged with the commit SHA, so rebuilding the same commit produces an identical image reference. `kubectl set image` then changes nothing, the Depl...

Kamo·2mo ago
FixKBService

Stop the sweep re-translating the twenty locales that already worked

An article holding 20 of its 21 locales is "incomplete", so the ten-minute sweep re-queued it — and the translator then re-translated all 21, paying twenty time...

Kamo·2mo ago
September 4, 2026
FeatureKBService

Lock the shared sweeps, and run two pods

Every @Scheduled sweep here whose effect is shared now takes a named distributed lease through SingletonTaskRunner before it does anything, so it runs once acro...

Kamo·2mo ago
FixKBService

Let a rollout finish what the old pod was doing

Deploys replaced the only pod of each service with nothing to catch the requests in flight. Three settings, applied across the fleet: - preStop sleeps 10s befo...

Kamo·2mo ago
September 2, 2026
FixKBService

Admit the organization owner, or nobody can turn this on

A brand-new right is granted to NOBODY on the day it deploys. These two are deliberately absent from **************** — seeding them from an existing right woul...

Kamo·2mo ago
FeatureKBService

Serve the scripts an agent reads on a call

/api/kb/sales-scripts, gated on the two new rights. Reads take VIEW_SALES_SCRIPTS or MANAGE_SALES_SCRIPTS, writes take MANAGE. SessionHelper.hasRight fails clos...

Kamo·2mo ago
PerformanceKBService

Stop repeating the ancestor chain on every node of a tree

A node inside a tree already knows where it is -- its position is the tree. Sending the ancestor chain on each one meant every article carried two ancestor refs...

Kamo·2mo ago
FixKBService

A list read shipped every article's body, and a category page listed nothing

Two defects on the public reads, both visible on kamocrm.com/help-center. The index served 3.9 MB of HTML. tree-by-parent-slug returns every node with its full...

Kamo·2mo ago
FixKBService

Article translation has never worked

deleteByArticleUidAndLocale is a @Modifying query and JPA refuses to run one outside a transaction. Nothing on this path ever opened one, so every locale of eve...

Kamo·2mo ago
FixKBService

Saving an article blocked on 21 translation calls

@Async was inert. **************** called translateArticle on the same bean, so the call went straight to this and never reached the proxy that makes it asynchr...

Kamo·2mo 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