Mabadiliko ya Tabianchi

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

17,865
Mabadiliko ya Jumla
4,581
Features ya
4,512
Wa
32
Miradi ya Miradi
Filter ya Mradi
Miradi yote17,865AIService110APIService138BillingService133ConversionService85DaemonService107DocsService189ESigService78EmailService348InitializerService299KBService74KlusterServices539MCPGatewayService43MediaService460RAGService61SecurityService1,519TranslateService45VOIPService173VectorService8kamo-analytics6,157kamo-apps18kamo-asterisk-support19kamo-capcha17kamo-capcha-widget4kamo-internal4,553kamo-login318kamo-marketing584kamo-meet90kamo-nowww18kamo-register206kamo-shared-library1,320kamo-signer-monorepo50kamolos102
Filter ya aina
Aina zoteBuild24CI522Chore670Docs226Feature4,581Fix4,512Other6,781Performance136Refactor273Revert23Style48Test68Upgrade1
August 30, 2026
FeatureKlusterServices

64G swap on the dev machine, and catch access that fails intermittently

The blank white page was the VM out of memory. 16Gi of guest RAM with NO swap means "out of memory" goes straight to the OOM killer: applications die mid-work, ...

Kamo·1w ago
Featurekamo-internal

Make smart folders reachable, and make clicking one work

A smart folder is a saved search that sits where a folder sits: name a question once ("unread, with an attachment") and it is one click away, current every time...

kamo·1w ago
FixEmailService

Serve smart folders and labels as messages, not as index rows

Both endpoints answered out of email_metadata.search_index and handed the client what the table holds. A smart folder returned SearchIndexEntity — messageUid, f...

Kamo·1w ago
FeatureMediaService

Send the quote with a reply, not just the pointer

media_objs_msg.parent_id has been there all along and this endpoint has accepted parentId on the way in since threading was modelled, but a reply crossed the wi...

Kamo·1w ago
Fixkamo-internal

Make eslint actually run

`eslint .` reported nothing at all — not a clean tree, but a crash before it loaded a single file: TypeError: Converting circular structure to JSON at ...

Kamo·1w ago
Fixkamo-internal

The report form's questions move off the field's border

A member filed this against the report form itself: "What happened?" — and "What would you like to see?" on the enhancement side — had the field's border runnin...

Kamo·1w ago
Fixkamo-internal

A stamp that says which day, once the day is in doubt

Reported by a member: past chats cannot be identified or verified by the date they were sent or received — only a time is present. Their own history runs back t...

Kamo·1w ago
Fixkamo-internal

A new chat shows the exchange instead of going blank

Open a new AI chat, type a message, and the thinking bullets appeared and then nothing — no sent message, no reply, just the empty-conversation panel over a tra...

Kamo·1w ago
Fixkamo-internal

Let the sidebar's calendar checkboxes actually turn off

The checkbox beside each calendar was bound to `calendar.isVisible` and its onChange was `fetchEvents`. `isVisible` is sent by EmailService and written back by ...

Kamo·1w ago
FixMediaService

Spend the site deletes before the replacements are written

Editing a report came back "The bug could not be saved: Internal Server Error" whenever the reporter left a site ticked — so every edit about the title, the des...

Kamo·1w ago
Featurekamo-internal

Leave a group chat, and keep the line that records it

Leaving is offered at the foot of the roster popover, separated from the rows above it because it belongs to the member rather than to anyone in the list, and c...

Kamo·1w ago
FeatureMediaService

Leave a group chat, and keep join/leave lines in the transcript

Leaving is DELETE /sessions/{guid}/membership, not removeMember aimed at yourself — that route refuses self-removal on purpose. Removal is done TO somebody and ...

Kamo·1w ago
Fixkamo-shared-library

A join/leave row has to carry the name of who it is about

The id alone cannot be resolved in the one case these rows exist for. A "removed" or "left" line names somebody who is, by then, no longer in the session, so th...

Kamo·1w ago
Fixkamo-internal

The Favourites header must control an element that exists

Collapsing the section unmounted the list it named through `aria-controls`, leaving the header pointing at nothing. `aria-expanded` then describes a disclosure ...

Kamo·1w ago
FixMediaService

Forward removedByMemberId to the browser

The relay copies named fields off ChatMessageDto onto the STOMP frame, so a field it does not copy is dropped even once the DTO declares it. MEMBER_REMOVED now ...

Kamo·1w ago
Fixkamo-shared-library

Declare removedByMemberId, or the relay drops it in silence

The NATS payload for MEMBER_REMOVED carries who did the removing, but the NATS→STOMP relay projects every frame through ChatMessageDto — so a field this class d...

Kamo·1w ago
Fixkamo-internal

One title rule, one group threshold, and a rename the list hears

Review of the Chats branch, four findings. Both surfaces were composing the conversation's name by hand instead of through the helpers @kamo/chat-core exports ...

Kamo·1w ago
FixAIService

No upstream error text reaches a member, whichever provider failed

memberTextFor fell through to getMessage() for anything that was not an AiProviderException. Only the HuggingFace adapter classifies its refusals; every other o...

Kamo·1w ago
Featurekamo-internal

Open on Chats, a Favourites section, and a group chat you can manage

Five requests from a member, all of them about the same gap: the Chats panel could show you conversations but gave you nothing to do with them. Chats is now th...

Kamo·1w ago
FeatureMediaService

Name a group chat, star a conversation, remove somebody from a room

Three routes, and each refusal is a rule somebody has to be able to tell apart from an outage — so each carries its own code rather than a shared 4xx. DELETE *...

Kamo·1w ago
Featurekamo-shared-library

A chat can be named, starred, and have somebody removed from it

Three fields and one method, all of which the chat feature already had the shape for and none of which it could record. MEDIA_SESSION_CHAT gains TITLE. That ta...

Kamo·1w ago
Fixkamo-internal

Show why a text could not be started, not "check the number"

VoipService now answers an unprovisioned account with 409 and both a machine code (`error`) and a sentence a member can act on (`message`). apiCall read `error`...

Kamo·1w ago
FixVOIPService

An account with no number to text from is a 409, not a 500

Starting a text threw IllegalStateException when neither the member nor the instance had an outbound number, which Spring turned into a 500 with a stack trace. ...

Kamo·1w ago
FixAIService

Retire a model the provider won't route, and stop quoting it at members

Follow-up to the router-catalogue fix. That stops unroutable models being LISTED; this stops one already in an org's catalogue from breaking the assistant and n...

Kamo·1w ago
August 29, 2026
FixAIService

List the Hugging Face models the router will actually serve

Chat goes to the Inference Providers router **************** but discoverModels asked the HUB for models that are "warm" somewhere — a different and much larger...

Kamo·1w ago
Fixkamo-internal

Drop the security level control from the batch settings

It was a disabled Select behind a "locked" tooltip, and a chip in the collapsed summary. Both reported a value the admin never chose: security level is derived ...

Kamo·1w ago
Featurekamo-internal

Bulk add members and team members, with a CSV/XLS import

Two new screens beside the existing Add buttons on /account?tab=members and ?tab=team-members, at /settings/member/bulk-new and /settings/team-member/bulk-new. ...

Kamo·1w ago
FeatureSecurityService

Bulk-create members and team members, one transaction per record

The two bulk-add screens need to create a spreadsheet of people in one submission and report on each of them individually. That could not be built on the existi...

Kamo·1w ago
Featurekamo-internal

Say the app is in beta, and that Apple devices aren't ready

Two facts a member needed before scanning anything: KamoMobile is beta, and there is no build for an iPhone or iPad yet. Both change whether someone should star...

Kamo·1w ago
Fixkamo-signer-monorepo

Format the phone numbers on the customer's quote

The page a customer opens printed every number exactly as stored — "9495550134" on the letterhead, and the same again under Your Contact. This app had no phone ...

Kamo·1w ago
Fixkamo-internal

Format the phone numbers on the printed quote

The document printed every number exactly as stored — "9495550134" on the letterhead, and the same again under Your Contact. Formatting goes through `app/lib/ph...

Kamo·1w ago
Featurekamo-internal

A Receivables tab, and payment details on the printed quote

Settings → Account → Receivables is where an organization sets the bank account its customers pay into: the payee, the bank, the routing and account numbers, an...

Kamo·1w ago
Featurekamo-signer-monorepo

Print the seller's ACH details on the customer's quote

The page a customer opens from a share link now carries a remittance block: who the payment is made out to, the receiving bank, and the routing and account numb...

Kamo·1w ago
FeatureSecurityService

Store the org's deposit account, and print it on quotes

`/api/security/receivables` is where Settings → Account → Receivables reads and writes. Two rights, not one: VIEW_RECEIVABLES reads the tab, MANAGE_RECEIVABLES ...

Kamo·1w ago
Featurekamo-shared-library

The deposit account an organization asks customers to pay into

Six columns on `orgs` and the wire contract for printing them on a quote, so a company that receives one knows where to send the money without telephoning to as...

Kamo·1w ago
Fixkamo-internal

Show Getting Started to the System Member too

The button asked for organization ownership AND CONFIGURE_SYSTEM. The System Member is provisioned as an Administrator in every organization — all 34 of its mem...

Kamo·1w ago
Featurekamo-internal

Download the app from a URL that says KamoMobile

the phone showed while downloading was the old one. The same bytes now also sit at **************** and the QR points there. A copy, not a move: the old object ...

Kamo·1w ago
Fixkamo-internal

The Getting Started API had no route to answer it

The launchpad button never appeared, and neither did any progress: the Java controller existed, the client existed, and the Next route between them was never wr...

Kamo·1w ago
Featurekamo-internal

The rail's brand row reads "Back to Desktop"

Names the destination in the platform's own vocabulary rather than the generic "Go Home". The expanded row's aria-label follows the visible text, so the accessi...

Kamo·1w ago
Featurekamo-internal

Say "Go Home" under the org name in the expanded rail

The expanded rail's brand row has always navigated home, but the org name alone reads as a label, so the destination was invisible. The name now sits above a se...

Kamo·1w ago
Featurekamo-internal

Title the tab "{Org} - {role} Portal", painted before first frame

A member is named by the organization's own word for one — "Harmony - Borrower Portal" for a lender that calls them Borrowers. A team member is named by their D...

Kamo·1w ago
FeatureSecurityService

Carry the team member's department in the session

The browser tab is being retitled "{Org} - {role} Portal", and a team member's role is their department — the specific thing they identify with day to day ("Sal...

Kamo·1w ago
FixKlusterServices

Probe the bridge's real health, not a port that is always open

kamo-meet let one person into a meeting and then ended it the moment a second joined. The bridge had been hard-unhealthy for 41 hours: an in-place container res...

Kamo·1w ago
Fixkamo-internal

The logo caption sits under the logo, and says the domain is not reserved

Two unrelated symptoms, both in the brand band. **The caption printed over the logo when the slots stacked.** The preview was clamped with `max-h-full`, and th...

Kamo·1w ago
Fixkamo-internal

Stop the server asserting a tab title it cannot know

An org with no domain of its own still ended up titled "KamoCRM" after a refresh, briefly showing its real name first. generateMetadata resolves the tab's org ...

Kamo·1w ago
FixSecurityService

Stop refusing a domain because somebody else typed it first

Creating an organization 409'd on any existing row for the domain, which meant the first organization to enter "acme.com" locked out every other one — including...

Kamo·1w ago
FeatureInitializerService

Keep every live domain routing once verification becomes mandatory

Host to organization resolution is about to require ownership_verified on the top-level domain row, so that a domain several organizations have merely named rou...

Kamo·1w ago
Featurekamo-shared-library

A domain is claimed by proving it, not by typing it

Three rules, and they only make sense together. **Naming a domain claims nothing.** An FQDN was globally unique here, so the first organization to enter "acme....

Kamo·1w ago
Fixkamo-internal

Upload the compact logo that was previewed, not the file that was picked

The compact ("simple") logo slot is SVG-only — the backend writes whatever lands in it to a fixed <theme>/img/logo.svg key regardless of the file's real type, a...

Kamo·1w ago
Fixkamo-internal

Stop the attention flasher reverting an org's tab title to the platform's

A child org with no domain of its own showed "KamoCRM", flashed to its real name, then flashed back to "KamoCRM" and stayed there. TabAttention wrote `document...

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