KamoCRM

Mabadiliko ya Tabianchi

Kila kipengele, kurekebisha na kuboresha, posted kama meli. Hakuna kitu kilichofichwa kwa ajili ya uzinduzi.

17,539
Mabadiliko ya Jumla
6,013
Features ya
5,292
Wa
30
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,539AIService257APIService174BillingService157ConversionService110DaemonService138DocsService223ESigService91EmailService581InitializerService329KBService151KlusterServices741MCPGatewayService253MediaService602RAGService79SecurityService1,854TranslateService62VOIPService249VectorService11kamo-apps26kamo-asterisk-support27kamo-capcha17kamo-capcha-widget4kamo-internal8,358kamo-login335kamo-marketing641kamo-nowww20kamo-register213kamo-shared-library1,666kamo-signer-monorepo56kamolos114
Filter ya aina
Aina zoteBuild16CI523Chore775Docs3,255Feature6,013Fix5,292Other994Performance165Refactor278Revert23Style42Test162Upgrade1
August 14, 2026
Fixkamo-internal

Stop storing which side a message is on

The mirrored rule was right; what was wrong is that the answer was computed once, when a message arrived, and kept. Placement needs three things — the sender, t...

kamo·2mo ago
Performancekamo-internal

Stop making the inbox wait on two lookups it can see the answer to

Two round trips still sat in front of a rendered inbox, and by this point they were the only thing left there — the folder tree and the first page already arriv...

kamo·2mo ago
Fixkamo-internal

Keep the session document name as the consent card's fallback heading

Extracting FieldLayer dropped detailTitleFor, and with it the fallback to session.documents[0].name — a document with a null fileName would have headed its cons...

kamo·2mo ago
Fixkamo-internal

Render the document the wizard was measuring into a node that did not exist

The execution wizard showed a blank surface for every signable document — no pages, no field overlays, no PDF request, and nothing in any log. DocumentStep mea...

kamo·2mo ago
Performancekamo-internal

Ask earlier, ask once, and stop asking for what has not changed

Three more things standing between opening /messages and seeing mail. Nothing was requested until the bundle had landed. /messages pulls several megabytes of J...

kamo·2mo ago
Fixkamo-internal

Only the requestor is asked how the support went

Closing a ticket put "How was your experience?" in front of every agent in the conversation — the people who did the work, invited to score themselves. Since a ...

kamo·2mo ago
Performancekamo-internal

Stop paying for a key nothing reads, and stop waiting to ask

Three things were slowing /messages down before a single message was fetched. Every email call made a round trip to /api/generate-otk first and sent the result...

kamo·2mo ago
Fixkamo-internal

A read clears the indicators immediately, not on the next reload

Reading a conversation updated the server and then waited for the news to come back: PUT /read commits, MediaService broadcasts a fresh count over core NATS, th...

kamo·2mo ago
Featurekamo-internal

Clock-out indicator wears the same pulse as legal & compliance

The punch clock breathed a red radial glow while the obligations badge three pixels to its left pulsed two expanding rings. Both controls are asking the member ...

kamo·2mo ago
Stylekamo-internal

Tint the mailbox loading sweep with the org's own colour

The /messages placeholders drew their travelling band of light from --accent-comms, the comms family accent (#6366f1), so every tenant watched an indigo shimmer...

kamo·2mo ago
Fixkamo-internal

Remove the payroll registration fields nothing reads

Six fields on the payroll cards were never consumed by anything. A registration field nobody loads is worse than a missing one: an operator fills it in, believe...

kamo·2mo ago
Featurekamo-internal

On screen is not the same as read

A support conversation was marked read the instant its window loaded, so the one kind of window that must NOT count as read — the kind that raises itself, from ...

kamo·2mo ago
Stylekamo-internal

Widen the expanded rail's scrollbar to 20px

At 10px it was slimmer than it needed to be — the rail has the width to spare, and a wider bar is a wider grab target. The thumb's transparent inset doubles wit...

kamo·2mo ago
Featurekamo-internal

Give the expanded rail a scrollbar instead of end arrows

The up/down arrows exist because a collapsed rail is 80px of tile with no room to spend on anything else. Expanded, the rail is 248px and the options read as a ...

kamo·2mo ago
Featurekamo-internal

Use the real payroll vendor logos on the provider cards

Adds the ten vendor assets and renders them in place of the lettermark placeholders. These are WORDMARKS, not square icons like the email provider set, and the...

kamo·2mo ago
Fixkamo-internal

The needs-attention mark stops lying when you open a ticket

Clicking a row cleared its amber dot while the badge beside it stayed put, and a refresh brought the dot back. The badge was right and the dot was wrong. A tic...

kamo·2mo ago
Fixkamo-internal

Mark the items the navtop badge is actually counting

The badge read "5 support items need attention" and the list marked none of them. Both numbers were right about their own question and neither was the question ...

kamo·2mo ago
Featurekamo-internal

Payroll Provider Setup, and map people to payroll on enrollment

Replaces the placeholder HRS Overview tab with the real thing. The tab is now "Provider Setup" and the screen is "Payroll Provider Setup", following the email p...

kamo·2mo ago
Featurekamo-internal

Size an attachment by what the provider's API actually carries

The composer held every social DM to a flat 10 MB, which is Telegram's photo limit applied to four providers that do not share it. Each now gets its own ceiling...

kamo·2mo ago
August 13, 2026
Fixkamo-internal

Side a message by which side sent it, not by who is reading

A support conversation has exactly two sides, and they are not "me" and "everyone else". One side is the person who asked for help — always exactly one member. ...

kamo·2mo ago
Featurekamo-internal

A wall at "now", and a card that explains a cancelled punch

Nobody can record time they have not worked yet. Dragging an edge, sliding a whole span, nudging with the arrow keys, the magnet, the right-click block and the ...

kamo·2mo ago
Refactorkamo-internal

Drop the speed dial heading

The tab is reached by its own icon and the rows say what they are, so a title and a sentence of explanation above them only cost vertical space in a panel that ...

kamo·2mo ago
Featurekamo-internal

Give the support and social windows the member chat's composer

A support ticket and a social DM are the same thing as a member chat — a media session with messages on it — but they were answered through a bare text field. A...

kamo·2mo ago
Fixkamo-internal

Department speed dial hung on Loading forever

The loader effect listed departmentsState in its deps and set it to 'loading' on entry, so React tore that effect instance down immediately, the cleanup flipped...

kamo·2mo ago
Fixkamo-internal

Make Delete actually delete, and select exactly one pill

Delete did nothing. The handler was hung off the pill's focus, and the pill never had focus: preventDefault() in the pointerdown handler — which is there to sto...

kamo·2mo ago
Featurekamo-internal

Speed dial lists the org's department extensions

The tab shipped six invented entries — Sales Team on 1001, a Conference Room permanently ringing — so dialling one reached whatever happened to answer that exte...

kamo·2mo ago
Featurekamo-internal

Widen chat, social, ai-chat and compose windows to the support size

The support ticket window opens at 460px while member chat, social chat, AI chat and the email composer all sat at 360-420. Same dock, same kind of content — th...

kamo·2mo ago
Featurekamo-internal

Show unseen messages on every queue row, not just joined ones

The badge and the row tint were already here — they were simply never populated for most of the list. getUnreadFor read only the live per-session unread map, wh...

kamo·2mo ago
Featurekamo-internal

Delete, magnets, a right-click menu, and a clock that asks which

Six additions to the period graph and the nav clock. DELETE removes the focused pill. Backspace too, because on a Mac the key labelled "delete" IS Backspace an...

kamo·2mo ago
Refactorkamo-internal

One Plans & Billing screen instead of two that each answered half

The platform had two billing screens. /settings/account?tab=billing answered what the organization pays; Plans & Billing on the member profile answered what a p...

kamo·2mo ago
Featurekamo-internal

Show the market onboarding panel when no CRM markets exist

/leads rendered the lead grid with an empty, disabled market tab bar for an org that had never configured a CRM market. It now shows the same onboarding panel /...

kamo·2mo ago
August 12, 2026
Fixkamo-internal

Open at the newest message, and scroll up for the rest

Opening a long conversation showed the oldest loaded message first and then travelled down to the present while the member waited. Both chat surfaces scrolled t...

kamo·2mo ago
Featurekamo-internal

The period graph, and a timecard you edit as a draft

Replaces the one-day timeline on **************** with a whole pay period, and changes what editing one feels like. The pills carry no text. They used to carry...

kamo·2mo ago
Featurekamo-internal

Raise a support conversation when somebody replies in it

Closing a support window is not leaving the conversation, but it was treated as if it were. ChatNotificationListener returned early on every SUPPORT_TICKET noti...

kamo·2mo ago
Featurekamo-internal

Linkable tabs, a working Add Member, and a full history tab

Every tab on /account/view/{id} is a real route now — /members, /history and the rest are links somebody can send, bookmark, or land on. Old ?tab= links redirec...

kamo·2mo ago
Featurekamo-internal

Confirm a clock in/out before writing the punch

The nav clock punched straight off the click. Every other control in that bar is idempotent or trivially undoable; a punch is a wage record that afterwards only...

kamo·2mo ago
Refactorkamo-internal

One strip — filter and refresh beside the sub-tabs

The controls sat in a second full-width row under the tab strip holding three short words and an icon, spending a whole band of the pane on what fits in the spa...

kamo·2mo ago
Fixkamo-internal

Make the option strip yield the room instead of the clusters colliding

The left cluster carried minWidth: 0 while its contents (correctly) refuse to shrink or wrap, so a crowded bar shrank the box below its own content and the cont...

kamo·2mo ago
Featurekamo-internal

Segmented status filter in place of the select

Pending/Complete/All are three short peers that fit on one line, so a dropdown hid two of them behind a click and spent a label and a 170px well to say nothing....

kamo·2mo ago
Fixkamo-internal

Skeleton tracks the shared grid helpers; test jsonBody's 204 guard

The loading skeleton in app/hr/overview/page.tsx still hand-wrote the 1800px breakpoint that OverviewPillars and friends extracted into primitives.tsx (WIDE_BRE...

kamo·2mo ago
Fixkamo-internal

Follow the approval figure into currentPeriod, and stop null reading as zero

SecurityService 7c55054 moved awaitingApproval inside currentPeriod, where the window it describes actually is, and omits it entirely when there is no open peri...

kamo·2mo ago
Fixkamo-internal

Two-up figure rows so no card label wraps

The figure labels are Operator Labels — uppercase, 11px, 0.12em tracking — which puts "Execution incomplete" at 158px, "Blocking exceptions" at 150px and "Await...

kamo·2mo ago
Fixkamo-internal

Stop the fixed chrome labels breaking across two lines

A flex item's automatic minimum size is its min-content width, which for wrapping text is its widest word — so a crowded bar squeezed these controls narrow enou...

kamo·2mo ago
Fixkamo-internal

One glow on the clock icon, not two around the button

The rule carried BOTH a radial-gradient and a box-shadow. The gradient filled its own box while the box-shadow painted a separate ring outside it — two concentr...

kamo·2mo ago
Featurekamo-internal

Slide a crowded nav instead of crushing its options

Pinning more options than a nav can show squeezed the tiles out of shape: both strips were raw overflow boxes and the tiles are flex children with no flex-shrin...

kamo·2mo ago
Fixkamo-internal

Line the card figures up on a shared baseline

Every figure on the masthead and the four pillar cards was its own stacked box — Operator Label above, value below. Operator Labels are uppercase with 0.12em tr...

kamo·2mo ago
Fixkamo-internal

Withheld approval state renders as not-tracked, not clear

attendanceState() marked every member 'clear' whenever blockingExceptions was 0 and timecardState wasn't 'SUBMITTED' — true for every member under a caller lack...

kamo·2mo ago
Fixkamo-internal

AwaitingApproval is nullable, and null is not zero

SecurityService now withholds the approval half of the summary from a caller without FINALIZE_PAY_PERIODS — resolveRole never admitted MANAGE_TIMECARDS to appro...

kamo·2mo ago
Fixkamo-internal

Honest compliance figure, per-section failed states, right gating

The masthead percentage mixed units and could only flatter. `complete` summed org-wide ASSIGNMENT counts while `open` counted MEMBER-DOMAINS off memberRows, cap...

kamo·2mo ago

Je, unaona nini kuhusu usafiri?

Kila kitu kinaingia kwenye tovuti yako mwenyewe. Anza kwenye mpango wa bure na usome ukurasa huu tena katika mwezi mmoja.

Kuwa Huru MileleMtazamo wa bei