Mabadiliko ya Tabianchi

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

17,933
Mabadiliko ya Jumla
4,614
Features ya
4,543
Wa
32
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,933AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService373InitializerService300KBService74KlusterServices546MCPGatewayService43MediaService461RAGService61SecurityService1,523TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,579kamo-login319kamo-marketing585kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,322kamo-signer-monorepo50kamolos102
Filter ya aina
Aina zoteBuild24CI523Chore670Docs226Feature4,614Fix4,543Other6,781Performance136Refactor274Revert23Style48Test70Upgrade1
August 15, 2026
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
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
Docskamo-internal

Second cluster triaged — PLOS is implement, and cheap right now

The six PLOS_* rights have a real feature: KamoLOS is a full loan service. Not deletable. But nothing enforces any of them — no rights check anywhere in KamoLOS...

kamo·4w ago
August 14, 2026
Fixkamo-internal

One calendar reminder, announced once

A reminder was arriving twice. The deck picks it up as a notification, and the older path picked it up as well: CalendarWebSocketContext opened a second STOMP c...

kamo·4w ago
Featurekamo-internal

Subscribe to the course count instead of asking for it every minute

NavTop sums two counts into one obligation badge, and only the legal half was live. A member assigned a course — or excused from one by HR — kept the old number...

kamo·4w ago
Chorekamo-internal

Drop the proxy route for an endpoint that never existed

/api/notes/statistics forwarded to a KBService endpoint NotesController does not implement, and nothing in the app ever called it — so the only thing it could d...

kamo·4w ago
Testkamo-internal

Catch a template-built i18n key that next-intl cannot reach

The catalogue's keys contain dots, and they were written into en.json as literal flat keys. next-intl resolves by splitting on dots, so every one of the 46 even...

kamo·4w ago
Featurekamo-internal

The bell tells the truth in every tab, not just the one you clicked in

The nav-top bell was live for arrivals and nothing else. Reads, dismissals, snoozes and deletions were applied to whichever tab the member clicked in and announ...

kamo·4w ago
Refactorkamo-internal

The player is a module singleton, not a React value

Firing a sound read a context, which made every call site's POSITION IN THE TREE part of its correctness. A component rendered above SoundProvider got a no-op a...

kamo·4w ago
Featurekamo-internal

Drop the three chat-channel rights from the frontend

Mirrors the shared-lib deletion: the enum mirror, its registry array, both hierarchy edges (ACCESS_CHAT -> CREATE_CHANNELS -> MANAGE_CHANNELS and ACCESS_CHAT ->...

kamo·4w ago
Fixkamo-internal

A note is owned by a member, not by an account

Mirrors the API: NoteDTO now carries memberId in place of userId. A member is the signed-in account inside ONE organisation, so opening a different org shows a ...

kamo·4w ago
Featurekamo-internal

One event-sound system, three layers, wired to what actually fires

There were two sound systems and neither knew about the other: four mp3s behind useChatSounds, and four synthesised tones behind notificationSound with a five-o...

kamo·4w ago
Docskamo-internal

First cluster triaged — chat channels are vestigial

Implementing gates for the 57 started with chat and the cluster came back empty. CREATE_CHANNELS, MANAGE_CHANNELS and MODERATE_CHAT have no feature: chat is rea...

kamo·4w ago
Testkamo-internal

Make 'do not hand-edit the unenforced list' enforceable

The list has been wrong four times (58 -> 52 -> 47 -> 57) and every single time because it was edited by reasoning instead of regenerated. The file already said...

kamo·4w ago
Fixkamo-internal

Re-derive the audit structurally — 57 decorative

The count moved 58 -> 52 -> 47 -> 57 because every version hard-coded a list of gate-helper names and the codebase has more than anyone can recall. Six were mis...

kamo·4w ago
Fixkamo-internal

Dock popup windows beside the page scrollbar, not on top of it

Tool windows are fixed to the viewport and dock right-to-left from its edge, and the layout was told about exactly one thing occupying that edge: the interactio...

kamo·4w ago
Docskamo-internal

The SHARE_DOCS_* client-side-only gap is closed

resolve-alias in DocsService and the two member-search endpoints in SecurityService now enforce these four server-side, mirroring the dialog's isTeamMember-or-r...

kamo·4w ago
Featurekamo-internal

Give the deck its slide back, without the lurch

Dropping `layout` to stop the card lurching onto the edge of the screen also took the sibling slide with it: dismissing a card left the rest snapping into its p...

kamo·4w ago
Fixkamo-internal

Stop the reminder lurching to the screen edge when an option opens

The card kept framer's `layout` after it grew a fold-out options panel. `layout` animates size and position by transform, so that one height change was being an...

kamo·4w ago
Fixkamo-internal

47 unenforced — five more were falsely reported

CREATE_ORG_CALENDAR_EVENTS is enforced: MemberCalendarService throws OrgCalendarForbiddenException when a member without it writes to the org calendar. The chec...

kamo·4w ago
Fixkamo-internal

52 unenforced, not 58 — six were falsely reported

The audit's gate detection recognised hasRight and checkRight but not denyUnless, hasAnyRight, sessionHasRight or forbidden. Six rights that ARE enforced were t...

kamo·4w ago
Featurekamo-internal

Stagger the cascade, add branch bulk actions, explain the rule

The cascade highlight now travels the chain instead of flashing every affected row at once. enabledAncestors already arrives nearest-first, so the index IS the ...

kamo·4w ago
Fixkamo-internal

Make the emoji picker's search actually filter

The picker's search matched the query against the translated category name only, and fell back to pushing every emoji into the results when nothing matched — so...

kamo·4w ago
Featurekamo-internal

Show and enforce the permission hierarchy in all five editors

Five editors granted 199 rights as five flat lists of checkboxes, and none of them showed that one right can be a prerequisite for another. Granting a child wit...

kamo·4w ago
Fixkamo-internal

Sticky scrollbars, a toolbar that never scrolls, and a dialog that clears the note

Three things, all in the floating sticky. The scrollbar was still grey. The rules were written as **************** which styles only the element CARRYING the c...

kamo·4w ago
Fixkamo-internal

Stop the launchpad backdrop painting over the page scrollbar

The launchpad is the only page that renders the full-bleed Backdrop, and it was the only page whose scrollbar stayed invisible after the -webkit-/standard confl...

kamo·4w ago
Featurekamo-internal

Repaint the reminder in the org's colour, open its options in place

The card is the organisation's primary colour now, with every mark on it drawn in --on-primary rather than a literal white — a white-label org that picks a pale...

kamo·4w ago
Fixkamo-internal

The sticky's watermark is centred from the moment it opens

It only landed correctly after the note was resized. The measurement used getBoundingClientRect, which reports the PAINTED box — and a sticky opens by animating...

kamo·4w ago
Fixkamo-internal

Centre the sticky's watermark on the writing surface

It was centred on the whole note, so it sat high — pulled up behind the title bar — and in rich mode it drifted further every time the toolbar wrapped to a seco...

kamo·4w ago
Featurekamo-internal

Legal & Compliance settings tab with the org default legal text

A new tab on /settings/features/hrs holding Default Legal Text, linked from the settings menu and the settings launchpad. Creating a package on /hr/legal-compli...

kamo·4w ago
Featurekamo-internal

Rich text in the sticky and the previews, and a mode you can switch

A note now says whether it is rich text or plain text, and both the editor and the floating sticky can switch it. The floating note in rich mode embeds the ver...

kamo·4w ago
Featurekamo-internal

One page for the notifications and the controls over them

The notifications page wore a header of its own — an eyebrow, a title and three pill buttons inside a bordered card — while every neighbouring page (the account...

kamo·4w ago
Featurekamo-internal

The history becomes a page, and the bell rings

The bell opened a popover, which is the right shape for "what just happened" and the wrong one for "what did that reminder say on Tuesday". A panel hanging off ...

kamo·4w ago
Fixkamo-internal

The floating sticky's pin is the same pin /notes draws

The sticky was drawing a hand-rolled bookmark path while the notes wall, the editor, the rail and the bulk bar had all moved to MUI's PushPin — outlined when lo...

kamo·4w ago
Fixkamo-internal

Stop the page scrollbar's two halves cancelling each other out

The main content scroller declared both **************** and a block of `::-webkit-scrollbar` rules, on the theory that whichever the browser understood would w...

kamo·4w ago
Featurekamo-internal

Rebuild /notes as a paper wall with a split-pane editor

The page was the last screen still on raw Tailwind blue-600/gray-50 while everything around it moved to the house system, and every one of its ~100 `dark:` vari...

kamo·4w ago
Featurekamo-internal

Pin and unpin a note from its floating sticky

The sticky could recolour, rename, minimize, maximize and close a note but not pin it — so pinning meant going back to /notes for the one thing the note is alre...

kamo·4w ago
Fixkamo-internal

Draw the main content scrollbar, in the org's colour

html/body are pinned to height:100%, so the element that actually scrolls a page is the main content div in layout.tsx — and it carried no scrollbar styling at ...

kamo·4w ago
Fixkamo-internal

Hold a launchpad card's pin chip back until its pane arrives

The panes reveal themselves on scroll (whileInView, opacity 0 -> 1), but the pin control is a sibling overlay rather than part of that animation — it has to be,...

kamo·4w ago
Featurekamo-internal

One quiet-hours window, governing both notification channels

There were two. The pair near the top of the page silenced the in-app cards; the pair at the bottom silenced the missed-message emails. Nothing on screen said t...

kamo·4w ago
Featurekamo-internal

Two meanings of 100% — a reading width, and the whole pane

The percentage reset to one baseline: the page grown to the pane but capped at 920px, which on a wide monitor leaves the sheet floating in a lot of empty desk. ...

kamo·4w ago
Featurekamo-internal

Refresh the NavTop clock the moment the editor saves

Voiding the punch a member is currently clocked in under already leaves them OFF server-side: RosterService.clockState reads the latest LIVE punch and skips voi...

kamo·4w ago
Fixkamo-internal

Solid sticky paper, and a scrollbar in the note's own colour

The note's background faded to `rgba(0,0,0,0.045)` at one corner. That is not a shade — it is 95% TRANSPARENT, so the corner of a sticky showed the page scrolli...

kamo·4w ago
Featurekamo-internal

Zoom the document, and grab it to move it

A floating capsule in the bottom-right of the document pane: −, the current percentage, +. The READOUT IS THE RESET — a separate reset button would be a third c...

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