Live Change Log

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

17,865
Total Changes
4,581
Features
4,512
Fixes
32
Projects
Filter by project
All Projects17,865AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService348InitializerService299KBService74KlusterServices539MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,553kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter by type
All TypesBuild24CI522Chore670Docs226Feature4,581Fix4,512Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
August 15, 2026
Featurekamo-marketing

Add the 25-year anniversary seal

Two placements, both chosen for where the claim is already being made: Footer — 60px, beside "© 2001–<year> ... established 2025". Site-wide, ...

Kamo·3w ago
Featurekamo-marketing

Show the 2001 copyright range and the incorporation year

Renders "© 2001–<year> KamoCRM. KamoCRM Inc. established 2025. All rights reserved." The range start is hard-coded next to the dynamic end year rather than livi...

Kamo·3w ago
Featurekamo-marketing

Add the meeting and payroll integrations

Zoom and Microsoft Teams for meetings, and the ten payroll vendors — ADP Workforce Now, BambooHR, Dayforce, Gusto, Paychex Flex, Paycor, Paylocity, Rippling, UK...

Kamo·3w ago
Featurekamo-marketing

Count apps and integrations separately with real numbers

"Apps & Integrations" was one tile reading 31+. It is now two, each with a figure that can be re-derived rather than estimated: Apps 64 — Forgejo pro...

Kamo·3w ago
Stylekamo-marketing

Reset the home headline on a display face and one light pass

The h1 stacked four effects: a fade wrapper, mouse parallax on each line, per-character 3D rotation on line one, and a blue/purple/green gradient cycling across...

Kamo·3w ago
Fixkamo-internal

The result screen answers to the logo overlay too

The success/error screen shown briefly before redirect was the one logo in the sign-in flow still rendering untouched. It kept its own design rather than joinin...

kamo·3w ago
Docskamo-internal

Record the ProxyHmacFilter rollout and what it does not cover

Two ordered steps, the checks that made the second one safe, and the reason the order matters: kamo-internal had to be signing before KamoLOS started validating...

kamo·3w ago
Featurekamolos

Enable ProxyHmacFilter — step 2, X-Org-Id is now a proven header

los.proxy-hmac.enabled has been falling through to its false default since this service deployed, so ProxyHmacFilter existed and never ran. X-Org-Id — the heade...

Kamo·3w ago
Refactorkamo-internal

One loading screen instead of four, all on the full logo

There were four copies of the same full-screen loading markup — the navigation screen, both of /validate's pre-result screens, and /logout — identical down to t...

kamo·3w ago
Featurekamo-internal

Sign the proxy identity headers — step 1 of enabling ProxyHmacFilter

KamoLOS trusts X-Org-Id and X-Member-Id from this proxy. ProxyHmacFilter exists to prove those headers really came from here, but it is disabled in production: ...

kamo·3w ago
Fixkamolos

Scope statements, draws and payments to the caller's organization

Same bug as LoanController.get(uid), repeated: these controllers took a loan id off the path and handed it to a repository, so GET /api/los/statements/by-loan/4...

Kamo·3w ago
FeatureSecurityService

Resolve the KamoMeet logo overlay into config.json

KamoMeet is a Meet fork with no access to OrgContext, so it learns org branding from the theme config.json this service bakes. The org stores an overlay TOKEN; ...

Kamo·3w ago
FeatureInitializerService

Add the kamomeet_logo_overlay column

Third overlay surface: the KamoMeet pre-meeting screen. Same shape as the other two — nullable, no backfill, no DEFAULT. The drift guard needed only its field ...

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·3w ago
Docskamo-internal

Correct the record — KamoLOS is deployed, and has been for 78 days

§12 concluded that KamoLOS had no deployment and that gating it was therefore free, and the LOS proxy repeated the claim in a comment. Both are wrong. The servi...

kamo·3w ago
Fixkamo-internal

Restore the CRLF endings of the two files the last commit reflowed

3bfe883c rewrote PublicProvider.tsx and the org route wholesale — 1919 and 121 lines for what was a one-line addition to each. The content was intact; the endin...

kamo·3w ago
Featurekamo-internal

A logo overlay for the KamoMeets pre-meeting screen

Third and last surface, offered next to the other two — same thirteen options, its own setting, default No Overlay. Hidden unless the org can actually reach th...

kamo·3w ago
Featurekamo-meet

Paint the org logo as a solid silhouette when asked

An org can now choose a solid colour for the pre-meeting logo, set from kamo-internal's Branding settings and applied here. This side never sees the token voca...

Kamo·3w ago
Fixkamo-meet

The column tint over the slideshow is 90%, not 50%

Half strength let too much of the photography through the join column and the preview pane. Both are now 90% of their own colour, so the background reads as a f...

Kamo·3w ago
Fixkamo-internal

16 unenforced becomes 13 — reports and dashboard deleted, tasks kept

VIEW_DASHBOARD, VIEW_REPORTS and EXPORT_REPORTS are gone from the mirror, both parent maps, the pinned counts and useUserInfo's enumeration, and app/dashboard a...

kamo·3w ago
FeatureInitializerService

Purge the reports and dashboard rows, and stop seeding VIEW_DASHBOARD

VIEW_DASHBOARD (0), VIEW_REPORTS (1) and EXPORT_REPORTS (2) were deleted from RoleRightType today, along with the two pages they named. This removes what they l...

Kamo·3w 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·3w ago
Featurekamo-internal

App icons on the wizard's Apps & Features step

The create-network wizard drew each app as the first letter of its name, so the same app was a storefront on Settings -> Features and an "S" here. The icons alr...

kamo·3w ago
Fixkamo-meet

The slideshow covered both columns instead of sitting behind them

#preview is a plain flex item with no position, so the slideshow layer — positioned, z-index 0 — painted over its background and, worse, over the member avatar ...

Kamo·3w ago
Featurekamo-internal

A solid-colour overlay for the loading screen logo too

Adds "Loading Screen Logo Overlay" directly under the home page one on **************** with the same thirteen options, applying to the logo on the screen shown...

kamo·3w ago
ChoreSecurityService

Rebuild against the shared-lib loading_logo_overlay column

No source change. CI clones kamo-shared-library at build time, so Organization.loadingLogoOverlay is only mapped once this rebuilds — until then the generic PUT...

Kamo·3w ago
FeatureInitializerService

Add the loading_logo_overlay column

Second surface for the logo overlay feature: the loading screen shown between page navigations, alongside the home page masthead. Both ALTERs live in the one r...

Kamo·3w 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·3w ago
Fixkamo-internal

17 unenforced becomes 16 — support topic creation takes its own right

POST /support/topics was gated on MANAGE_SUPPORT, the parent, so the child right looked dead while being the thing checked. It now takes CREATE_SUPPORT_TOPICS, ...

kamo·3w ago
FixMediaService

Creating a topic takes CREATE_SUPPORT_TOPICS, not its parent

The gate was already there and refusing callers — on MANAGE_SUPPORT, the parent — so CREATE_SUPPORT_TOPICS read as decorative in every editor while being exactl...

Kamo·3w ago
FixEmailService

Campaigns take the bulk-email rights, like the recipient resolver already did

Bulk email was half-enforced and the halves were in different services. **************** in SecurityService has gated recipient resolution on MANAGE_BULK_EMAIL ...

Kamo·3w ago
Fixkamo-internal

18 unenforced becomes 17 — bulk email campaigns are gated

VIEW_BULK_EMAIL and MANAGE_BULK_EMAIL now cover the campaign and provider surfaces in EmailService, which checked nothing, joining the recipient resolver in Sec...

kamo·3w ago
Fixkamo-internal

Stop losing the brand palette on the way to the browser

Organization.fromJSON could not read back its own output. It mapped the brand ramps only from the nested `colors` object SecurityService sends, but what it EMIT...

kamo·3w ago
Featurekamo-internal

Pick the assigned agent from the directory, not a dropdown

The Assigned Agent field is now the same control as Manager on a member's profile: a read-only field that opens the searchable member picker. A dropdown could o...

kamo·3w ago
FeatureSecurityService

Narrow the member search to holders of a given right

The lead assignment picker needs the directory to return only people who can actually work a lead, so /team-members/search takes a requiredRight. An unrecognise...

Kamo·3w 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·3w ago
Fixkamo-internal

20 unenforced becomes 18 — marketing materials and social media are gated

VIEW_MATERIALS and VIEW_SOCIAL_MEDIA now have server enforcement, alongside their MANAGE counterparts which were client-only. 29 endpoints across seven MediaSer...

kamo·3w ago
FixMediaService

Materials and the social timeline take rights, not just ownership

MANAGE_MATERIALS and MANAGE_SOCIAL_MEDIA counted as enforced in the audit and every site was a .tsx file. Behind them 29 endpoints checked ownership and no righ...

Kamo·3w ago
Fixkamo-internal

The analyzer could not see nested arguments — six rights were never decorative

26 unenforced becomes 20, and none of it is new enforcement. The six sales-agent rights have been gated the whole time: AiSalesAgentController checks them acros...

kamo·3w ago
Featurekamo-internal

The editors say "Enforced as MANAGE_TIMECARDS" instead of "Not yet enforced"

One chip was carrying two different truths and misleading in opposite directions. Unbuilt means nothing checks the right and granting it does nothing. Supersede...

kamo·3w ago
Docskamo-internal

Eleventh cluster triaged — employees, time off and schedules all stay

The first cluster whose honest answer is "no action", and two of the six looked deletable until the last check. TimecardService has one authentication boundary...

kamo·3w ago
Fixkamo-internal

Let a failed branding save say what actually went wrong

"Save failed: Failed to save branding identity settings" discarded the status and body of a PUT that enforces the applied security model, so a 403 whose reason ...

kamo·3w ago
FixSecurityService

Stop failing a branding save over compliance flags it never sent

PUT /org/{id} derived the age ranges and the three ATF flags from the stored row whenever a request omitted them, then asserted all five against the applied sec...

Kamo·3w 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·3w ago
Fixkamo-internal

28 unenforced becomes 26 — AI models and usage are gated

MANAGE_AI_MODELS gates all four endpoints of AiModelController and VIEW_AI_USAGE both of AiUsageController. Neither checked a right before, only org ownership. ...

kamo·3w ago
FixAIService

Administering models and reading usage take the rights that name them

AiModelController and AiUsageController checked organization ownership and no right. The 403s already in the model controller compare provider.getOrganizationId...

Kamo·3w ago
Fixkamo-internal

30 unenforced becomes 28 — voicemail is gated, call routing is kept

VIEW_VOICEMAIL and MANAGE_VOICEMAIL now gate VoipVoicemailController, which asked for a right only when playing back a recording in a PHI organization and for n...

kamo·3w ago
FixVOIPService

Working with voicemail takes a right, not just handling PHI

VoipVoicemailController required VIEW_CALL_LOGS on exactly one path — playback, and only when the organization handles PHI. Listing voicemails with their transc...

Kamo·3w ago
ChoreSecurityService

Rebuild against the shared-lib home_logo_overlay column

No source change here. SecurityService's CI clones kamo-shared-library at build time, so it only maps Organization.homeLogoOverlay once it is rebuilt — and unti...

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