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 11, 2026
Featurekamo-internal

The HR course editor, assignments grid and member course player

/hr/training replaces its placeholder with the two sub-tabs the brief asked for, and the member's Assigned Training grid gains the action column it was holding ...

kamo·4w ago
Featurekamo-internal

One member surface for both obligations, one badge for either

The member's compliance tab had two sub-tabs, Pending and Completed, for one kind of obligation. Those are a STATE, not a kind — so they collapse into a status ...

kamo·4w ago
Fixkamo-internal

Let document uploads actually reach the 3 GiB backend ceiling

The backend now streams to 3 GiB, but three things in the browser and the BFF made that unreachable, each fatal on its own. The upload proxy did `await request...

kamo·4w ago
Fixkamo-internal

Style the scrollbar on the element that actually scrolls

SettingsView declares an 8px primary-tinted scrollbar on the white card, but that card never overflows — every ancestor down to TabPanel is flex:1 with minHeigh...

kamo·4w ago
Fixkamo-internal

Give the Plans & billing tab its page gutter and section surfaces

The console rendered flush against the settings card on all four sides. Nothing in the container chain pads a tab child — SettingsView's card, its inner Box, Ta...

kamo·4w ago
Fixkamo-internal

Stop one failed call from blanking the whole console

Loading the console makes four calls, and any one of them throwing produced "Couldn't load your billing" with nothing else on screen. The subscription list is t...

kamo·4w ago
Fixkamo-internal

Declare the object-storage secret the ConfigMap no longer carries

MINIO_SECRET_KEY was moved into the minio-app-credentials secret, but the envFrom supplying it was only applied live and never committed, so a CI reconcile woul...

kamo·4w ago
Fixkamo-internal

Stop shipping the shared credential in this repo

The object-storage key sat in k8s/configmap.yaml, which kubectl will hand to anyone who can read the namespace, and the same string was hardcoded as the SSH pas...

kamo·4w ago
Featurekamo-internal

Let a member license their own seat from the console

The panel that closes the loop on self-pay. It appears only where the organization's policy permits it, and only for people who are not already buying on the or...

kamo·4w ago
Featurekamo-internal

Let the owner decide who can pay, and manage the groups that do

The owner had exactly one lever over self-payment and it was the wrong shape: an irreversible promote gesture, with no way to say in advance whether it was perm...

kamo·4w ago
Featurekamo-internal

A Plans & billing console an owner can actually find

There was no way to buy a first subscription anywhere in the product. Plan lists were reachable only through a subscription you already held, so an organization...

kamo·4w ago
Featurekamo-internal

Show the ceiling, not just the bytes

The panel reported stored, added, removed and lifetime bytes against no reference at all — so an owner looking at 400 GB had no way to tell whether that was com...

kamo·4w ago
Featurekamo-internal

Show whether someone is there, and their extension

Every row now carries a presence dot and word beside the name, and its extension in the detail line — so choosing a person no longer means picking a name and ho...

kamo·4w ago
Featurekamo-internal

Type the storage capacity the summary now returns

Keeps the client contract in step with BillingService, which now reports what the plan includes, what blocks were bought, the combined ceiling and the fraction ...

kamo·4w ago
Featurekamo-internal

Tell the requestor whether their agent is actually there

A silent thread does not distinguish "nobody has looked at this" from "my agent stepped away", and the person waiting cannot tell which. The notice under the co...

kamo·4w ago
Featurekamo-internal

Assign a chat request, and assign from the tickets list

Two gaps, same cause — assignment was treated as something that happens to a ticket rather than to a piece of work. The assign button was hidden for pre-ticket...

kamo·4w ago
Featurekamo-internal

Quote engine for the plan picker, matching what Stripe will bill

The arithmetic behind a live running total, kept apart from any component so the numbers can be tested directly. It mirrors **************** exactly: per-seat a...

kamo·4w ago
Featurekamo-internal

Gate paid actions on a licensed seat, at the chokepoint

Nearly every gateable action in the product — dial an extension, email a member, open the AI assistant, play a recording, start a social conversation — is a bar...

kamo·4w ago
August 10, 2026
Featurekamo-internal

Pick the agent to reassign a ticket to, instead of typing their id

Assign and reassign opened a text box you typed a raw member id into — which meant already knowing the id of the person you wanted, for an action whose whole pu...

kamo·4w ago
Docskamo-internal

Design for the platform billing redesign

Records the audit finding that measurement, entitlement and money are three pipelines that were each built well and never connected, plus the 17 confirmed defec...

kamo·4w ago
Fixkamo-internal

Decide the sign-in auto-open on the server, not in this tab

The per-tab sessionStorage flag was not a record of anything. Signing in on a second device replayed every conversation the first had already popped, and cleari...

kamo·4w ago
Featurekamo-internal

Overhaul the preferences panel

Four dropdowns and a switch on a panel washed top to bottom in the tenant colour at full strength, so every control fought its own background. Each select hid t...

kamo·4w ago
Featurekamo-internal

Replace the mailbox spinners with a skeleton that assembles

Every loading state on /messages was a Loader2 on an otherwise empty pane — the boot, the message list, the folder tree, the message body and the next page all ...

kamo·4w ago
Stylekamo-internal

Restore the CRLF endings on the calendar types

Same script-normalisation slip as the attendee repository: the file was rewritten through Python, which converted every line ending and turned a handful of type...

kamo·4w ago
Fixkamo-internal

Don't let one failed request silence the sign-in auto-open

Unread chats are auto-opened once per tab-session, guarded by a sessionStorage flag. That flag was written up-front, before the fetch that tells a chat session ...

kamo·4w ago
Featurekamo-internal

Add and remove guests from the event dialog

The last thing the dialog could not do. It could display who was already on an event, but there was no way to put anyone there — the only guest control was "upd...

kamo·4w ago
Featurekamo-internal

Tell the member what the event collides with, as they set it

The most useful thing a scheduling dialog can say is "you already have something then", and the endpoint to answer it existed all along with nothing calling it....

kamo·4w ago
Fixkamo-internal

Stop typing an unseen support session as a plain chat

A live activity frame for a session not already in the list synthesized a row hard-coded to 'CHAT'. For a support ticket that put it in the wrong sub-tab, showe...

kamo·4w ago
Fixkamo-internal

Stop a support ticket opening a plain chat window full of JSON

Two faults, one symptom. Assignment makes the agent a member of the ticket's media session, so the incoming-message notification reached them and ChatNotificati...

kamo·4w ago
Fixkamo-internal

Declare the calendar tokens at :root, and rebuild the event dialog

The tokens were declared on the calendar wrapper element, which reads as the tidy thing to do and is wrong. MUI dialogs and menus render through a portal into d...

kamo·4w ago
Fixkamo-internal

Actually override the operator label ink

The previous attempt raised specificity, which was the wrong diagnosis: tailwind.config.js sets `important: true`, so every declaration in .operator-label ships...

kamo·4w ago
Featurekamo-internal

Rebuild the event dialog around when, not around fields

Ten identically weighted outlined fields in a column, in the order the columns happen to sit in the table: title, description, location, calendar, all-day, star...

kamo·4w ago
Featurekamo-internal

Auto Assignment strategy, and open an assigned conversation automatically

Topics settings gains the fourth strategy. The list rows and the edit dialog share the same label, and the key shipped to kamo-translation-dictionary first — me...

kamo·4w ago
Fixkamo-internal

Make every line of the hero readable

The kicker and the three readout labels were painted by .operator-label's own dark ink, not by the colour set beside it: a class and an sx rule carry the same s...

kamo·4w ago
Fixkamo-internal

Make the pinned-app eyebrow actually white

The previous attempt overrode .operator-label's ink with a class-qualified sx rule, which could never have worked: tailwind.config.js sets `important: true`, so...

kamo·4w ago
Featurekamo-internal

A pinned app's chip launches the app, not its settings

The leading chip of a pinned band was linking to the app's settings landing — the same place its first entry already goes. It now borrows that app's nav option ...

kamo·4w ago
Stylekamo-internal

Restore CRLF endings on the three session files

The previous commit rewrote them with LF, inflating a ~56-line change into a 700-line whole-file diff. Content is unchanged; this puts the endings back so the h...

kamo·4w ago
Refactorkamo-internal

One writer of the *** TTL, and it is the activity tracker

/api/user-info wrote the session TTL straight to Redis, bypassing every service-side rule — and useUserInfo polls it every five minutes forever, so that one lin...

kamo·4w ago
Featurekamo-internal

Pin an Enabled App to the home launchpad

Each Enabled Apps topic now carries a pin toggle, in the Settings sub-option menu and on its section header on the settings landing page. A pinned app gets its ...

kamo·4w ago
Featurekamo-internal

Give Mobile Copilot setup its own full-width page

The phone-provisioning surface was the third tab of the Interaction Center slideout, which capped it at a 500px rail — too narrow to show the install code and t...

kamo·4w ago
Featurekamo-internal

Rebuild the calendar around the current moment

The page was a functional grid with the chrome doing the talking: a 3px rainbow rule under the toolbar, a second one over the content, gradient buttons, and fou...

kamo·4w ago
Fixkamo-internal

Give each account tab the default order it should open in

The three tabs opened in whatever order the API happened to return, which for members meant the newest sign-ups were buried and for team members meant no order ...

kamo·4w ago
Fixkamo-internal

Scope the default-lead-source readiness banner to Residential Mortgage markets

The vendors/products tab showed the "Finish the mortgage vertical to designate a default lead source" warning on every market tab, including Product/Service and...

kamo·4w ago
Fixkamo-internal

Centre the selection bar on the contact list, not the page

The bar that appears when rows are selected is absolutely positioned at left 50% with a translateX(-50%), but its nearest positioned ancestor was the whole page...

kamo·4w ago
Fixkamo-internal

Stop defaulting new contacts into the shared org book

The create dialog targeted the book flagged isOrgDefault, so every member's contacts landed in the one book the whole organisation could read — half of why the ...

kamo·4w ago
August 9, 2026
Featurekamo-internal

Split the access log and its detection rules into sub-tabs

The rules that decide what gets flagged were an accordion below the grid — collapsed by default, so the configuration was something you had to know was there, a...

kamo·4w ago
Fixkamo-internal

Administrator bar panels rendered their key paths, not their copy

TipPanel took the panel's DOM id in a prop called `id` and then built its message keys from that same `id`, so every panel asked for **************** and next-i...

kamo·4w ago
Fixkamo-internal

Let the access log fill its pane and page from the server

The tab bar already says "System Access Logs", so the h4 above the stats was the page's name twice. Dropping it also lets the pane use the shell every other Sec...

kamo·4w ago
Featurekamo-internal

Back-to-home arrow on the main workspace headers

Carries the settings-page arrow across the rest of the app: Accounts, Leads, Commerce, Marketing (all four tabs, via the shared layout), Knowledge Base, HR, Net...

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