Mabadiliko ya Tabianchi

Kuona nini sisi ni kujenga katika muda halisi. Kila kipengele, kurekebisha, na kuboresha kusafirishwa kwenye jukwaa.

17,896
Mabadiliko ya Jumla
4,600
Features ya
4,522
Wa
32
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,896AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService364InitializerService299KBService74KlusterServices542MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,565kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter ya aina
Aina zoteBuild24CI522Chore670Docs226Feature4,600Fix4,522Other6,781Performance136Refactor274Revert23Style48Test69Upgrade1
August 15, 2026
Docskamo-internal

Sixth cluster triaged — documents span four services, and must not be seeded

CREATE, EDIT, DELETE_DOCUMENTS and MANAGE_STORAGE all have real live features, so nothing here is deletable. VIEW_DOCUMENTS is client-only in navRegistry, the s...

kamo·3w ago
Fixkamolos

A loan id is not a credential — scope every LoanController read to the org

LoanController.get(uid) took a loan id and returned whatever it found. Any caller who reached the service got the loan, balances and borrower included, whicheve...

Kamo·3w ago
FeatureSecurityService

Protect god accounts on the platform administrator list

A god account's platform rights may be changed only by another god, and a god account can never be removed from the list — by anyone, including another god. Go...

Kamo·3w ago
Featurekamo-internal

God accounts are protected on the platform admins list

Two rules the server enforces and this only mirrors: a god account's platform rights can be changed by another god and nobody else, and a god account can never ...

kamo·3w ago
FeatureSecurityService

Bake the org's background order into config.json

kamo-login, kamo-register, the marketing site and KamoMeet all read the theme bucket's config.json for backgroundImageCount; backgroundOrder now rides alongside...

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
Fixkamo-internal

43 unenforced becomes 41 — the two notes placeholders are deleted

Mirrors the shared-lib removal of SHARE_NOTES (72) and MANAGE_NOTES_SETTINGS (73): the TS constants and the registry array, the one parent-map edge in both righ...

kamo·4w ago
FeatureInitializerService

Purge the stored rows for the two retired notes rights

SHARE_NOTES (72) and MANAGE_NOTES_SETTINGS (73) were deleted from RoleRightType today for having no feature to gate. This removes what they left behind, counted...

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
CIkamo-internal

Rebuild — the i18n guard raced the dictionary push

No source change. 9a5b5167 failed on eleven missing background-slideshow keys because the components reached main at 01:47 and the strings reached kamo-translat...

kamo·4w ago
FeatureInitializerService

Add orgs.background_order

Nullable VARCHAR(20), no backfill and no DEFAULT — every client resolves an absent value to sequential, which is the behaviour every org had before the column e...

Kamo·4w ago
Featurekamo-meet

Org background slideshow, and honour the shuffle setting

The welcome page already rotated the org's themed backgrounds; it now reads backgroundOrder from the same config.json so an org that picked shuffle gets a fresh...

Kamo·4w ago
Featurekamo-marketing

Read the org's real background count and play order

The hero probed for bg/1.webp and then hardcoded three frames, so an org with more never showed them and the rotation modulo'd by LOCAL_BGS.length regardless of...

Kamo·4w ago
Featurekamo-register

Honour the org's sequential/shuffle slideshow order

Same config.json contract as kamo-login: backgroundOrder drives all three registration backgrounds, absent key stays sequential.

Kamo·4w ago
Featurekamo-login

Honour the org's sequential/shuffle slideshow order

config.json now carries backgroundOrder alongside backgroundImageCount. Shuffle re-randomises on every advance and never repeats the frame on screen; an absent ...

Kamo·4w ago
FixSecurityService

Renaming a member is an admin act, and now has a gate

The member profile's legal-name card was self-only, so an admin who typed a name wrong on the create form could never correct it — MemberCreateForm asks for pre...

Kamo·4w ago
Fixkamo-internal

46 unenforced becomes 43 — the notes endpoints are gated

Fifth cluster. The Notes backend is KBService, not SecurityService: the entity sits under donotmodify/dao/beans/security/ and kamo-internal proxies /api/notes/*...

kamo·4w ago
FixKBService

Every notes endpoint takes the right that names it, and hasRight fails closed

NotesController checked no right on any of its ten endpoints. VIEW_NOTES was enforced in exactly one place — navRegistry.ts, hiding the Notes app in the browser...

Kamo·4w ago
FeatureSecurityService

All-networks follows the System User right

Seeing every organization and being able to enter one are the same decision — the list exists so an operator can find the organization they are about to support...

Kamo·4w ago
Fixkamo-internal

Stop a page-2 request from cancelling the folder you just opened

Junk, Trash, Archive and every custom folder showed the same mail — whatever was on screen before them. The server was not the problem: replaying listMessages a...

kamo·4w ago
PerformanceSecurityService

Resolve each handler's platform annotation once

The interceptor is registered for /** so the annotation lookup ran on every request this service serves, sign-in included, and AnnotatedElementUtils walks the m...

Kamo·4w ago
FixSecurityService

Close the add-path route around the platform-admin lockout guard

POST replaces an existing administrator's rights, so it can take them away as well as give them — but only the PUT and DELETE paths checked whether the edit wou...

Kamo·4w ago
Fixkamo-internal

Let a granted administrator actually see Platform Administration

The section gate and the settings menu topic still asked useUserInfo's hasPlatformAdminAccess, which is owner-of-the-top-level-org or an open god-mode window an...

kamo·4w ago
Fixkamo-internal

Send an operator with no Configuration tab somewhere real

SYSTEM_USER and MANAGE_UNIVERSE gate surfaces that are not tabs on this page, so somebody holding only those is a platform administrator the page guard admits a...

kamo·4w ago
FixInitializerService

The meet seed recomputes applied rights instead of waiting for a boot

Granting the two rights on org_role_rights changes nothing anybody can observe. member_rights_applied is the flattened snapshot the session and the server-side ...

Kamo·4w ago
Featurekamo-internal

Platform Admins console gates every platform surface

Renames the System User tab to Platform Admins and turns it into what it was always standing in for: a list of the people who may operate the platform, each hol...

kamo·4w ago
FeatureInitializerService

Stand up the platform administrator list

Backfills it from the retired system_user_access grants so nobody who could operate the System User before this deploy loses it: direct member grants map one-to...

Kamo·4w ago
FeatureBillingService

Decide platform access with the shared resolver

@PlatformAdminOnly now names the platform right it requires (defaulting to MANAGE_ORGANIZATIONS, which is what this service's platform surface is about) and the...

Kamo·4w ago
Fixkamo-internal

48 unenforced becomes 46 — meet create and join are gated

Fourth cluster of the 48, and it split three ways rather than the two the design predicted. The design attributed the enforced MANAGE_MEET_SETTINGS check to Ch...

kamo·4w ago
FeatureSecurityService

Enforce platform rights on every platform surface

@RequirePlatformRight + PlatformRightInterceptor replace three hand-rolled "is the caller a top-level-org owner" gates that were copies of each other, one per p...

Kamo·4w ago
FeatureInitializerService

Seed the meet rights before the gate can lock anyone out

MediaService now requires START_MEETING to create a meeting and VIEW_MEETINGS to resolve one. Measured on production before writing this: 42 security roles acro...

Kamo·4w ago
FeatureMediaService

Creating and resolving a meeting take the rights that name them

/api/meet/create checked only that you had a session, so every authenticated member of every organization could create a meeting with the org's provider — START...

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
Chorekamo-internal

Drop the now-unused Button import

kamo·4w ago
Fixkamo-internal

Draw the callback markers as soon as the summary loads

The summary lands after the grid has drawn its rows, and AG Grid keeps the cellRenderer a column was built with and only re-creates a cell when its row changes....

kamo·4w ago
Fixkamo-internal

A deleted upload now falls back instead of going silent

The previous commit claimed a retired sound "degrades to the layer beneath it rather than to silence". It did not. `isKnownSoundId` accepts a custom id on shape...

kamo·4w ago
Featurekamo-internal

Move the callback marker beside the contact name, add a Callback filter

The marker sits with the name because that is who the call is to, rather than in the id column where it pushed the ids out of line. The filter offers All / Sch...

kamo·4w ago
Featurekamo-internal

Upload your own sound effects, at all three layers

The system could only ever play the thirty-nine tones it shipped with. Now any layer can add its own file — the platform's catalogue, an organization's, a membe...

kamo·4w ago
FeatureSecurityService

List, rename, retire and stream uploaded sound effects

Bytes arrive through ConversionService (which owns ffmpeg and the scanner); everything afterwards is here, where the session and the scoping rules already live....

Kamo·4w ago
FeatureConversionService

Transcode uploaded sound effects to Opus

Extends the ffmpeg wrapper the VoIP recording pipeline already had — this image installs ffmpeg with libopus for it, so putting a second ffmpeg in another image...

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
Fixkamo-internal

48 unenforced — the six PLOS rights are gated now

Gating the LOS proxy made PLOS_* enforced, but they stayed on the unenforced list, so the editors were showing 'Not yet enforced' against six live gates. Third ...

kamo·4w ago
Featurekamo-internal

Let the sender edit the meeting invite email subject

The invitation subject was fixed at "<host> from <org> invited you to a meeting" and built inside the send route, so nobody could say what the meeting was actua...

kamo·4w ago
Docskamo-internal

Third cluster triaged — Meet splits in two

All five Meet rights have real running features, so none is a chat-channel case: kamomeet-deployment is live and Meet-jibri is deployed, making recording real i...

kamo·4w ago
Fixkamo-internal

Put the callback marker after the lead id

Leading the cell with the marker pushed the id right on any row with a call waiting, so the ids no longer lined up down the column while scrolling.

kamo·4w ago
Featurekamo-internal

Gate the personal-loan proxy on the PLOS rights

KamoLOS enforces nothing — no rights check anywhere in its source — so this proxy is the authorization boundary for the module, the position denyUnless occupies...

kamo·4w ago
Fixkamo-internal

The meeting reminder reaches the bell, and pops once

MeetReminderPopup drew its own Snackbar from its own subscription to **************** Nothing else knew a reminder had happened: the bell stayed at zero, the de...

kamo·4w ago
FixMediaService

The meeting reminder is a notification, not a popup of its own

The sweep published a bespoke event on /topic/meet/reminder/{memberId} that a dedicated Snackbar drew in the corner of the screen. That popup was the entire rem...

Kamo·4w ago

Je, unaona nini kuhusu usafiri?

Kila moja ya hizi updates ardhi katika nafasi yako ya kazi moja kwa moja. Kuanza bure na kuangalia kukua wiki baada ya wiki.

Kuwa Huru MileleMtazamo wa bei