Live Change Log

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

17,931
Total Changes
4,612
Features
4,543
Fixes
32
Projects
Filter by project
All Projects17,931AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService373InitializerService300KBService74KlusterServices546MCPGatewayService43MediaService461RAGService61SecurityService1,522TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,579kamo-login319kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,322kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI523Chore670Docs226Feature4,612Fix4,543Other6,781Performance136Refactor274Revert23Style48Test70Upgrade1
August 22, 2026
Featurekamo-shared-library

The schema, rights and storage domain behind frame widgets

A Picture Frame is a member's own photos and videos on their own launchpad, and a member may hang several. This is everything the platform needs to hold one. P...

Kamo·2w ago
Featurekamo-shared-library

Model the master notes and the right that guards the org's

A master note is the one note a member — or an organisation — always has. "My Master Note" is provisioned per membership; "Our Master Note" is one per organisat...

Kamo·2w ago
Fixkamo-shared-library

Do not bill an org twice for a version that owns no bytes

The org storage total is SUM(fileSize) over Img rows, and a derived version points at its original's ImgDat while copying its fileSize — so every modified versi...

Kamo·3w ago
Featurekamo-shared-library

Split a document into its original and its modified versions

imgs.modified_kind + imgs.original_img_id. Null kind means the row IS an original — the bytes a member uploaded — which is the correct reading for every row tha...

Kamo·3w ago
Fixkamo-shared-library

Put the timecard widget under the HR group, like every other widget

TIMECARD_TODAY_WIDGET now hangs off MANAGE_TIMECARDS instead of being a root, so all five widgets have the identical shape the calendar ones set: a parent data ...

Kamo·3w ago
Fixkamo-shared-library

Restore the CRLF line endings in CalendarEventAttendeeRepository

A scripted edit rewrote the file through a text API, normalising all 62 CRLF line endings to LF and turning a 15-line addition into a 139-line diff. The content...

Kamo·3w ago
Featurekamo-shared-library

Count an event's guests without loading them

Kamo·3w ago
Featurekamo-shared-library

Three more home widgets, and the one that cannot have a parent

Unread mail hangs off ACCESS_MAIL and leads-needing-action off VIEW_LEADS, both by the same rule as the calendar widgets: a widget is gated by the right that go...

Kamo·3w ago
Featurekamo-shared-library

Map an event's guest audience and each attendee's source

Kamo·3w ago
Featurekamo-shared-library

Give every home widget a five-right policy, and page the calendar for it

Ten rights arrive as two five-right blocks — one per widget — hanging off VIEW_CALENDAR, because a widget must be gated by the right that governs the data it sh...

Kamo·3w ago
August 21, 2026
Featurekamo-shared-library

Add the org chat policy engine

Decides whether one member may open a conversation with another, and whether they may send into one that exists. Rules are an ordered list over ordered pairs an...

Kamo·3w ago
Featurekamo-shared-library

Mark the member's auto-managed Selected Docs binder

binders.is_scratch flags the one binder per (owner, collection) whose documents are the DocManager grid selection rather than a curated list. It is an ordinary ...

Kamo·3w ago
Featurekamo-shared-library

Let a lead claim mail that predates its e-mail address

Matching is point-in-time by design — a contact point only claims traffic inside its window, so editing a lead cannot retroactively rewrite history. The cost is...

Kamo·3w ago
Featurekamo-shared-library

Let a manager raise a reservation for an agent

Somebody who manages opportunities can now file a reservation request on a sales agent's behalf. CreateReservationRequest carries onBehalfOfMemberId for it. Th...

Kamo·3w ago
Featurekamo-shared-library

Make free-for-all acceptance spendable, so it can be capped

FFA bypassed the credit system outright, which left a manager with no lever over it: Max Daily Spend sat behind if (!ffa) and could not cap an FFA product, and ...

Kamo·3w ago
Featurekamo-shared-library

Resolve a member's photo URL from the shared library

The Chats → Support list is about to show the requestor's face, and a support requestor is — on the platform's own desk — always somebody else's member. Every o...

Kamo·3w ago
Featurekamo-shared-library

Count today's spend across a member's products in one query

Manage-Credits wants to show, per member, how many leads they have accepted so far today — the running total the Max Daily Spend cap is compared against. ******...

Kamo·3w ago
Stylekamo-shared-library

Drop imports left unused by removing the @EntityGraph

Page, Specification and EntityGraph were only needed by the findAll override that was removed after it took /leads down. Leaving an unused EntityGraph import on...

Kamo·3w ago
Featurekamo-shared-library

Count the assignable pool for every vendor product at once

countAssignablePool answers for one product, so a caller can only ask about products it already holds. Manage-Credits was iterating allotments to decide what to...

Kamo·3w ago
Performancekamo-shared-library

Index the two shapes geolite_locations is actually queried by

Country alone was the only index on an 80,429-row table, and neither real query used it well. Measured on production: city resolution (country + subdivision)...

Kamo·3w ago
Featurekamo-shared-library

Let an open ticket grant its agent the requestor's org, and expire with it

A support agent needs to look inside the customer's tenant to answer the ticket they are holding. Until now the only way in was the blanket SYSTEM_USER platform...

Kamo·3w ago
Stylekamo-shared-library

Restore CRLF in MemberRightsApplied

The previous commit rewrote this file with a script and silently converted its line endings, so 53 unchanged lines showed as modified and buried the actual 15-l...

Kamo·3w ago
Performancekamo-shared-library

Index member_rights_applied, bound the intake claim, aggregate changelog stats

Three findings from an endpoint-by-endpoint audit, each measured against production rather than inferred. member_rights_applied declared no indexes at all whil...

Kamo·3w ago
Fixkamo-shared-library

Remove the @EntityGraph that broke /leads on Hibernate 6.2

The grid page query failed in production with: ERROR: missing FROM-clause entry for table "a2_1" ... left join member_team_member a2_0 on **************** ...

Kamo·3w ago
August 20, 2026
Performancekamo-shared-library

Filter and page the grid in the database, batch the PHI audit trail

Loading /leads took 23.3 s at 1,427 leads. 23.3 s of that was the HIPAA audit trail: recordLeadList writes one phi_access_log row per lead returned, and each on...

Kamo·3w ago
Fixkamo-shared-library

Record a payload's outcome by column, not by entity

Marking a payload IMPORTED with payloadRepo.save() makes Hibernate walk the detached entity's graph — including organization, which pulls in org_domains — and t...

Kamo·3w ago
Fixkamo-shared-library

Stop losing payloads to endpoint-counter contention

storePayload saved the payload and then bumped totalReceived/lastReceivedAt by dirtying the endpoint entity — in the same transaction. Every submission to an en...

Kamo·3w ago
Fixkamo-shared-library

Move the pool-availability recount after commit

createLead saved the lead and then, in the same transaction, ran countAssignablePool to broadcast the new "Leads Available" figure. On YugabyteDB a read after a...

Kamo·3w ago
Featurekamo-shared-library

Make the shared token an opaque UUID

The public token was <memberId>.<iteration>, which was wrong on two counts. It published a real member id in every link anyone shared — on a business card, in a...

Kamo·3w ago
Featurekamo-shared-library

Credit the newest link until an account exists, then freeze it

Attribution was frozen at first touch, which gets the common case wrong: someone who follows member A's link in March and member B's in June, and only then sign...

Kamo·3w ago
Fixkamo-shared-library

Make the two paged tracking reads deterministic

Both paged queries ordered on a column that ties, with no tiebreaker, so the database was free to return tied rows in a different order per page fetch — which s...

Kamo·3w ago
Featurekamo-shared-library

Model tracking codes, their visitors and the visits they bring

A member mints a code, shares **************** and the six totals on the Tracking Codes tab answer what that link actually did: unique visitors, visits, page re...

Kamo·3w ago
August 19, 2026
Fixkamo-shared-library

Tell an unreadable note apart from an empty one

A note whose body cannot be deciphered came back with content null and nothing else, which is exactly what an empty note looks like on the wire. Clients could n...

Kamo·3w ago
Featurekamo-shared-library

Add is_fake, the flag that makes an account invisible instead of deleted

A synthetic account — a test artifact, a seeded fixture, or a signup judged to be automated — now carries `users.is_fake`, and the platform stops acknowledging ...

Kamo·3w ago
Fixkamo-shared-library

Give the web-chat visitor an identity of their own

A public web-chat visitor has no Member, so the platform stands the org's SYSTEM member in for them: the ticket's requestor, and the author of every message the...

Kamo·3w ago
Fixkamo-shared-library

Generate the id before the insert, so mortgage leads can be created

Creating a lead on a mortgage market failed with "Database table LEADS does not exist. Please run KamoInitializerApp to create the schema." The table was there....

Kamo·3w ago
August 16, 2026
Fixkamo-shared-library

Read a page of chat history without counting the whole session

Spring Data derives a second statement for every Page it returns, and the chat history read asked for one it never looked at: MediaController takes page.getCont...

Kamo·3w ago
August 15, 2026
Featurekamo-shared-library

Dev_machine_accounts entity, status enum and repository

status and enabled are deliberately separate: a provisioned-but-disabled account keeps its home directory, so re-enabling restores access rather than rebuilding...

Kamo·3w ago
Featurekamo-shared-library

Carry the KamoMeet logo overlay on Organization

Third and last overlay surface, same vocabulary as its two siblings, plus its branch in the generic patch path. This one is different in where it ends up. The ...

Kamo·4w ago
Featurekamo-shared-library

Delete VIEW_DASHBOARD, VIEW_REPORTS and EXPORT_REPORTS

All three named pages that existed on disk and were backed by nothing: app/dashboard rendered sample posts straight out of i18n, app/reports imported framer-mot...

Kamo·4w ago
Featurekamo-shared-library

Carry the loading screen logo overlay on Organization

The same overlay vocabulary as homeLogoOverlay, applied instead to the logo on the loading screen shown between page navigations, plus its branch in the generic...

Kamo·4w ago
Featurekamo-shared-library

Let the directory filter by right, and let a lead be unassigned

Two things the assignment picker needs. The directory queries take an allowed-id set so a caller can narrow the search to the people a thing may actually be gi...

Kamo·4w ago
Fixkamo-shared-library

Judge the ATF flags a request changes, not the stored row

**************** judges all three flags every time, so an update path had no way to say "this request does not touch tobacco". Callers filled the gap by re-deri...

Kamo·4w ago
Featurekamo-shared-library

Carry the home page logo overlay on Organization

The solid colour an org can paint over the masthead logo on the kamo-internal home page, plus its branch in the generic patch path so the existing PUT /org/{id}...

Kamo·4w ago
Featurekamo-shared-library

Delete VIEW_EMAIL_LOGS, which names a feature nobody built

No email log exists anywhere in the platform: no table in any schema, no endpoint among EmailService's 21 controllers, no UI, and no reference in the frontend —...

Kamo·4w ago
Featurekamo-shared-library

Rewrite the app catalog copy for the people who read it

The display name and description on ServiceType are the only description of an app most people ever see: an org admin on Settings -> Apps & Features, a parent-o...

Kamo·4w ago
Featurekamo-shared-library

Background_order column for the public slideshow order

Nullable VARCHAR; null resolves to sequential on every client, which is what every org had before the column existed. Plain String rather than an enum so a late...

Kamo·4w ago
Featurekamo-shared-library

Delete SHARE_NOTES and MANAGE_NOTES_SETTINGS, which name nothing

Notes are real, and as of today fully gated — VIEW, CREATE, EDIT and DELETE are enforced on every endpoint of KBService's NotesController. These two had nothing...

Kamo·4w ago
Featurekamo-shared-library

Platform rights as a spine of their own

Who may operate the platform has been three different answers in three different places — a system_user_access grant table, an owner check copied into each plat...

Kamo·4w ago
Featurekamo-shared-library

Uploaded sound effects, and the storage domain that counts them

EVENT_SOUND_ASSETS: a sound file somebody uploaded, ready to be assigned. Scope mirrors EVENT_SOUND_PROFILES exactly — same three layers, same SCOPE_ID conventi...

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